Research V7 development
[unix-history] / usr / src / cmd / as / as22.s
CommitLineData
8d8c20ed
DR
1/
2/
3
4/ a2 -- pdp-11 assembler pass 2
5
6outw:
7 cmp dot-2,$4
8 beq 9f
9 bit $1,dot
10 bne 1f
11 add $2,dot
12 tstb passno
13 beq 8f
14 clr -(sp)
15 rol r3
16 adc (sp)
17 asr r3 / get relative pc bit
18 cmp r3,$40
19 bne 2f
20/ external references
21 mov $666,outmod / make nonexecutable
22 mov xsymbol,r3
23 sub $usymtab,r3
24 asl r3
25 bis $4,r3 / external relocation
26 br 3f
272:
28 bic $40,r3 / clear any ext bits
29 cmp r3,$5
30 blo 4f
31 cmp r3,$33 / est. text, data
32 beq 6f
33 cmp r3,$34
34 bne 7f
356:
36 jsr r5,error; 'r
377:
38 mov $1,r3 / make absolute
394:
40 cmp r3,$2
41 blo 5f
42 cmp r3,$4
43 bhi 5f
44 tst (sp)
45 bne 4f
46 add dotdot,r2
47 br 4f
485:
49 tst (sp)
50 beq 4f
51 sub dotdot,r2
524:
53 dec r3
54 bpl 3f
55 clr r3
563:
57 asl r3
58 bis (sp)+,r3
59 mov r2,r0
60 jsr r5,putw; txtp
61 mov tseekp,r0
62 add $2,2(r0)
63 adc (r0)
64 mov r3,r0
65 jsr r5,putw; relp
66 mov rseekp,r0
67 add $2,2(r0)
68 adc (r0)
698:
70 rts pc
711:
72 jsr r5,error; 'o
73 clr r3
74 jsr pc,outb
75 rts pc
76
779:
78 jsr r5,error; 'x
79 rts pc
80
81outb:
82 cmp dot-2,$4 / test bss mode
83 beq 9b
84 cmp r3,$1
85 blos 1f
86 jsr r5,error; 'r
871:
88 tstb passno
89 beq 2f
90 mov r2,r0
91 bit $1,dot
92 bne 1f
93 jsr r5,putw; txtp
94 clr r0
95 jsr r5,putw; relp
96 mov tseekp,r0
97 add $2,2(r0)
98 adc (r0)
99 mov rseekp,r0
100 add $2,2(r0)
101 adc (r0)
102 br 2f
1031:
104 mov txtp,r0
105 movb r2,-1(r0)
1062:
107 inc dot
108 rts pc
109
110error:
111 mov pc,errflg
112 mov $666,outmod / make nonexecutable
113 mov r3,-(sp)
114 mov r2,-(sp)
115 mov r1,-(sp)
116 mov r0,-(sp)
117 mov $argb,r1
1181:
119 movb (r1),ch
120 beq 1f
121 clrb (r1)+
122 mov $1,r0
123 sys write; ch; 1
124 br 1b
1251:
126 mov (r5)+,r0
127 movb r0,0f
128 mov line,r3
129 mov $0f+6,r0
130 mov $4,r1
1312:
132 clr r2
133 dvd $10.,r2
134 add $'0,r3
135 movb r3,-(r0)
136 mov r2,r3
137 sob r1,2b
138 mov $1,r0
139 sys write; 0f; 7
140 mov (sp)+,r0
141 mov (sp)+,r1
142 mov (sp)+,r2
143 mov (sp)+,r3
144 rts r5
145
146 .data
1470: <f xxxx\n>
148 .even
149 .text
150
151betwen:
152 cmp r0,(r5)+
153 blt 1f
154 cmp (r5)+,r0
155 blt 2f
1561:
157 tst (r5)+
1582:
159 rts r5
160