OSDN Git Service

cross_v Cross assembled with lwtools also works. Images are slightly different.
[bif-6809/bif-6809.git] / cross_v / BIF3.ASM
1 00010 * Include file for BIF
2 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3 00030 *
4 01000   FCC 'LATEST'
5 01010   FCB 6
6 01020   FCB MFORE
7 01030   FDB ENDIF-CFAOFF
8 01040   FDB BIF+2
9 01050   FDB 0
10 01060   FDB 0
11 01070 LATEST    DOUCON  not ROOT!
12 01080   FCB UCURR NFA
13 01110 *
14 01115 * convert NFA to LFA,CFA,GFA,PFA
15 01120   FCC 'LFA'
16 01130   FCB 3
17 01140   FCB MFORE
18 01150   FDB LATEST-CFAOFF
19 01160   FDB BIF+2
20 01170   FDB 0
21 01180   FDB 0
22 01190 LFA       LDB #LFAOFF
23 01200   BRA CFA+2
24 01210 *
25 01220   FCC 'CFA'
26 01230   FCB 3
27 01240   FCB MFORE
28 01250   FDB LFA-CFAOFF
29 01260   FDB BIF+2
30 01270   FDB 0
31 01280   FDB 0
32 01290 CFA       LDB #CFAOFF
33 01292   SEX
34 01294   ADDD ,U
35 01296   STD ,U
36 01300   NEXT
37 01310 *
38 01320   FCC 'GFA'
39 01330   FCB 3
40 01340   FCB MFORE
41 01350   FDB CFA-CFAOFF
42 01360   FDB BIF+2
43 01370   FDB 0
44 01380   FDB 0
45 01390 GFA       LDB #GFAOFF
46 01400   BRA CFA+2
47 01410 *
48 01420   FCC 'PFA'
49 01430   FCB 3
50 01440   FCB MFORE
51 01450   FDB GFA-CFAOFF
52 01460   FDB BIF+2
53 01470   FDB PAD-CFAOFF
54 01480   FDB PREV-CFAOFF
55 01490 PFA       LDB #PFAOFF
56 01500   BRA CFA+2
57 01510 *
58 01515 * PFA to NFA
59 01520   FCC 'NFA'
60 01530   FCB 3
61 01540   FCB MFORE
62 01550   FDB PFA-CFAOFF
63 01560   FDB BIF+2
64 01570   FDB NCOMMA-CFAOFF
65 01580   FDB NOT-CFAOFF
66 01590 NFA       LDB #-PFAOFF
67 01600   BRA CFA+2
68 01610 *
69 01620   FCC '!CSP'
70 01630   FCB 4
71 01640   FCB MFORE
72 01650   FDB NFA-CFAOFF
73 01660   FDB BIF+2
74 01670   FDB 0
75 01680   FDB HASH-CFAOFF
76 01690 STOCSP    LDX <UP
77 01700   STU UCSP,X
78 01710   NEXT
79 01720 *
80 01730   FCC 'HEX'
81 01740   FCB 3
82 01750   FCB MFORE
83 01760   FDB STOCSP-CFAOFF
84 01770   FDB BIF+2
85 01780   FDB 0
86 01790   FDB 0
87 01800 HEX       LDB #16
88 01810   CLRA
89 01820   LDX <UP
90 01830   STD UBASE,X
91 01840   NEXT
92 01850 *
93 01860   FCC 'DECIMAL'
94 01870   FCB 7
95 01880   FCB MFORE
96 01890   FDB HEX-CFAOFF
97 01900   FDB BIF+2
98 01910   FDB DAD-CFAOFF
99 01920   FDB DEFS-CFAOFF
100 01930 DEC       LDB #10
101 01940   BRA HEX+2
102 01950 *
103 01960   FCC 'OCTAL'
104 01970   FCB 5
105 01980   FCB MFORE
106 01990   FDB DEC-CFAOFF
107 02000   FDB BIF+2
108 02010   FDB 0
109 02020   FDB OFFSET-CFAOFF
110 02030 OCT       LDB #8
111 02040   BRA HEX+2
112 02050 *
113 02060   FCC 'FILL'
114 02070   FCB 4
115 02080   FCB MFORE
116 02090   FDB OCT-CFAOFF
117 02100   FDB BIF+2
118 02110   FDB FENCE-CFAOFF
119 02120   FDB FILLIN-CFAOFF
120 02130 FILL      PSHS Y
121 02140   PULU D,X,Y
122 02150   STB ,Y+
123 02160   LEAX -1,X
124 02170   BNE *-4
125 02180   PULS Y
126 02190   NEXT
127 02200 *
128 02210   FCC 'ERASE'
129 02220   FCB 5
130 02230   FCB MFORE
131 02240   FDB FILL-CFAOFF
132 02250   FDB BIF+2
133 02260   FDB 0
134 02270   FDB 0
135 02280 ERASE     LDB #0
136 02290   PSHU D
137 02300   BRA FILL
138 02310 *
139 02320   FCC 'BLANKS'
140 02330   FCB 6
141 02340   FCB MFORE
142 02350   FDB ERASE-CFAOFF
143 02360   FDB BIF+2
144 02370   FDB BL-CFAOFF
145 02380   FDB 0
146 02390 BLANKS    LDB #$20 ascii SP
147 02400   PSHU D
148 02410   BRA FILL
149 02420 *
150 02430   FCC 'HOLD'
151 02440   FCB 4
152 02450   FCB MFORE
153 02460   FDB BLANKS-CFAOFF
154 02470   FDB BIF+2
155 02480   FDB 0
156 02490   FDB 0
157 02500 HOLD      PULU D CH
158 02510   PSHS Y
159 02520   LDY <UP
160 02530   LDX UHLD,Y
161 02540   STB ,-X
162 02550   STX UHLD,Y
163 02555   PULS Y
164 02560   NEXT
165 02570 *
166 02580   FCC 'PAD'
167 02590   FCB 3
168 02600   FCB MFORE
169 02610   FDB HOLD-CFAOFF
170 02620   FDB BIF+2
171 02630   FDB 0
172 02640   FDB 0
173 02650 PAD       DOUCON  moved!
174 02660   FCB UPAD
175 02700 *
176 02710   FCC 'S->D'
177 02720   FCB 4
178 02730   FCB MFORE
179 02740   FDB PAD-CFAOFF
180 02750   FDB BIF+2
181 02760   FDB RPSTO-CFAOFF
182 02770   FDB SIGN-CFAOFF
183 02780 STOD      LEAU -2,U
184 02790   LDD 2,U
185 02795   LBRA ZLESS+2
186 02800 *
187 02810   FCC '+-'
188 02820   FCB 2
189 02830   FCB MFORE
190 02840   FDB STOD-CFAOFF
191 02850   FDB BIF+2
192 02860   FDB ADDSTO-CFAOFF
193 02870   FDB ADDBUF-CFAOFF
194 02880 CHS       LDD ,U++
195 02890   LBMI MINUS
196 02895   NEXT
197 02900 *
198 02910   FCC 'D+-'
199 02920   FCB 3
200 02930   FCB MFORE
201 02940   FDB STOD-CFAOFF
202 02950   FDB BIF+2
203 02960   FDB 0
204 02970   FDB 0
205 02980 DCHS      LDD ,U++
206 02990   LBMI DMINUS
207 02995   NEXT
208 03000 *
209 03010   FCC 'ABS'
210 03020   FCB 3
211 03030   FCB MFORE
212 03040   FDB DCHS-CFAOFF
213 03050   FDB BIF+2
214 03060   FDB ABORT-CFAOFF
215 03070   FDB ALLOT-CFAOFF
216 03080 ABS       LDD ,U
217 03090   LBMI MINUS
218 03095   NEXT
219 03100 *
220 03110   FCC 'DABS'
221 03120   FCB 4
222 03130   FCB MFORE
223 03140   FDB ABS-CFAOFF
224 03150   FDB BIF+2
225 03160   FDB DSUB-CFAOFF
226 03170   FDB DIGIT-CFAOFF
227 03180 DABS      LDD ,U
228 03190   LBMI DMINUS
229 03195   NEXT
230 03200 *
231 03210   FCC 'MIN'
232 03220   FCB 3
233 03230   FCB MFORE
234 03240   FDB DABS-CFAOFF
235 03250   FDB BIF+2
236 03260   FDB MSMOD-CFAOFF
237 03270   FDB MOVE-CFAOFF
238 03280 MIN       PULU D
239 03284   CMPD ,U
240 03288   BGE *+4
241 03290   STD ,U
242 03295   NEXT
243 03300 *
244 03310   FCC 'MAX'
245 03320   FCB 3
246 03330   FCB MFORE
247 03340   FDB MIN-CFAOFF
248 03350   FDB BIF+2
249 03360   FDB 0
250 03370   FDB 0
251 03380 MAX       PULU D
252 03384   CMPD ,U
253 03388   BLE *+4
254 03390   STD ,U
255 03395   NEXT
256 03400 *
257 03410   FCC '['
258 03412   FCB MIMM|1
259 03414   FCB MFORE
260 03416   FDB MAX-CFAOFF
261 03418   FDB BIF+2
262 03420   FDB XOR-CFAOFF
263 03422   FDB 0
264 03430 LBRAK     LDB #^SCOMP
265 03435   LDX <UP
266 03440   ANDB USTATE+1,X
267 03445   STB USTATE+1,X
268 03450   NEXT
269 03500 *
270 03510   FCC ']'
271 03512   FCB 1
272 03514   FCB MFORE
273 03516   FDB LBRAK-CFAOFF
274 03518   FDB BIF+2
275 03520   FDB 0
276 03522   FDB 0
277 03530 RBRAK     LDB #SCOMP
278 03535   LDX <UP
279 03540   ORB USTATE+1,X
280 03545   STB USTATE+1,X
281 03550   NEXT
282 03555 *
283 03560   FCC 'IMMEDIATE'
284 03562   FCB 9
285 03564   FCB MFORE
286 03566   FDB RBRAK-CFAOFF
287 03568   FDB BIF+2
288 03570   FDB 0
289 03572   FDB 0
290 03580 IMMED     LDB #MIMM
291 03585   BRA SMUDGE+2
292 03600 *
293 03610   FCC 'SMUDGE'
294 03612   FCB 6
295 03614   FCB MFORE
296 03616   FDB IMMED-CFAOFF
297 03618   FDB BIF+2
298 03620   FDB STOD-CFAOFF
299 03622   FDB SPACE-CFAOFF
300 03630 SMUDGE    LDB #MHID
301 03635   LDX <UP
302 03645   EORB [UCURR,X]
303 03650   STB [UCURR,X]
304 03655   NEXT
305 03657 *
306 03660   FCC 'COMPILE-ONLY'
307 03662   FCB 12
308 03664   FCB MFORE
309 03666   FDB SMUDGE-CFAOFF
310 03668   FDB BIF+2
311 03670   FDB 0
312 03672   FDB 0
313 03680 COMPO     LDB #MCOMP
314 03685   BRA SMUDGE+2
315 03800 *
316 03810   FCC 'COUNT'
317 03812   FCB 5
318 03814   FCB MFORE
319 03816   FDB COMPO-CFAOFF
320 03818   FDB BIF+2
321 03820   FDB 0
322 03822   FDB 0
323 03830 COUNT     LDX ,U CT OF STR
324 03835   LDB ,X+
325 03840   STX ,U STRING
326 03845   CLRA
327 03850   PSHU D COUNT
328 03855   NEXT
329 03900 *
330 03910   FCC '-TRAILING'
331 03912   FCB 9
332 03914   FCB MFORE
333 03916   FDB COUNT-CFAOFF
334 03918   FDB BIF+2
335 03920   FDB DIFIND-CFAOFF
336 03922   FDB 0
337 03930 DTRAIL    LDD ,U
338 03935   LDX 2,U
339 03940   LEAX D,X END
340 03945   LDA #$20 ascii SP
341 03950 DTRAL     CMPA ,-X
342 03955   BNE DTRAD
343 03960   CMPX 2,U
344 03965   BHS DTRAL
345 03970 DTRAD TFR X,D
346 03975   SUBD 2,U
347 03980   ADDD #1
348 03985   STD ,U
349 03990   NEXT
350 04000 *
351 04010   FCC '(MACHINE)'
352 04012   FCB MCOMP|9
353 04014   FCB MFORE
354 04016   FDB DTRAIL-CFAOFF
355 04018   FDB BIF+2
356 04020   FDB XLINE-CFAOFF
357 04022   FDB INUMB-CFAOFF
358 04030 XMACH     TFR Y,X
359 04040   PULS Y UN-NEST
360 04050   JMP ,X IN LINE MACHINE CODE
361 04100 *