Research V7 development
[unix-history] / usr / src / cmd / as / as24.s
CommitLineData
8d8c20ed
DR
1/
2/
3
4/ a4 -- pdp-11 assembler pass 2
5
6oset:
7 mov r2,-(sp)
8 mov r3,-(sp)
9 mov (r5)+,r3
10 mov r1,r2
11 bic $!777,r1
12 add r3,r1
13 add $8,r1
14 mov r1,(r3)+ / next slot
15 mov r3,r1
16 add $1006,r1
17 mov r1,(r3)+ / buf max
18 mov r0,(r3)+
19 mov r2,(r3)+ / seek addr
20 mov (sp)+,r3
21 mov (sp)+,r2
22 rts r5
23
24putw:
25 mov r1,-(sp)
26 mov r2,-(sp)
27 mov (r5)+,r2
28 mov (r2)+,r1 / slot
29 cmp r1,(r2) / buf max
30 bhis 1f
31 mov r0,(r1)+
32 mov r1,-(r2)
33 br 2f
341:
35 tst (r2)+
36 mov r0,-(sp)
37 jsr r5,flush1
38 mov (sp)+,r0
39 mov r0,*(r2)+
40 add $2,-(r2)
412:
42 mov (sp)+,r2
43 mov (sp)+,r1
44 rts r5
45
46flush:
47 mov (r5)+,r2
48 cmp (r2)+,(r2)+
49flush1:
50 mov (r2)+,0f
51 mov (r2)+,r1
52 mov r1,0f+2 / seek address
53 mov fout,r0
54 sys indir; 9f
55 .data
569: sys lseek; 0:..; ..; 0
57 .text
58 bic $!777,r1
59 add r2,r1 / write address
60 mov r1,0f
61 mov r2,r0
62 bis $777,-(r2)
63 add $1,(r2) / new seek addr
64 adc -(r2)
65 cmp -(r2),-(r2)
66 sub (r2),r1
67 neg r1
68 mov r1,0f+2 / count
69 mov r0,(r2) / new next slot
70 mov fout,r0
71 sys indir; 9f
72 jes wrterr
73 .data
749: sys write; 0:..; ..
75 .text
76 rts r5
77
78wrterr:
79 mov $1,r0
80 sys write; 9f; 8f-9f
81 jmp saexit
829: <as: write error on output\n>; 8:
83
84readop:
85 mov savop,r4
86 beq 1f
87 clr savop
88 rts pc
891:
90 jsr pc,getw1
91 cmp r4,$200
92 blo 1f
93 cmp r4,$4000
94 blo 2f
95 add $usymtab-4000,r4
96 rts pc
972:
98 add $symtab-1000,r4
991:
100 rts pc
101
102getw:
103 mov savop,r4
104 beq getw1
105 clr savop
106 rts pc
107getw1:
108 dec ibufc
109 bgt 1f
110 movb fin,r0
111 sys read; inbuf; 512.
112 bes 3f
113 asr r0
114 mov r0,ibufc
115 bne 2f
1163:
117 mov $4,r4
118 sev
119 rts pc
1202:
121 mov $inbuf,ibufp
1221:
123 mov *ibufp,r4
124 add $2,ibufp
125 rts pc