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: / system calls
78:
79: <exit\0\0\0\0>; 01;0000001
80: <fork\0\0\0\0>; 01;0000002
81: <read\0\0\0\0>; 01;0000003
82: <write\0\0\0>; 01;0000004
83: <open\0\0\0\0>; 01;0000005
84: <close\0\0\0>; 01;0000006
85: <wait\0\0\0\0>; 01;0000007
86: <creat\0\0\0>; 01;0000010
87: <link\0\0\0\0>; 01;0000011
88: <unlink\0\0>; 01;0000012
89: <exec\0\0\0\0>; 01;0000013
90: <chdir\0\0\0>; 01;0000014
91: <time\0\0\0\0>; 01;0000015
92: <makdir\0\0>; 01;0000016
93: <chmod\0\0\0>; 01;0000017
94: <chown\0\0\0>; 01;0000020
95: <break\0\0\0>; 01;0000021
96: <stat\0\0\0\0>; 01;0000022
97: <seek\0\0\0\0>; 01;0000023
98: <tell\0\0\0\0>; 01;0000024
99: <mount\0\0\0>; 01;0000025
100: <umount\0\0>; 01;0000026
101: <setuid\0\0>; 01;0000027
102: <getuid\0\0>; 01;0000030
103: <stime\0\0\0>; 01;0000031
104: <fstat\0\0\0>; 01;0000034
105: <mdate\0\0\0>; 01;0000036
106: <stty\0\0\0\0>; 01;0000037
107: <gtty\0\0\0\0>; 01;0000040
108: <nice\0\0\0\0>; 01;0000042
109: <signal\0\0>; 01;0000060
110:
111: / double operand
112:
113: <mov\0\0\0\0\0>; 13;0010000
114: <movb\0\0\0\0>; 13;0110000
115: <cmp\0\0\0\0\0>; 13;0020000
116: <cmpb\0\0\0\0>; 13;0120000
117: <bit\0\0\0\0\0>; 13;0030000
118: <bitb\0\0\0\0>; 13;0130000
119: <bic\0\0\0\0\0>; 13;0040000
120: <bicb\0\0\0\0>; 13;0140000
121: <bis\0\0\0\0\0>; 13;0050000
122: <bisb\0\0\0\0>; 13;0150000
123: <add\0\0\0\0\0>; 13;0060000
124: <sub\0\0\0\0\0>; 13;0160000
125:
126: / branch
127:
128: <br\0\0\0\0\0\0>; 06;0000400
129: <bne\0\0\0\0\0>; 06;0001000
130: <beq\0\0\0\0\0>; 06;0001400
131: <bge\0\0\0\0\0>; 06;0002000
132: <blt\0\0\0\0\0>; 06;0002400
133: <bgt\0\0\0\0\0>; 06;0003000
134: <ble\0\0\0\0\0>; 06;0003400
135: <bpl\0\0\0\0\0>; 06;0100000
136: <bmi\0\0\0\0\0>; 06;0100400
137: <bhi\0\0\0\0\0>; 06;0101000
138: <blos\0\0\0\0>; 06;0101400
139: <bvc\0\0\0\0\0>; 06;0102000
140: <bvs\0\0\0\0\0>; 06;0102400
141: <bhis\0\0\0\0>; 06;0103000
142: <bec\0\0\0\0\0>; 06;0103000
143: <bcc\0\0\0\0\0>; 06;0103000
144: <blo\0\0\0\0\0>; 06;0103400
145: <bcs\0\0\0\0\0>; 06;0103400
146: <bes\0\0\0\0\0>; 06;0103400
147:
148: / jump/branch type
149:
150: <jbr\0\0\0\0\0>; 35;0000400
151: <jne\0\0\0\0\0>; 36;0001000
152: <jeq\0\0\0\0\0>; 36;0001400
153: <jge\0\0\0\0\0>; 36;0002000
154: <jlt\0\0\0\0\0>; 36;0002400
155: <jgt\0\0\0\0\0>; 36;0003000
156: <jle\0\0\0\0\0>; 36;0003400
157: <jpl\0\0\0\0\0>; 36;0100000
158: <jmi\0\0\0\0\0>; 36;0100400
159: <jhi\0\0\0\0\0>; 36;0101000
160: <jlos\0\0\0\0>; 36;0101400
161: <jvc\0\0\0\0\0>; 36;0102000
162: <jvs\0\0\0\0\0>; 36;0102400
163: <jhis\0\0\0\0>; 36;0103000
164: <jec\0\0\0\0\0>; 36;0103000
165: <jcc\0\0\0\0\0>; 36;0103000
166: <jlo\0\0\0\0\0>; 36;0103400
167: <jcs\0\0\0\0\0>; 36;0103400
168: <jes\0\0\0\0\0>; 36;0103400
169:
170: / single operand
171:
172: <clr\0\0\0\0\0>; 15;0005000
173: <clrb\0\0\0\0>; 15;0105000
174: <com\0\0\0\0\0>; 15;0005100
175: <comb\0\0\0\0>; 15;0105100
176: <inc\0\0\0\0\0>; 15;0005200
177: <incb\0\0\0\0>; 15;0105200
178: <dec\0\0\0\0\0>; 15;0005300
179: <decb\0\0\0\0>; 15;0105300
180: <neg\0\0\0\0\0>; 15;0005400
181: <negb\0\0\0\0>; 15;0105400
182: <adc\0\0\0\0\0>; 15;0005500
183: <adcb\0\0\0\0>; 15;0105500
184: <sbc\0\0\0\0\0>; 15;0005600
185: <sbcb\0\0\0\0>; 15;0105600
186: <tst\0\0\0\0\0>; 15;0005700
187: <tstb\0\0\0\0>; 15;0105700
188: <ror\0\0\0\0\0>; 15;0006000
189: <rorb\0\0\0\0>; 15;0106000
190: <rol\0\0\0\0\0>; 15;0006100
191: <rolb\0\0\0\0>; 15;0106100
192: <asr\0\0\0\0\0>; 15;0006200
193: <asrb\0\0\0\0>; 15;0106200
194: <asl\0\0\0\0\0>; 15;0006300
195: <aslb\0\0\0\0>; 15;0106300
196: <jmp\0\0\0\0\0>; 15;0000100
197: <swab\0\0\0\0>; 15;0000300
198:
199: / jsr
200:
201: <jsr\0\0\0\0\0>; 07;0004000
202:
203: / rts
204:
205: <rts\0\0\0\0\0>; 010;000200
206:
207: / simple operand
208:
209: <sys\0\0\0\0\0>; 011;104400
210:
211: / flag-setting
212:
213: <clc\0\0\0\0\0>; 01;0000241
214: <clv\0\0\0\0\0>; 01;0000242
215: <clz\0\0\0\0\0>; 01;0000244
216: <cln\0\0\0\0\0>; 01;0000250
217: <sec\0\0\0\0\0>; 01;0000261
218: <sev\0\0\0\0\0>; 01;0000262
219: <sez\0\0\0\0\0>; 01;0000264
220: <sen\0\0\0\0\0>; 01;0000270
221:
222: / floating point ops
223:
224: <cfcc\0\0\0\0>; 01;170000
225: <setf\0\0\0\0>; 01;170001
226: <setd\0\0\0\0>; 01;170011
227: <seti\0\0\0\0>; 01;170002
228: <setl\0\0\0\0>; 01;170012
229: <clrf\0\0\0\0>; 15;170400
230: <negf\0\0\0\0>; 15;170700
231: <absf\0\0\0\0>; 15;170600
232: <tstf\0\0\0\0>; 15;170500
233: <movf\0\0\0\0>; 12;172400
234: <movif\0\0\0>; 14;177000
235: <movfi\0\0\0>; 05;175400
236: <movof\0\0\0>; 14;177400
237: <movfo\0\0\0>; 05;176000
238: <addf\0\0\0\0>; 14;172000
239: <subf\0\0\0\0>; 14;173000
240: <mulf\0\0\0\0>; 14;171000
241: <divf\0\0\0\0>; 14;174400
242: <cmpf\0\0\0\0>; 14;173400
243: <modf\0\0\0\0>; 14;171400
244: <movie\0\0\0>; 14;176400
245: <movei\0\0\0>; 05;175000
246: <ldfps\0\0\0>; 15;170100
247: <stfps\0\0\0>; 15;170200
248: <fr0\0\0\0\0\0>; 24;000000
249: <fr1\0\0\0\0\0>; 24;000001
250: <fr2\0\0\0\0\0>; 24;000002
251: <fr3\0\0\0\0\0>; 24;000003
252: <fr4\0\0\0\0\0>; 24;000004
253: <fr5\0\0\0\0\0>; 24;000005
254:
255: / 11/45 operations
256:
257: <als\0\0\0\0\0>; 30;072000
258: <alsc\0\0\0\0>; 30;073000
259: <mpy\0\0\0\0\0>; 30;070000
260: .if eae-1
261: <mul\0\0\0\0\0>; 30;070000
262: <div\0\0\0\0\0>; 30;071000
263: <ash\0\0\0\0\0>; 30;072000
264: <ashc\0\0\0\0>; 30;073000
265: .endif
266: <dvd\0\0\0\0\0>; 30;071000
267: <xor\0\0\0\0\0>; 07;074000
268: <sxt\0\0\0\0\0>; 15;006700
269: <mark\0\0\0\0>; 11;006400
270: <sob\0\0\0\0\0>; 31;077000
271:
272: / specials
273:
274: <.byte\0\0\0>; 16;000000
275: <.even\0\0\0>; 20;000000
276: <.if\0\0\0\0\0>; 21;000000
277: <.endif\0\0>; 22;000000
278: <.globl\0\0>; 23;000000
279: <.text\0\0\0>; 25;000000
280: <.data\0\0\0>; 26;000000
281: <.bss\0\0\0\0>; 27;000000
282: <.comm\0\0\0>; 32;000000
283:
284: ebsymtab:
285:
286:
287: start:
288: sys signal; 2; 1
289: ror r0
290: bcs 1f
291: sys signal; 2; aexit
292: 1:
293: mov sp,r5
294: mov (r5)+,r0
295: cmpb *2(r5),$'-
296: bne 1f
297: tst (r5)+
298: dec r0
299: br 2f
300: 1:
301: clr unglob
302: 2:
303: movb r0,nargs
304: mov r5,curarg
305: jsr r5,fcreat; a.tmp1
306: movb r0,pof
307: jsr r5,fcreat; a.tmp2
308: movb r0,fbfil
309: jsr pc,setup
310: jmp go
311:
312: setup:
313: mov $symtab,r1
314: 1:
315: clr r3
316: mov $8,r2
317: mov r1,-(sp)
318: 2:
319: movb (r1)+,r4
320: beq 2f
321: add r4,r3
322: swab r3
323: sob r2,2b
324: 2:
325: clr r2
326: div $hshsiz,r2
327: ashc $1,r2
328: add $hshtab,r3
329: 4:
330: sub r2,r3
331: cmp r3,$hshtab
332: bhi 3f
333: add $2*hshsiz,r3
334: 3:
335: tst -(r3)
336: bne 4b
337: mov (sp)+,r1
338: mov r1,(r3)
339: add $12.,r1
340: cmp r1,$ebsymtab
341: blo 1b
342: rts pc
343:
344: /overlay buffer
345: inbuf = setup
346: . =inbuf+512.
Defined functions
eae
defined in line
6; used 2 times
Defined variables
dot
defined in line
46;
never used