1: /
2: /
3:
4: / as9 -- PDP-11 assembler pass 2
5:
6: eae = 0
7:
8: .data
9: symtab:
10:
11: / special variables
12:
13: dotrel: 02; dot:000000 /.
14: 01; dotdot:000000 /..
15:
16: / register
17:
18: 24;000000 /r0
19: 24;000001 /r1
20: 24;000002 /r2
21: 24;000003 /r3
22: 24;000004 /r4
23: 24;000005 /r5
24: 24;000006 /sp
25: 24;000007 /pc
26:
27:
28: .if eae
29: /eae & switches
30:
31: 01;177570 /csw
32: 01;177300 /div
33: 01;177302 /ac
34: 01;177304 /mq
35: 01;177306 /mul
36: 01;177310 /sc
37: 01;177311 /sr
38: 01;177312 /nor
39: 01;177314 /lsh
40: 01;177316 /ash
41:
42: .endif
43:
44: / system calls
45:
46: 01;0000001 /exit
47: 01;0000002 /fork
48: 01;0000003 /read
49: 01;0000004 /write
50: 01;0000005 /open
51: 01;0000006 /close
52: 01;0000007 /wait
53: 01;0000010 /creat
54: 01;0000011 /link
55: 01;0000012 /unlink
56: 01;0000013 /exec
57: 01;0000014 /chdir
58: 01;0000015 /time
59: 01;0000016 /makdir
60: 01;0000017 /chmod
61: 01;0000020 /chown
62: 01;0000021 /break
63: 01;0000022 /stat
64: 01;0000023 /seek
65: 01;0000024 /tell
66: 01;0000025 /mount
67: 01;0000026 /umount
68: 01;0000027 /setuid
69: 01;0000030 /getuid
70: 01;0000031 /stime
71: 01;0000034 /fstat
72: 01;0000036 /mdate
73: 01;0000037 /stty
74: 01;0000040 /gtty
75: 01;0000042 /nice
76: 01;0000060 /signal
77:
78: / double operand
79:
80: 13;0010000 /mov
81: 13;0110000 /movb
82: 13;0020000 /cmp
83: 13;0120000 /cmpb
84: 13;0030000 /bit
85: 13;0130000 /bitb
86: 13;0040000 /bic
87: 13;0140000 /bicb
88: 13;0050000 /bis
89: 13;0150000 /bisb
90: 13;0060000 /add
91: 13;0160000 /sub
92:
93: / branch
94:
95: 06;0000400 /br
96: 06;0001000 /bne
97: 06;0001400 /beq
98: 06;0002000 /bge
99: 06;0002400 /blt
100: 06;0003000 /bgt
101: 06;0003400 /ble
102: 06;0100000 /bpl
103: 06;0100400 /bmi
104: 06;0101000 /bhi
105: 06;0101400 /blos
106: 06;0102000 /bvc
107: 06;0102400 /bvs
108: 06;0103000 /bhis
109: 06;0103000 /bec
110: 06;0103000 /bcc
111: 06;0103400 /blo
112: 06;0103400 /bcs
113: 06;0103400 /bes
114:
115: / jump/ branch type
116:
117: 35;0000400 /jbr
118: 36;0001000 /jne
119: 36;0001400 /jeq
120: 36;0002000 /jge
121: 36;0002400 /jlt
122: 36;0003000 /jgt
123: 36;0003400 /jle
124: 36;0100000 /jpl
125: 36;0100400 /jmi
126: 36;0101000 /jhi
127: 36;0101400 /jlos
128: 36;0102000 /jvc
129: 36;0102400 /jvs
130: 36;0103000 /jhis
131: 36;0103000 /jec
132: 36;0103000 /jcc
133: 36;0103400 /jlo
134: 36;0103400 /jcs
135: 36;0103400 /jes
136:
137: / single operand
138:
139: 15;0005000 /clr
140: 15;0105000 /clrb
141: 15;0005100 /com
142: 15;0105100 /comb
143: 15;0005200 /inc
144: 15;0105200 /incb
145: 15;0005300 /dec
146: 15;0105300 /decb
147: 15;0005400 /neg
148: 15;0105400 /negb
149: 15;0005500 /adc
150: 15;0105500 /adcb
151: 15;0005600 /sbc
152: 15;0105600 /sbcb
153: 15;0005700 /tst
154: 15;0105700 /tstb
155: 15;0006000 /ror
156: 15;0106000 /rorb
157: 15;0006100 /rol
158: 15;0106100 /rolb
159: 15;0006200 /asr
160: 15;0106200 /asrb
161: 15;0006300 /asl
162: 15;0106300 /aslb
163: 15;0000100 /jmp
164: 15;0000300 /swab
165:
166: / jsr
167:
168: 07;0004000 /jsr
169:
170: / rts
171:
172: 10;000200 /rts
173:
174: / simple operand
175:
176: 11;104400 /sys
177:
178: / flag-setting
179:
180: 01;0000241 /clc
181: 01;0000242 /clv
182: 01;0000244 /clz
183: 01;0000250 /cln
184: 01;0000261 /sec
185: 01;0000262 /sev
186: 01;0000264 /sez
187: 01;0000270 /sen
188:
189: / floating point ops
190:
191: 01;170000 / cfcc
192: 01;170001 / setf
193: 01;170011 / setd
194: 01;170002 / seti
195: 01;170012 / setl
196: 15;170400 / clrf
197: 15;170700 / negf
198: 15;170600 / absf
199: 15;170500 / tstf
200: 12;172400 / movf
201: 14;177000 / movif
202: 05;175400 / movfi
203: 14;177400 / movof
204: 05;176000 / movfo
205: 14;172000 / addf
206: 14;173000 / subf
207: 14;171000 / mulf
208: 14;174400 / divf
209: 14;173400 / cmpf
210: 14;171400 / modf
211: 14;176400 / movie
212: 05;175000 / movei
213: 15;170100 / ldfps
214: 15;170200 / stfps
215: 24;000000 / fr0
216: 24;000001 / fr1
217: 24;000002 / fr2
218: 24;000003 / fr3
219: 24;000004 / fr4
220: 24;000005 / fr5
221:
222: / 11/45 operations
223:
224: 30;072000 /als (ash)
225: 30;073000 /alsc (ashc)
226: 30;070000 /mpy
227: .if eae-1
228: 30;070000/ mul
229: 30;071000 / div
230: 30;072000 / ash
231: 30;073000 /ashc
232: .endif
233: 30;071000 /dvd
234: 07;074000 /xor
235: 15;006700 /sxt
236: 11;006400 /mark
237: 31;077000 /sob
238:
239: / specials
240:
241: 16;000000 /.byte
242: 20;000000 /.even
243: 21;000000 /.if
244: 22;000000 /.endif
245: 23;000000 /.globl
246: 25;000000 /.text
247: 26;000000 /.data
248: 27;000000 /.bss
249: 32;000000 /.comm
250:
251: start:
252: cmp (sp),$4
253: bge 1f
254: jmp aexit
255: 1:
256: cmp (sp)+,$5
257: blt 1f
258: mov $40,defund / globalize all undefineds
259: 1:
260: tst (sp)+
261: mov (sp)+,a.tmp1
262: mov (sp)+,a.tmp2
263: mov (sp)+,a.tmp3
264: jsr r5,ofile; a.tmp1
265: movb r0,txtfil
266: jsr r5,ofile; a.tmp2
267: movb r0,fbfil
268: jsr r5,ofile; a.tmp3
269: movb r0,symf
270: movb r0,fin
271: sys creat; a.out; 0
272: bec 1f
273: jsr r5,filerr; a.outp
274: 1:
275: movb r0,fout
276: jmp go
277:
278: / overlaid buffer
279: inbuf = start
280: . = inbuf+512.
Defined functions
eae
defined in line
6; used 2 times
Defined variables
dot
defined in line
13;
never used
symtab
defined in line
9;
never used