1: /
2: /
3:
4: / a9 -- pdp-11 assembler pass 1
5:
6: eae = 0
7:
8: / key to types
9:
10: / 0 undefined
11: / 1 absolute
12: / 2 text
13: / 3 data
14: / 4 bss
15: / 5 flop freg,dst (movfo, = stcfd)
16: / 6 branch
17: / 7 jsr
18: / 10 rts
19: / 11 sys
20: / 12 movf (=ldf,stf)
21: / 13 double operand (mov)
22: / 14 flop fsrc,freg (addf)
23: / 15 single operand (clr)
24: / 16 .byte
25: / 17 string (.ascii, "<")
26: / 20 .even
27: / 21 .if
28: / 22 .endif
29: / 23 .globl
30: / 24 register
31: / 25 .text
32: / 26 .data
33: / 27 .bss
34: / 30 mul,div, etc
35: / 31 sob
36: / 32 .comm
37: / 33 estimated text
38: / 34 estimated data
39: / 35 jbr
40: / 36 jeq, jne, etc
41:
42: .data
43: symtab:
44: / special variables
45:
46: <.\0\0\0\0\0\0\0>; dotrel:02; dot:000000
47: <..\0\0\0\0\0\0>; 01; dotdot:000000
48:
49: / register
50:
51: <r0\0\0\0\0\0\0>; 24;000000
52: <r1\0\0\0\0\0\0>; 24;000001
53: <r2\0\0\0\0\0\0>; 24;000002
54: <r3\0\0\0\0\0\0>; 24;000003
55: <r4\0\0\0\0\0\0>; 24;000004
56: <r5\0\0\0\0\0\0>; 24;000005
57: <sp\0\0\0\0\0\0>; 24;000006
58: <pc\0\0\0\0\0\0>; 24;000007
59:
60: .if eae
61:
62: /eae & switches
63:
64: <csw\0\0\0\0\0>; 01;177570
65: <div\0\0\0\0\0>; 01;177300
66: <ac\0\0\0\0\0\0>; 01;177302
67: <mq\0\0\0\0\0\0>; 01;177304
68: <mul\0\0\0\0\0>; 01;177306
69: <sc\0\0\0\0\0\0>; 01;177310
70: <sr\0\0\0\0\0\0>; 01;177311
71: <nor\0\0\0\0\0>; 01;177312
72: <lsh\0\0\0\0\0>; 01;177314
73: <ash\0\0\0\0\0>; 01;177316
74:
75: .endif
76:
77: / double operand
78:
79: <mov\0\0\0\0\0>; 13;0010000
80: <movb\0\0\0\0>; 13;0110000
81: <cmp\0\0\0\0\0>; 13;0020000
82: <cmpb\0\0\0\0>; 13;0120000
83: <bit\0\0\0\0\0>; 13;0030000
84: <bitb\0\0\0\0>; 13;0130000
85: <bic\0\0\0\0\0>; 13;0040000
86: <bicb\0\0\0\0>; 13;0140000
87: <bis\0\0\0\0\0>; 13;0050000
88: <bisb\0\0\0\0>; 13;0150000
89: <add\0\0\0\0\0>; 13;0060000
90: <sub\0\0\0\0\0>; 13;0160000
91:
92: / branch
93:
94: <br\0\0\0\0\0\0>; 06;0000400
95: <bne\0\0\0\0\0>; 06;0001000
96: <beq\0\0\0\0\0>; 06;0001400
97: <bge\0\0\0\0\0>; 06;0002000
98: <blt\0\0\0\0\0>; 06;0002400
99: <bgt\0\0\0\0\0>; 06;0003000
100: <ble\0\0\0\0\0>; 06;0003400
101: <bpl\0\0\0\0\0>; 06;0100000
102: <bmi\0\0\0\0\0>; 06;0100400
103: <bhi\0\0\0\0\0>; 06;0101000
104: <blos\0\0\0\0>; 06;0101400
105: <bvc\0\0\0\0\0>; 06;0102000
106: <bvs\0\0\0\0\0>; 06;0102400
107: <bhis\0\0\0\0>; 06;0103000
108: <bec\0\0\0\0\0>; 06;0103000
109: <bcc\0\0\0\0\0>; 06;0103000
110: <blo\0\0\0\0\0>; 06;0103400
111: <bcs\0\0\0\0\0>; 06;0103400
112: <bes\0\0\0\0\0>; 06;0103400
113:
114: / jump/branch type
115:
116: <jbr\0\0\0\0\0>; 35;0000400
117: <jne\0\0\0\0\0>; 36;0001000
118: <jeq\0\0\0\0\0>; 36;0001400
119: <jge\0\0\0\0\0>; 36;0002000
120: <jlt\0\0\0\0\0>; 36;0002400
121: <jgt\0\0\0\0\0>; 36;0003000
122: <jle\0\0\0\0\0>; 36;0003400
123: <jpl\0\0\0\0\0>; 36;0100000
124: <jmi\0\0\0\0\0>; 36;0100400
125: <jhi\0\0\0\0\0>; 36;0101000
126: <jlos\0\0\0\0>; 36;0101400
127: <jvc\0\0\0\0\0>; 36;0102000
128: <jvs\0\0\0\0\0>; 36;0102400
129: <jhis\0\0\0\0>; 36;0103000
130: <jec\0\0\0\0\0>; 36;0103000
131: <jcc\0\0\0\0\0>; 36;0103000
132: <jlo\0\0\0\0\0>; 36;0103400
133: <jcs\0\0\0\0\0>; 36;0103400
134: <jes\0\0\0\0\0>; 36;0103400
135:
136: / single operand
137:
138: <clr\0\0\0\0\0>; 15;0005000
139: <clrb\0\0\0\0>; 15;0105000
140: <com\0\0\0\0\0>; 15;0005100
141: <comb\0\0\0\0>; 15;0105100
142: <inc\0\0\0\0\0>; 15;0005200
143: <incb\0\0\0\0>; 15;0105200
144: <dec\0\0\0\0\0>; 15;0005300
145: <decb\0\0\0\0>; 15;0105300
146: <neg\0\0\0\0\0>; 15;0005400
147: <negb\0\0\0\0>; 15;0105400
148: <adc\0\0\0\0\0>; 15;0005500
149: <adcb\0\0\0\0>; 15;0105500
150: <sbc\0\0\0\0\0>; 15;0005600
151: <sbcb\0\0\0\0>; 15;0105600
152: <tst\0\0\0\0\0>; 15;0005700
153: <tstb\0\0\0\0>; 15;0105700
154: <ror\0\0\0\0\0>; 15;0006000
155: <rorb\0\0\0\0>; 15;0106000
156: <rol\0\0\0\0\0>; 15;0006100
157: <rolb\0\0\0\0>; 15;0106100
158: <asr\0\0\0\0\0>; 15;0006200
159: <asrb\0\0\0\0>; 15;0106200
160: <asl\0\0\0\0\0>; 15;0006300
161: <aslb\0\0\0\0>; 15;0106300
162: <jmp\0\0\0\0\0>; 15;0000100
163: <swab\0\0\0\0>; 15;0000300
164:
165: / jsr
166:
167: <jsr\0\0\0\0\0>; 07;0004000
168:
169: / rts
170:
171: <rts\0\0\0\0\0>; 010;000200
172:
173: / simple operand
174:
175: <sys\0\0\0\0\0>; 011;104400
176:
177: / flag-setting
178:
179: <clc\0\0\0\0\0>; 01;0000241
180: <clv\0\0\0\0\0>; 01;0000242
181: <clz\0\0\0\0\0>; 01;0000244
182: <cln\0\0\0\0\0>; 01;0000250
183: <sec\0\0\0\0\0>; 01;0000261
184: <sev\0\0\0\0\0>; 01;0000262
185: <sez\0\0\0\0\0>; 01;0000264
186: <sen\0\0\0\0\0>; 01;0000270
187:
188: / floating point ops
189:
190: <cfcc\0\0\0\0>; 01;170000
191: <setf\0\0\0\0>; 01;170001
192: <setd\0\0\0\0>; 01;170011
193: <seti\0\0\0\0>; 01;170002
194: <setl\0\0\0\0>; 01;170012
195: <clrf\0\0\0\0>; 15;170400
196: <negf\0\0\0\0>; 15;170700
197: <absf\0\0\0\0>; 15;170600
198: <tstf\0\0\0\0>; 15;170500
199: <movf\0\0\0\0>; 12;172400
200: <movif\0\0\0>; 14;177000
201: <movfi\0\0\0>; 05;175400
202: <movof\0\0\0>; 14;177400
203: <movfo\0\0\0>; 05;176000
204: <addf\0\0\0\0>; 14;172000
205: <subf\0\0\0\0>; 14;173000
206: <mulf\0\0\0\0>; 14;171000
207: <divf\0\0\0\0>; 14;174400
208: <cmpf\0\0\0\0>; 14;173400
209: <modf\0\0\0\0>; 14;171400
210: <movie\0\0\0>; 14;176400
211: <movei\0\0\0>; 05;175000
212: <ldfps\0\0\0>; 15;170100
213: <stfps\0\0\0>; 15;170200
214: <fr0\0\0\0\0\0>; 24;000000
215: <fr1\0\0\0\0\0>; 24;000001
216: <fr2\0\0\0\0\0>; 24;000002
217: <fr3\0\0\0\0\0>; 24;000003
218: <fr4\0\0\0\0\0>; 24;000004
219: <fr5\0\0\0\0\0>; 24;000005
220:
221: / 11/45 operations
222:
223: <als\0\0\0\0\0>; 30;072000
224: <alsc\0\0\0\0>; 30;073000
225: <mpy\0\0\0\0\0>; 30;070000
226: .if eae-1
227: <mul\0\0\0\0\0>; 30;070000
228: <div\0\0\0\0\0>; 30;071000
229: <ash\0\0\0\0\0>; 30;072000
230: <ashc\0\0\0\0>; 30;073000
231: .endif
232: <dvd\0\0\0\0\0>; 30;071000
233: <xor\0\0\0\0\0>; 07;074000
234: <sxt\0\0\0\0\0>; 15;006700
235: <mark\0\0\0\0>; 11;006400
236: <sob\0\0\0\0\0>; 31;077000
237:
238: / specials
239:
240: <.byte\0\0\0>; 16;000000
241: <.even\0\0\0>; 20;000000
242: <.if\0\0\0\0\0>; 21;000000
243: <.endif\0\0>; 22;000000
244: <.globl\0\0>; 23;000000
245: <.text\0\0\0>; 25;000000
246: <.data\0\0\0>; 26;000000
247: <.bss\0\0\0\0>; 27;000000
248: <.comm\0\0\0>; 32;000000
249:
250: ebsymtab:
251:
252:
253: start:
254: sys signal; 2; 1
255: ror r0
256: bcs 1f
257: sys signal; 2; aexit
258: 1:
259: mov (sp)+,r0
260: tst (sp)+
261: 1:
262: mov (sp),r1
263: cmpb (r1),$'-
264: bne 1f
265: tst (sp)+
266: dec r0
267: cmpb 1(r1),$'u
268: bne 2f
269: movb $'g,unglob
270: br 1b
271: 2:
272: cmpb 1(r1), $'V
273: bne 2f
274: movb $'V, ovloc
275: br 1b
276: 2:
277: tstb 1(r1)
278: bne 2f
279: movb $'g,unglob
280: br 1b
281: 2:
282: cmpb 1(r1),$'o
283: bne 1f
284: mov (sp),outfp
285: tst (sp)+
286: dec r0
287: br 1b
288: 1:
289: movb r0,nargs
290: tst -(sp)
291: mov sp,curarg
292: jsr r5,fcreat; a.tmp1
293: movb r0,pof
294: jsr r5,fcreat; a.tmp2
295: movb r0,fbfil
296: jsr pc,setup
297: jmp go
298:
299: setup:
300: mov $symtab,r1
301: 1:
302: clr r3
303: mov $8,r2
304: mov r1,-(sp)
305: 2:
306: movb (r1)+,r4
307: beq 2f
308: add r4,r3
309: swab r3
310: sob r2,2b
311: 2:
312: clr r2
313: div $hshsiz,r2
314: ashc $1,r2
315: add $hshtab,r3
316: 4:
317: sub r2,r3
318: cmp r3,$hshtab
319: bhi 3f
320: add $2*hshsiz,r3
321: 3:
322: tst -(r3)
323: bne 4b
324: mov (sp)+,r1
325: mov r1,(r3)
326: add $12.,r1
327: cmp r1,$ebsymtab
328: blo 1b
329: rts pc
330:
331: /overlay buffer
332: inbuf = setup
333: . =inbuf+512.
Defined functions
eae
defined in line
6; used 2 times
Defined variables
dot
defined in line
46;
never used