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: / double operand
45:
46: 13;0010000 /mov
47: 13;0110000 /movb
48: 13;0020000 /cmp
49: 13;0120000 /cmpb
50: 13;0030000 /bit
51: 13;0130000 /bitb
52: 13;0040000 /bic
53: 13;0140000 /bicb
54: 13;0050000 /bis
55: 13;0150000 /bisb
56: 13;0060000 /add
57: 13;0160000 /sub
58:
59: / branch
60:
61: 06;0000400 /br
62: 06;0001000 /bne
63: 06;0001400 /beq
64: 06;0002000 /bge
65: 06;0002400 /blt
66: 06;0003000 /bgt
67: 06;0003400 /ble
68: 06;0100000 /bpl
69: 06;0100400 /bmi
70: 06;0101000 /bhi
71: 06;0101400 /blos
72: 06;0102000 /bvc
73: 06;0102400 /bvs
74: 06;0103000 /bhis
75: 06;0103000 /bec
76: 06;0103000 /bcc
77: 06;0103400 /blo
78: 06;0103400 /bcs
79: 06;0103400 /bes
80:
81: / jump/ branch type
82:
83: 35;0000400 /jbr
84: 36;0001000 /jne
85: 36;0001400 /jeq
86: 36;0002000 /jge
87: 36;0002400 /jlt
88: 36;0003000 /jgt
89: 36;0003400 /jle
90: 36;0100000 /jpl
91: 36;0100400 /jmi
92: 36;0101000 /jhi
93: 36;0101400 /jlos
94: 36;0102000 /jvc
95: 36;0102400 /jvs
96: 36;0103000 /jhis
97: 36;0103000 /jec
98: 36;0103000 /jcc
99: 36;0103400 /jlo
100: 36;0103400 /jcs
101: 36;0103400 /jes
102:
103: / single operand
104:
105: 15;0005000 /clr
106: 15;0105000 /clrb
107: 15;0005100 /com
108: 15;0105100 /comb
109: 15;0005200 /inc
110: 15;0105200 /incb
111: 15;0005300 /dec
112: 15;0105300 /decb
113: 15;0005400 /neg
114: 15;0105400 /negb
115: 15;0005500 /adc
116: 15;0105500 /adcb
117: 15;0005600 /sbc
118: 15;0105600 /sbcb
119: 15;0005700 /tst
120: 15;0105700 /tstb
121: 15;0006000 /ror
122: 15;0106000 /rorb
123: 15;0006100 /rol
124: 15;0106100 /rolb
125: 15;0006200 /asr
126: 15;0106200 /asrb
127: 15;0006300 /asl
128: 15;0106300 /aslb
129: 15;0000100 /jmp
130: 15;0000300 /swab
131:
132: / jsr
133:
134: 07;0004000 /jsr
135:
136: / rts
137:
138: 10;000200 /rts
139:
140: / simple operand
141:
142: 11;104400 /sys
143:
144: / flag-setting
145:
146: 01;0000241 /clc
147: 01;0000242 /clv
148: 01;0000244 /clz
149: 01;0000250 /cln
150: 01;0000261 /sec
151: 01;0000262 /sev
152: 01;0000264 /sez
153: 01;0000270 /sen
154:
155: / floating point ops
156:
157: 01;170000 / cfcc
158: 01;170001 / setf
159: 01;170011 / setd
160: 01;170002 / seti
161: 01;170012 / setl
162: 15;170400 / clrf
163: 15;170700 / negf
164: 15;170600 / absf
165: 15;170500 / tstf
166: 12;172400 / movf
167: 14;177000 / movif
168: 05;175400 / movfi
169: 14;177400 / movof
170: 05;176000 / movfo
171: 14;172000 / addf
172: 14;173000 / subf
173: 14;171000 / mulf
174: 14;174400 / divf
175: 14;173400 / cmpf
176: 14;171400 / modf
177: 14;176400 / movie
178: 05;175000 / movei
179: 15;170100 / ldfps
180: 15;170200 / stfps
181: 24;000000 / fr0
182: 24;000001 / fr1
183: 24;000002 / fr2
184: 24;000003 / fr3
185: 24;000004 / fr4
186: 24;000005 / fr5
187:
188: / 11/45 operations
189:
190: 30;072000 /als (ash)
191: 30;073000 /alsc (ashc)
192: 30;070000 /mpy
193: .if eae-1
194: 30;070000/ mul
195: 30;071000 / div
196: 30;072000 / ash
197: 30;073000 /ashc
198: .endif
199: 30;071000 /dvd
200: 07;074000 /xor
201: 15;006700 /sxt
202: 11;006400 /mark
203: 31;077000 /sob
204:
205: / specials
206:
207: 16;000000 /.byte
208: 20;000000 /.even
209: 21;000000 /.if
210: 22;000000 /.endif
211: 23;000000 /.globl
212: 25;000000 /.text
213: 26;000000 /.data
214: 27;000000 /.bss
215: 32;000000 /.comm
216:
217: start:
218: mov (sp)+,r0
219: tst (sp)+
220: 1:
221: mov (sp)+,r1
222: cmpb (r1),$'-
223: bne 1f
224: dec r0
225: cmpb 1(r1),$'g
226: bne 2f
227: mov $40,defund / globalize externals
228: br 1b
229: 2:
230: cmpb 1(r1), $'V
231: bne 2f
232: inc overlaid
233: br 1b
234: 2:
235: cmpb 1(r1),$'o
236: bne 1b
237: dec r0
238: mov (sp)+,r1
239: mov r1,a.outp
240: mov r1,a.outp1
241: mov r1,a.outp2
242: br 1b
243: 1:
244: cmp r0,$4
245: bge 1f
246: jmp aexit
247: 1:
248: mov r1,a.tmp1
249: mov (sp)+,a.tmp2
250: mov (sp)+,a.tmp3
251: jsr r5,ofile; a.tmp1
252: movb r0,txtfil
253: jsr r5,ofile; a.tmp2
254: movb r0,fbfil
255: jsr r5,ofile; a.tmp3
256: movb r0,symf
257: movb r0,fin
258: sys creat; a.outp1:a.out; 666
259: bec 1f
260: jsr r5,filerr; a.outp
261: 1:
262: movb r0,fout
263: jmp go
264:
265: / overlaid buffer
266: inbuf = start
267: . = 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