Commit | Line | Data |
---|---|---|
8d8c20ed DR |
1 | / |
2 | / | |
3 | ||
4 | / a3 -- pdp-11 assembler pass 2 | |
5 | ||
6 | assem: | |
7 | jsr pc,readop | |
8 | cmp r4,$5 | |
9 | beq 2f | |
10 | cmp r4,$'< | |
11 | beq 2f | |
12 | jsr pc,checkeos | |
13 | br eal1 | |
14 | mov r4,-(sp) | |
15 | cmp (sp),$1 | |
16 | bne 1f | |
17 | mov $2,(sp) | |
18 | jsr pc,getw | |
19 | mov r4,numval | |
20 | 1: | |
21 | jsr pc,readop | |
22 | cmp r4,$'= | |
23 | beq 4f | |
24 | cmp r4,$': | |
25 | beq 1f | |
26 | mov r4,savop | |
27 | mov (sp)+,r4 | |
28 | 2: | |
29 | jsr pc,opline | |
30 | dotmax: | |
31 | tstb passno | |
32 | bne eal1 | |
33 | movb dotrel,r0 | |
34 | asl r0 | |
35 | cmp dot,txtsiz-4(r0) | |
36 | blos ealoop | |
37 | mov dot,txtsiz-4(r0) | |
38 | eal1: | |
39 | jmp ealoop | |
40 | 1: | |
41 | mov (sp)+,r4 | |
42 | cmp r4,$200 | |
43 | bhis 1f | |
44 | cmp r4,$2 | |
45 | beq 3f | |
46 | jsr r5,error; 'x | |
47 | br assem | |
48 | 1: | |
49 | tstb passno | |
50 | bne 2f | |
51 | movb (r4),r0 | |
52 | bic $!37,r0 | |
53 | beq 5f | |
54 | cmp r0,$33 | |
55 | blt 6f | |
56 | cmp r0,$34 | |
57 | ble 5f | |
58 | 6: | |
59 | jsr r5,error; 'm | |
60 | 5: | |
61 | bic $37,(r4) | |
62 | bis dotrel,(r4) | |
63 | mov 2(r4),brdelt | |
64 | sub dot,brdelt | |
65 | mov dot,2(r4) | |
66 | br assem | |
67 | 2: | |
68 | cmp dot,2(r4) | |
69 | beq assem | |
70 | jsr r5,error; 'p | |
71 | br assem | |
72 | 3: | |
73 | mov numval,r4 | |
74 | jsr pc,fbadv | |
75 | asl r4 | |
76 | mov curfb(r4),r0 | |
77 | movb dotrel,(r0) | |
78 | mov 2(r0),brdelt | |
79 | sub dot,brdelt | |
80 | mov dot,2(r0) | |
81 | br assem | |
82 | 4: | |
83 | jsr pc,readop | |
84 | jsr pc,expres | |
85 | mov (sp)+,r1 | |
86 | cmp r1,$symtab /test for dot | |
87 | bne 1f | |
88 | bic $40,r3 | |
89 | cmp r3,dotrel / can't change relocation | |
90 | bne 2f | |
91 | cmp r3,$4 / bss | |
92 | bne 3f | |
93 | mov r2,dot | |
94 | br dotmax | |
95 | 3: | |
96 | sub dot,r2 | |
97 | bmi 2f | |
98 | mov r2,-(sp) | |
99 | 3: | |
100 | dec (sp) | |
101 | bmi 3f | |
102 | clr r2 | |
103 | mov $1,r3 | |
104 | jsr pc,outb | |
105 | br 3b | |
106 | 3: | |
107 | tst (sp)+ | |
108 | br dotmax | |
109 | 2: | |
110 | jsr r5,error; '. | |
111 | br ealoop | |
112 | 1: | |
113 | cmp r3,$40 | |
114 | bne 1f | |
115 | jsr r5,error; 'r | |
116 | 1: | |
117 | bic $37,(r1) | |
118 | bic $!37,r3 | |
119 | bne 1f | |
120 | clr r2 | |
121 | 1: | |
122 | bisb r3,(r1) | |
123 | mov r2,2(r1) | |
124 | ||
125 | ealoop: | |
126 | cmp r4,$'\n | |
127 | beq 1f | |
128 | cmp r4,$'\e | |
129 | bne 9f | |
130 | rts pc | |
131 | 1: | |
132 | inc line | |
133 | 9: | |
134 | jmp assem | |
135 | ||
136 | checkeos: | |
137 | cmp r4,$'\n | |
138 | beq 1f | |
139 | cmp r4,$'; | |
140 | beq 1f | |
141 | cmp r4,$'\e | |
142 | beq 1f | |
143 | add $2,(sp) | |
144 | 1: | |
145 | rts pc | |
146 | ||
147 | fbadv: | |
148 | asl r4 | |
149 | mov nxtfb(r4),r1 | |
150 | mov r1,curfb(r4) | |
151 | bne 1f | |
152 | mov fbbufp,r1 | |
153 | br 2f | |
154 | 1: | |
155 | add $4,r1 | |
156 | 2: | |
157 | cmpb 1(r1),r4 | |
158 | beq 1f | |
159 | tst (r1) | |
160 | bpl 1b | |
161 | 1: | |
162 | mov r1,nxtfb(r4) | |
163 | asr r4 | |
164 | rts pc | |
165 |