Research V7 development
[unix-history] / usr / src / cmd / as / as16.s
CommitLineData
8d8c20ed
DR
1/
2/
3
4/ a6 -- pdp-11 assembler pass 1
5
6opline:
7 mov r4,r0
8 jsr r5,betwen; 0; 200
9 br 1f
10 cmp r0,$'<
11 bne xpr
12 jmp opl17
13xpr:
14 jsr pc,expres
15 add $2,dot
16 rts pc
171:
18 movb (r4),r0
19 cmp r0,$24
20 beq xpr
21 jsr r5,betwen; 5; 36
22 br xpr
23 mov r0,-(sp)
24 jsr pc,readop
25 mov (sp)+,r0
26 asl r0
27 jmp *1f-12(r0)
28
291:
30 opl13 / map fop freg,fdst to double
31 opl6
32 opl7
33 opl10
34 opl11
35 opl13 / map fld/fst to double
36 opl13
37 opl13 / map fop fsrc,freg to double
38 opl15
39 opl16
40 opl17
41 opl20
42 opl21
43 opl22
44 opl23
45 xpr
46 opl25
47 opl26
48 opl27
49 opl13 / map mul s,r to double
50 opl31
51 opl32
52 xpr
53 xpr
54 opl35
55 opl36
56
57/ jbr
58opl35:
59 mov $4,-(sp)
60 br 1f
61
62/ jeq, etc
63opl36:
64 mov $6,-(sp)
651:
66 jsr pc,expres
67 cmp r3,dotrel
68 bne 1f
69 sub dot,r2
70 bge 1f
71 cmp r2,$-376
72 blt 1f
73 mov $2,(sp)
741:
75 add (sp)+,dot
76 rts pc
77
78/double
79opl13:
80opl7:
81 jsr pc,addres
82op2:
83 cmp r4,$',
84 beq 1f
85 jsr pc,errora
86 rts pc
871:
88 jsr pc,readop
89opl15: / single operand
90 jsr pc,addres
91 add $2,dot
92 rts pc
93
94opl31: / sob
95 jsr pc,expres
96 cmp r4,$',
97 beq 1f
98 jsr pc,errora
991:
100 jsr pc,readop
101
102/branch
103opl6:
104opl10:
105opl11:
106 jsr pc,expres
107 add $2,dot
108 rts pc
109
110/ .byte
111opl16:
112 jsr pc,expres
113 inc dot
114 cmp r4,$',
115 bne 1f
116 jsr pc,readop
117 br opl16
1181:
119 rts pc
120
121/ < (.ascii)
122opl17:
123 add numval,dot
124 jsr pc,readop
125 rts pc
126
127/.even
128opl20:
129 inc dot
130 bic $1,dot
131 rts pc
132
133/.if
134opl21:
135 jsr pc,expres
136 tst r3
137 bne 1f
138 jsr r5,error; 'U
1391:
140 tst r2
141 bne opl22
142 inc ifflg
143opl22: /endif
144 rts pc
145
146/.globl
147opl23:
148 cmp r4,$200
149 blo 1f
150 bisb $40,(r4)
151 jsr pc,readop
152 cmp r4,$',
153 bne 1f
154 jsr pc,readop
155 br opl23
1561:
157 rts pc
158
159opl25:
160opl26:
161opl27:
162 mov dotrel,r1
163 asl r1
164 mov dot,savdot-4(r1)
165 mov savdot-[2*25](r0),dot
166 asr r0
167 sub $25-2,r0
168 mov r0,dotrel
169 rts pc
170
171/ .common
172opl32:
173 cmp r4,$200
174 blo 1f
175 bis $40,(r4)
176 jsr pc,readop
177 cmp r4,$',
178 bne 1f
179 jsr pc,readop
180 jsr pc,expres
181 rts pc
1821:
183 jsr r5,error; 'x
184 rts pc
185
186addres:
187 cmp r4,$'(
188 beq alp
189 cmp r4,$'-
190 beq amin
191 cmp r4,$'$
192 beq adoll
193 cmp r4,$'*
194 beq astar
195getx:
196 jsr pc,expres
197 cmp r4,$'(
198 bne 2f
199 jsr pc,readop
200 jsr pc,expres
201 jsr pc,checkreg
202 jsr pc,checkrp
203 add $2,dot
204 clr r0
205 rts pc
2062:
207 cmp r3,$24 / register type
208 bne 1f
209 jsr pc,checkreg
210 clr r0
211 rts pc
2121:
213 add $2,dot
214 clr r0
215 rts pc
216
217alp:
218 jsr pc,readop
219 jsr pc,expres
220 jsr pc,checkrp
221 jsr pc,checkreg
222 cmp r4,$'+
223 bne 1f
224 jsr pc,readop
225 clr r0
226 rts pc
2271:
228 mov $2,r0
229 rts pc
230
231amin:
232 jsr pc,readop
233 cmp r4,$'(
234 beq 1f
235 mov r4,savop
236 mov $'-,r4
237 br getx
2381:
239 jsr pc,readop
240 jsr pc,expres
241 jsr pc,checkrp
242 jsr pc,checkreg
243 clr r0
244 rts pc
245
246adoll:
247 jsr pc,readop
248 jsr pc,expres
249 add $2,dot
250 clr r0
251 rts pc
252
253astar:
254 jsr pc,readop
255 cmp r4,$'*
256 bne 1f
257 jsr r5,error; '*
2581:
259 jsr pc,addres
260 add r0,dot
261 rts pc
262
263errora:
264 jsr r5,error; 'a
265 rts pc
266
267checkreg:
268 cmp r2,$7
269 bhi 1f
270 cmp r3,$1
271 beq 2f
272 cmp r3,$4
273 bhi 2f
2741:
275 jsr pc,errora
2762:
277 rts pc
278
279errore:
280 jsr r5,error; 'e
281 rts pc
282
283checkrp:
284 cmp r4,$')
285 beq 1f
286 jsr r5,error; ')
287 rts pc
2881:
289 jsr pc,readop
290 rts pc
291