|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.