OSDN Git Service

cross_v Cross assembled with lwtools also works. Images are slightly different.
[bif-6809/bif-6809.git] / cross_v / BIF1.ASM
1 00010 * Include file for BIF
2 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3 00030 *
4 01000   FCC 'MOVE'
5 01010   FCB 4
6 01020   FCB MFORE
7 01030   FDB PREF-CFAOFF
8 01040   FDB BIF+2
9 01050   FDB MINUS-CFAOFF
10 01060   FDB NFA-CFAOFF
11 01070 MOVE      LDD ,U++ count=0?
12 01080   BEQ MOVEX
13 01090   PSHS Y,U
14 01100   LDY ,U
15 01110   LDU 2,U
16 01120 MOVELP    PULU X
17 01130   STX ,Y++
18 01140   SUBD #1
19 01150   BNE MOVELP
20 01160   PULS Y,U
21 01170 MOVEX     LEAU 4,U
22 01180   NEXT
23 01190 *
24 01200   FCC 'CMOVE'
25 01210   FCB 5
26 01220   FCB MFORE
27 01225   FDB MOVE-CFAOFF
28 01230   FDB BIF+2
29 01240   FDB CFA-CFAOFF
30 01250   FDB COMP-CFAOFF
31 01260 CMOVE     LDD #0
32 01270   SUBD ,U++
33 01280   PSHS A,Y
34 01290   PULU X,Y
35 01300   BEQ CMOVEX
36 01310 CMOVEL    LDA ,Y+
37 01320   STA ,X+
38 01330   INCB
39 01340   BNE CMOVEL
40 01350   INC ,S
41 01360   BNE CMOVEL
42 01370 CMOVEX    PULS A,Y
43 01380   NEXT
44 01390 *
45 01400   FCC 'U*'
46 01410   FCB 2
47 01420   FCB MFORE
48 01430   FDB CMOVE-CFAOFF
49 01440   FDB BIF+2
50 01450   FDB TOG-CFAOFF
51 01460   FDB UPDATE-CFAOFF
52 01470 USTAR     LEAS -4,S
53 01480   LDA 1,U LEAST
54 01490   LDB 3,U
55 01500   MUL
56 01510   STD 2,S
57 01520   LDA ,U most
58 01530   LDB 2,U
59 01540   MUL
60 01550   STD ,S
61 01560   LDD 1,U inner
62 01570   MUL
63 01580   ADDD 1,S
64 01590   BCC *+4
65 01600   INC ,S
66 01605   STD 1,S
67 01610   LDA ,U
68 01620   LDB 3,U
69 01630   MUL
70 01640   ADDD 1,S
71 01650   BCC *+4
72 01660   INC ,S
73 01670   STD 1,S
74 01680   PULS D,X
75 01690   STD ,U
76 01700   STX 2,U
77 01710   NEXT
78 01720 *
79 01730   FCC 'U/'
80 01740   FCB 2
81 01750   FCB MFORE
82 01760   FDB USTAR-CFAOFF
83 01770   FDB BIF+2
84 01780   FDB 0
85 01790   FDB 0
86 01800 USLASH    LDA #17 bit ct
87 01810   PSHS A
88 01820   LDD 2,U dividend
89 01830 USLDIV    CMPD ,U divisor
90 01840   BHS USLSUB
91 01850   ANDCC #^1
92 01860   BRA USLBIT
93 01870 USLSUB    SUBD ,U
94 01880   ORCC #1 quotient,
95 01890 USLBIT    ROL 5,U save it
96 01900   ROL 4,U
97 01910   DEC ,S more bits?
98 01920   BEQ USLR
99 01930   ROLB remainder
100 01940   ROLA
101 01950   BCC USLDIV
102 01960   BRA USLSUB
103 01970 USLR      LEAS 1,S
104 01980   LEAU 2,U
105 01990   LDX 2,U
106 02000   STD 2,U
107 02010   STX ,U
108 02020   NEXT
109 02030 *
110 02200   FCC 'AND'
111 02210   FCB 3
112 02220   FCB MFORE
113 02230   FDB USLASH-CFAOFF
114 02240   FDB BIF+2
115 02250   FDB ABS-CFAOFF
116 02260   FDB BACK-CFAOFF
117 02270 AND       PULU D
118 02280   ANDB 1,U
119 02290   ANDA ,U
120 02300   STD ,U
121 02310   NEXT
122 02320 *
123 02330   FCC 'OR'
124 02340   FCB 2
125 02350   FCB MFORE
126 02360   FDB AND-CFAOFF
127 02370   FDB BIF+2
128 02380   FDB OCT-CFAOFF
129 02390   FDB OUT-CFAOFF
130 02400 OR        PULU D
131 02410   ORB 1,U
132 02420   ORA ,U
133 02430   STD ,U
134 02440   NEXT
135 02450 *
136 02460   FCC 'XOR'
137 02470   FCB 3
138 02480   FCB MFORE
139 02490   FDB OR-CFAOFF
140 02500   FDB BIF+2
141 02510   FDB 0
142 02520   FDB 0
143 02530 XOR       PULU D
144 02540   EORB 1,U
145 02550   EORA ,U
146 02560   STD ,U
147 02570   NEXT
148 02580 *
149 02590   FCC 'SP@'
150 02600   FCB 3
151 02610   FCB MFORE
152 02620   FDB XOR-CFAOFF
153 02630   FDB BIF+2
154 02640   FDB SPSTO-CFAOFF
155 02660   FDB 0
156 02670 SPFEH     TFR U,X
157 02680   PSHU X
158 02690   NEXT
159 02700 *
160 02710   FCC 'SP!'
161 02720   FCB 3
162 02730   FCB MFORE
163 02740   FDB SPFEH-CFAOFF
164 02750   FDB BIF+2
165 02760   FDB 0
166 02770   FDB 0
167 02780 SPSTO LDX <UP
168 02790   LDU US0,X
169 02793   CLR ,U hole
170 02796   CLR 1,U
171 02800   NEXT
172 02810 *
173 02820   FCC 'RP!'
174 02830   FCB 3
175 02840   FCB MFORE
176 02850   FDB SPSTO-CFAOFF
177 02860   FDB BIF+2
178 02870   FDB 0
179 02880   FDB 0
180 02890 RPSTO LDX <UP
181 02900   LDS UR0,X
182 02903   CLR ,S hole
183 02906   CLR 1,S
184 02910   NEXT
185 02920 *
186 02930   FCC ';S'
187 02940   FCB MIMM|2
188 02950   FCB MFORE
189 02960   FDB RPSTO-CFAOFF
190 02970   FDB BIF+2
191 02980   FDB 0
192 02990   FDB 0
193 03000 SEMIS     PULS Y un-nest
194 03010   NEXT
195 03020 *
196 03030   FCC 'LEAVE'
197 03040   FCB MCOMP|5
198 03050   FCB MFORE
199 03060   FDB SEMIS-CFAOFF
200 03070   FDB BIF+2
201 03080   FDB LATEST-CFAOFF
202 03090   FDB LFA-CFAOFF
203 03100 LEAVE     LDD ,S index
204 03110   STD 2,S to limit
205 03120   NEXT
206 03130 *
207 03140   FCC '>R'
208 03150   FCB MCOMP|2
209 03160   FCB MFORE
210 03170   FDB LEAVE-CFAOFF
211 03180   FDB BIF+2
212 03190   FDB GT-CFAOFF
213 03200   FDB QDOT-CFAOFF
214 03210 TOR       PULU D
215 03220   PSHS D
216 03230   NEXT
217 03240 *
218 03250   FCC 'R>'
219 03260   FCB MCOMP|2
220 03270   FCB MFORE
221 03280   FDB TOR-CFAOFF
222 03290   FDB BIF+2
223 03300   FDB R-CFAOFF
224 03310   FDB REPEAT-CFAOFF
225 03320 RFROM     JMP <XVAR not JSR!
226 03350 *
227 03360   FCC 'R'
228 03370   FCB 1
229 03380   FCB MFORE
230 03390   FDB RFROM-CFAOFF
231 03400   FDB BIF+2
232 03410   FDB QUIT-CFAOFF
233 03420   FDB RNUM-CFAOFF
234 03430 R JMP I
235 03431 *
236 03432   FCC '='
237 03433   FCB 1
238 03434   FCB MFORE
239 03435   FDB R-CFAOFF
240 03436   FDB BIF+2
241 03437   FDB LT-CFAOFF
242 03438   FDB QCOMP-CFAOFF
243 03439 EQ        PULU D
244 03440   CMPD ,U
245 03441   BEQ TRUE
246 03442   BRA FALSE
247 03451 *
248 03452   FCC '<'
249 03453   FCB 1
250 03454   FCB MFORE
251 03455   FDB EQ-CFAOFF
252 03456   FDB BIF+2
253 03457   FDB SCODE-CFAOFF
254 03458   FDB BEGHSH-CFAOFF
255 03459 LT        LDD 2,U
256 03460   CMPD ,U++
257 03461   BLT TRUE
258 03462   BRA FALSE
259 03463 *
260 03490   FCC '0='
261 03491   FCB 2
262 03492   FCB MFORE
263 03493   FDB LT-CFAOFF
264 03494   FDB BIF+2
265 03500   FDB 0
266 03510   FDB ONE-CFAOFF
267 03520 ZEQ       LDD ,U
268 03530   BNE FALSE
269 03540 TRUE      LDD #-1
270 03550   STD ,U
271 03560   NEXT
272 03570 *
273 03580   FCC '0<'
274 03590   FCB 2
275 03600   FCB MFORE
276 03610   FDB ZEQ-CFAOFF
277 03620   FDB BIF+2
278 03630   FDB ZERO-CFAOFF
279 03640   FDB ZEQ-CFAOFF
280 03650 ZLESS     LDA ,U
281 03660   BMI TRUE
282 03665 FALSE     LDD #0
283 03670   STD ,U
284 03680   NEXT
285 03681 *
286 03682   FCC '>'
287 03683   FCB 1
288 03684   FCB MFORE
289 03685   FDB ZLESS-CFAOFF
290 03686   FDB BIF+2
291 03687   FDB 0
292 03688   FDB TOPRT-CFAOFF
293 03689 GT        LDD 2,U
294 03690   CMPD ,U++
295 03691   BGT TRUE
296 03692   BRA FALSE
297 03693 *
298 03700   FCC '+'
299 03710   FCB 1
300 03720   FCB MFORE
301 03730   FDB GT-CFAOFF
302 03740   FDB BIF+2
303 03750   FDB PAREN-CFAOFF
304 03760   FDB SLASH-CFAOFF
305 03770 ADD       PULU D
306 03780   ADDTOP
307 03810 *
308 03820   FCC '-'
309 03830   FCB 1
310 03840   FCB MFORE
311 03850   FDB ADD-CFAOFF
312 03860   FDB BIF+2
313 03870   FDB 0
314 03880   FDB 0
315 03890 SUB       LDD 2,U
316 03900   SUBD ,U++
317 03910   STD ,U
318 03920   NEXT
319 03930 *
320 03940   FCC 'D+'
321 03950   FCB 2
322 03960   FCB MFORE
323 03970   FDB SUB-CFAOFF
324 03980   FDB BIF+2
325 03990   FDB CONST-CFAOFF
326 04000   FDB DABS-CFAOFF
327 04010 DADD      LDD 6,U
328 04020   ADDD 2,U
329 04030   STD 6,U
330 04040   LDD 4,U
331 04050   ADCB 1,U
332 04060   ADCA ,U
333 04070   LEAU 4,U
334 04080   STD ,U
335 04090   NEXT
336 04100 *
337 04120   FCC 'D-'
338 04130   FCB 2
339 04140   FCB MFORE
340 04150   FDB DADD-CFAOFF
341 04160   FDB BIF+2
342 04170   FDB DCHS-CFAOFF
343 04180   FDB DDOT-CFAOFF
344 04190 DSUB      LDD 6,U
345 04200   SUBD 2,U
346 04210   STD 6,U
347 04220   LDD 4,U
348 04230   SBCB 1,U
349 04240   SBCA ,U
350 04250   LEAU 4,U
351 04260   STD ,U
352 04270   NEXT
353 04280 *
354 04290   FCC 'MINUS'
355 04300   FCB 5
356 04310   FCB MFORE
357 04320   FDB DSUB-CFAOFF
358 04330   FDB BIF+2
359 04340   FDB 0
360 04350   FDB MOD-CFAOFF
361 04360 MINUS     LDD #0
362 04370   SUBD ,U
363 04380   STD ,U
364 04390   NEXT
365 04400 *
366 04410   FCC 'DMINUS'
367 04420   FCB 6
368 04430   FCB MFORE
369 04440   FDB MINUS-CFAOFF
370 04450   FDB BIF+2
371 04460   FDB 0
372 04470   FDB 0
373 04480 DMINUS    LDD #0
374 04490   SUBD 2,U
375 04500   STD 2,U
376 04510   LDD #0
377 04520   SBCB 1,U
378 04530   SBCA ,U
379 04570   STD ,U
380 04580   NEXT
381 04590 *
382 04600   FCC 'OVER'
383 04610   FCB 4
384 04620   FCB MFORE
385 04630   FDB DMINUS-CFAOFF
386 04640   FDB BIF+2
387 04650   FDB OR-CFAOFF
388 04660   FDB PFA-CFAOFF
389 04670 OVER      LDD 2,U
390 04680   PSHU D
391 04690   NEXT
392 04700 *
393 04710   FCC 'DROP'
394 04720   FCB 4
395 04730   FCB MFORE
396 04740   FDB OVER-CFAOFF
397 04750   FDB BIF+2
398 04760   FDB DPL-CFAOFF
399 04770   FDB EMIT-CFAOFF
400 04780 DROP      LEAU 2,U
401 04790   NEXT
402 04800 *
403 04810   FCC 'SWAP'
404 04820   FCB 4
405 04830   FCB MFORE
406 04840   FDB DROP-CFAOFF
407 04850   FDB BIF+2
408 04860   FDB ROT-CFAOFF
409 04870   FDB VAR-CFAOFF
410 04880 SWAP      PULU D,X
411 04890   PSHU D
412 04900   PSHU X
413 04910   NEXT
414 04920 *
415 04930   FCC 'DUP'
416 04940   FCB 3
417 04940   FCB MFORE
418 04950   FDB SWAP-CFAOFF
419 04960   FDB BIF+2
420 04970   FDB 0 * DUMP-CFAOFF
421 04980   FDB ELSE-CFAOFF
422 04990 DUP       LDD ,U
423 05000   PSHU D
424 05010   NEXT
425 05020 *
426 05030   FCC '+!'
427 05040   FCB 2
428 05050   FCB MFORE
429 05060   FDB DUP-CFAOFF
430 05070   FDB BIF+2
431 05080   FDB 0
432 05090   FDB 0
433 05100 ADDSTO    PULU X
434 05110   LDD ,X
435 05120   ADDD ,U++
436 05130   STD ,X
437 05140   NEXT
438 05150 *