Annotation of cci/d/mem/bio.c, revision 1.1

1.1     ! root        1: #include "definitions"
        !             2: 
        !             3: /*     I/O ROUTINES TO CPU2 CONSOLE    */
        !             4: writec(c)
        !             5: char c;
        !             6: {
        !             7:        putchar(c);
        !             8: }
        !             9: writes(s)
        !            10: char *s;
        !            11: {
        !            12:        putstr(s);
        !            13: }
        !            14: writeh(ix)     /* 32 bits HEX */
        !            15: long ix;
        !            16: {      register long count, mask, indx;
        !            17:        char c, str[9];
        !            18: 
        !            19:        if (ix==0) { writec('0'); return; }
        !            20:        indx = 0; count = 28;
        !            21:        mask = 0xf0000000;
        !            22:        str[8]='\0';
        !            23:        while (mask)  {
        !            24:                c = ( (ix&mask) >> count )&0xf;
        !            25:                count -= 4;
        !            26:                if (indx==0) mask = 0xf000000;
        !            27:                        else mask = mask >> 4;
        !            28:                if ((c>=0)&&(c<=9)) c=c+'0';
        !            29:                        else c=c+'7';
        !            30:                str[indx++] = c;
        !            31:                }
        !            32:        indx = 0;
        !            33:        /* replace leading 0 with space */
        !            34:        /* for (indx=0; indx<8; indx++) {
        !            35:                if (str[indx]!='0') break;
        !            36:                         else str[indx]=' ';
        !            37:                }
        !            38:        */
        !            39:        writes(&str[indx]);
        !            40: }
        !            41: /*     Function to write a 32_bit decimal to Console
        !            42: */
        !            43: writed(ix)
        !            44: long ix;
        !            45: {      char c;
        !            46:        register long div, lead0;
        !            47: 
        !            48:        if (ix==0) { writec('0'); return; }
        !            49:        if (ix<0) { writec('-'); ix = (~ix)+1; }
        !            50:        lead0 = 1;
        !            51:        div = 1000000000;
        !            52:        while (div) {
        !            53:                c = (ix/div)+'0';
        !            54:                ix = ix%div;            /* Mod */
        !            55:                div /= 10;
        !            56:                if ((c=='0')&&(lead0)) c=' ';
        !            57:                        else lead0 = 0;
        !            58:                if (c != ' ') writec(c);
        !            59:                }
        !            60: }
        !            61: /*     Function read 1 char from Console
        !            62: */
        !            63: char readc()
        !            64: {      char c, rdchar();
        !            65: 
        !            66:        writec(c=rdchar());
        !            67:        return(c);
        !            68: }
        !            69: /*     This function read a string of characters.
        !            70:        calling sequence : nochar = reads(s);
        !            71:        input argument   : char *s;
        !            72:        return value     : no. of char read; excluding NULL or CR.
        !            73: */
        !            74: reads(s)
        !            75: char *s;
        !            76: {      register long ix;
        !            77: 
        !            78:        for(ix=0;;ix++) {
        !            79:                *s = readc();
        !            80:                if (*s == '015')
        !            81:                        { *s = NULL; return(ix); }
        !            82:                     else s++;
        !            83:                }
        !            84: }
        !            85: /*     This function read a string of HEX digit and
        !            86:        convert it to integer value.
        !            87:        calling sequence : stat = readh(ix);
        !            88:        input parameter  : long *ix;
        !            89:        return value     : (stat < 0) if error else (stat = 0);
        !            90: */
        !            91: /*
        !            92: readh(ix)      
        !            93: long *ix;
        !            94: {      char line[ALINE], *getnum(), *del;
        !            95:        int nochar;
        !            96: 
        !            97:        if ( (nochar = reads(line)) > 8 ) return(-1);
        !            98:        if ( (del = getnum(line,ix,del,HEX)) < 0 ) return(-1);
        !            99:                else return(0);
        !           100: }
        !           101: */
        !           102: /*     This function read a string of DEC digit and
        !           103:        convert it to integer value.
        !           104:        calling sequence : stat = readd(ix);
        !           105:        input parameter  : long *ix;
        !           106:        return value     : (stat < 0) if error else (stat = 0);
        !           107: */
        !           108: /*
        !           109: readd(ix)      
        !           110: long *ix;
        !           111: {      char line[ALINE], *getnum(), *del;
        !           112:        int nochar;
        !           113: 
        !           114:        if ( (nochar = reads(line)) > 11 ) return(-1);
        !           115:        if ( (del = getnum(line,ix,del,DEC)) < 0 ) return(-1);
        !           116:                else return(0);
        !           117: }
        !           118: */
        !           119: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.