Annotation of 3BSD/cmd/px/30read.s, revision 1.1.1.1

1.1       root        1: #
                      2: # 30read.s
                      3: #
                      4: # READ OPERATIONS
                      5: #
                      6: _GET:
                      7:        incl    r10
                      8:        calls   $0,_iosync      #insure that something is in the window
                      9:        bisw2   $SYNC,FUNIT(r7) #throw it away
                     10:        jmp     (r8)
                     11: _FNIL:
                     12:        incl    r10
                     13:        movl    (sp),r0
                     14:        bbs     $fWRITE,FUNIT(r0),l3002 #ignore sync of output files
                     15:        movl    r7,r2
                     16:        movl    _file,r3
                     17:        calls   $0,_unit        #do not discard arguement to unit on return
                     18:        calls   $0,_iosync
                     19:        movl    r2,r7
                     20:        movl    r3,_file
                     21: l3002:
                     22:        jmp     (r8)
                     23: _READ4:
                     24:        incl    r10
                     25:        calls   $0,_unsync      #prepare input stream
                     26:        pushl   $0              #space for answer
                     27:        pushl   sp              #ptr to answer space
                     28:        pushal  rd4             #ptr to input format
                     29:        pushl   FBUF(r7)        #stream
                     30:        calls   $3,_fscanf
                     31:        cmpl    $1,r0
                     32:        bneq    eiread
                     33:        bisw2   $SYNC,FUNIT(r7)
                     34:        jmp     (r8)
                     35: eiread:
                     36:        movw    $EBADINUM,_perrno
                     37:        jbr     error
                     38: _READ8:
                     39:        incl    r10
                     40:        calls   $0,_unsync      #prepare input stream
                     41:        clrd    -(sp)           #space for answer
                     42:        pushl   sp              #ptr to answer space
                     43:        pushal  rd8             #ptr to input format
                     44:        pushl   FBUF(r7)        #stream
                     45:        calls   $3,_fscanf
                     46:        cmpl    $1,r0
                     47:        bneq    efread
                     48:        bisw2   $SYNC,FUNIT(r7)
                     49:        jmp     (r8)
                     50: efread:
                     51:        movw    $EBADFNUM,_perrno
                     52:        jbr     error
                     53: _READLN:
                     54:        incl    r10
                     55:        calls   $0,_iosync
                     56:        bbs     $fEOLN,FUNIT(r7),l3005  #check for already at end of line
                     57:        pushal  rdln
                     58:        pushl   FBUF(r7)
                     59:        calls   $2,_fscanf
                     60: l3005:
                     61:        bisw2   $SYNC,FUNIT(r7)
                     62:        jmp     (r8)
                     63: _READC:
                     64:        incl    r10
                     65:        calls   $0,_iosync
                     66:        cvtbw   (r7),-(sp)
                     67:        bisw2   $SYNC,FUNIT(r7)
                     68:        jmp     (r8)
                     69: 
                     70: rd4:   .byte   '%,'l,'d, 0
                     71: rd8:   .byte   '%,'l,'f, 0
                     72: rdln:  .byte   '%,'*,'[,'^,linefeed,'],'%,'*,'c, 0

unix.superglobalmegacorp.com

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