Research V7 development
[unix-history] / usr / src / cmd / roff / roff5.s
CommitLineData
4ad4d0b0
KT
1/
2/
3
4/ hyp1 -- driver
5
6hyphen:
7 tst hypedf
8 bne 3f
9 tst hyf
10 beq 3f
11 inc hypedf
12 mov wordp,r0
13 clr nhyph
141:
15 jsr pc,punct
16 bne 1f
17 inc r0
18 br 1b
191:
20 jsr pc,alph
21 bne 3f
221:
23 inc r0
24 jsr pc,alph
25 beq 1b
26 dec r0
27 mov r0,hstart
281:
29 inc r0
30 tstb (r0)
31 beq 2f
32 jsr pc,punct
33 bne 3f
34 br 1b
352:
36 jsr r5,suffix
37 jsr r5,digram
383:
39 rts pc
40
41
42punct:
43 tst old
44 bne 4f
45 cmpb (r0),$010
46 beq 0f
47 movb (r0),r2
48 jsr pc,alph2
49 beq 0f
50 sez
51 rts pc
520:
53 clz
54 rts pc
554:
56 mov $3f,r2
571:
58 cmpb (r0),(r2)+
59 beq 2f
60 tstb (r2)
61 bne 1b
62 clz
632:
64 rts pc
653: < .,()"\'`\0> /should be more
66.even
67maplow:
68 cmp r2,$'a
69 bhis 1f
70 add $'a-'A,r2
711:
72 rts pc
73
74vowel:
75 cmp r2,$'a
76 beq 1f
77 cmp r2,$'e
78 beq 1f
79 cmp r2,$'i
80 beq 1f
81 cmp r2,$'o
82 beq 1f
83 cmp r2,$'u
84 beq 1f
85 cmp r2,$'y
861:
87 rts pc
88
89checkvow:
90 mov r0,-(sp)
911:
92 movb -(r0),r2
93 jsr pc,vowel
94 beq 1f
95 jsr pc,alph
96 beq 1b
97 mov (sp)+,r0
98 clz
99 rts r5
1001:
101 mov (sp)+,r0
102 sez
103 rts r5
104
105/ hyp2 -- suffix and digram
106
107digram:
108 mov hstart,r0
1091:
110 jsr pc,alph
111 bne 3f
112 jsr pc,vowel
113 beq 1f
114 dec r0
115 br 1b
1161:
117 mov r0,hstart
1181:
119 movb -(r0),r2
120 jsr pc,alph2
121 bne 3f
122 jsr pc,vowel
123 bne 1b
124 clr maxdig
125 mov r0,nhstart
1261:
127 mov $1,r3
128 movb -1(r0),r2
129 jsr pc,alph2
130 beq 2f
131 movb (r0),r2
132 mov $'a,r1
133 jsr r5,dilook; bxh
134 br 4f
1352:
136 movb -2(r0),r2
137 mov $xxh,0f
138 jsr pc,alph2
139 beq 2f
140 mov $bxxh,0f
1412:
142 movb -1(r0),r1
143 movb (r0),r2
144 jsr r5,dilook; 0:xxh
1454:
146 movb (r0)+,r1
147 movb (r0),r2
148 jsr r5,dilook; xhx
149 movb (r0),r1
150 movb 1(r0),r2
151 jsr r5,dilook; hxx
152 cmp r3,maxdig
153 blos 2f
154 mov r3,maxdig
155 mov r0,maxloc
1562:
157 cmp r0,hstart
158 blo 1b
159 mov nhstart,hstart
160 cmp maxdig,thresh
161 blo digram
162 bisb $200,*maxloc
163 inc nhyph
164/ mov maxdig,*octbufp
165/ inc octcnt
166/ add $2,octbufp
167 br digram
1683:
169 rts r5
170
171dilook:
172 mov r4,-(sp)
173 bic $!177,r2
174 bic $!177,r1
175 jsr pc,maplow
176 sub $'a,r2
177 cmp r2,$'z-'a
178 bhi 3f
179 mov r2,r4
180 mov r1,r2
181 jsr pc,maplow
182 sub $'a,r2
183 cmp r2,$'z-'a
184 bhi 3f
185 mov r3,-(sp)
186 mov r2,r3
187 mpy $13.,r3
188 clr r2
189 clc
190 ror r4
191 adc r2
192 add r3,r4
193 add (r5)+,r4
194 movb (r4),r4
195 tst r2
196 bne 1f
197 asr r4
198 asr r4
199 asr r4
200 asr r4
2011:
202 bic $!17,r4
203 mov r4,r3
204 mpy (sp)+,r3
205 br 4f
2063:
207 clr r3
208 tst (r5)+
2094:
210 mov (sp)+,r4
211 rts r5
212
213suffix:
214 mov hstart,r0
215 jsr pc,alph
216 bne 4f
217 jsr pc,maplow
218 sub $'a,r2
219 asl r2
220 mov suftab(r2),-(sp)
221 bic $!37777,(sp)
222 beq 3f
2231:
224 mov hstart,r0
225 mov (sp),r1
226 jsr pc,rdsuf
227 movb (r1),r3
228 beq 3f
229 bic $!17,r3
230 add r3,(sp)
231 add r1,r3
2322:
233 movb -(r3),r2
234 cmp r3,r1
235 ble 2f
236 bic $!177,r2
237 mov r2,-(sp)
238 movb -(r0),r2
239 jsr pc,maplow
240 cmp r2,(sp)+
241 bne 1b
242 br 2b
2432:
244 mov hstart,r0
245 tst (sp)+
246 movb (r1),r3
247 bic $!17,r3
248 add r1,r3
249 bitb $200,(r1)+
250 bne 1f
2512:
252 dec r0
253 cmp r3,r1
254 ble 2f
255 tstb -(r3)
256 bpl 2b
2571:
258 mov r0,hstart
259 dec hstart
260 bitb $100,-1(r1)
261 bne 2b
262 jsr r5,checkvow
263 bne 4f
264 bisb $200,(r0)
265 br 2b
2662:
267 bitb $40,-(r1)
268 beq suffix
269 br 4f
2703:
271 tst (sp)+
2724:
273 rts r5
274
275rdsuf:
276 mov r0,-(sp)
277 mov suff,nfile
278 mov 4(sp),r1
279 jsr pc,rdsufb
280 mov $sufb,r2
281 movb r0,(r2)+
282 mov r0,r3
283 bic $!17,r3
2841:
285 dec r3
286 blt 1f
287 inc r1
288 jsr pc,rdsufb
289 movb r0,(r2)+
290 br 1b
2911:
292 mov $sufb,r1
293 mov (sp)+,r0
294 rts pc