1 00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC 'MOVE'
\r01010 FCB 4
\r01020 FCB MFORE
\r01030 FDB PREF-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB MINUS-CFAOFF
\r01060 FDB NFA-CFAOFF
\r01070 MOVE LDD ,U++ count=0?
\r01080 BEQ MOVEX
\r01090 PSHS Y,U
\r01100 LDY ,U
\r01110 LDU 2,U
\r01120 MOVELP PULU X
\r01130 STX ,Y++
\r01140 SUBD #1
\r01150 BNE MOVELP
\r01160 PULS Y,U
\r01170 MOVEX LEAU 4,U
\r01180 NEXT
\r01190 *
\r01200 FCC 'CMOVE'
\r01210 FCB 5
\r01220 FCB MFORE
\r01225 FDB MOVE-CFAOFF
\r01230 FDB BIF+2
\r01240 FDB CFA-CFAOFF
\r01250 FDB COMP-CFAOFF
\r01260 CMOVE LDD #0
\r01270 SUBD ,U++
\r01280 PSHS A,Y
\r01290 PULU X,Y
\r01300 BEQ CMOVEX
\r01310 CMOVEL LDA ,Y+
\r01320 STA ,X+
\r01330 INCB
\r01340 BNE CMOVEL
\r01350 INC ,S
\r01360 BNE CMOVEL
\r01370 CMOVEX PULS A,Y
\r01380 NEXT
\r01390 *
\r01400 FCC 'U*'
\r01410 FCB 2
\r01420 FCB MFORE
\r01430 FDB CMOVE-CFAOFF
\r01440 FDB BIF+2
\r01450 FDB TOG-CFAOFF
\r01460 FDB UPDATE-CFAOFF
\r01470 USTAR LEAS -4,S
\r01480 LDA 1,U LEAST
\r01490 LDB 3,U
\r01500 MUL
\r01510 STD 2,S
\r01520 LDA ,U most
\r01530 LDB 2,U
\r01540 MUL
\r01550 STD ,S
\r01560 LDD 1,U inner
\r01570 MUL
\r01580 ADDD 1,S
\r01590 BCC *+4
\r01600 INC ,S
\r01605 STD 1,S
\r01610 LDA ,U
\r01620 LDB 3,U
\r01630 MUL
\r01640 ADDD 1,S
\r01650 BCC *+4
\r01660 INC ,S
\r01670 STD 1,S
\r01680 PULS D,X
\r01690 STD ,U
\r01700 STX 2,U
\r01710 NEXT
\r01720 *
\r01730 FCC 'U/'
\r01740 FCB 2
\r01750 FCB MFORE
\r01760 FDB USTAR-CFAOFF
\r01770 FDB BIF+2
\r01780 FDB 0
\r01790 FDB 0
\r01800 USLASH LDA #17 bit ct
\r01810 PSHS A
\r01820 LDD 2,U dividend
\r01830 USLDIV CMPD ,U divisor
\r01840 BHS USLSUB
\r01850 ANDCC #.NOT.1
\r01860 BRA USLBIT
\r01870 USLSUB SUBD ,U
\r01880 ORCC #1 quotient,
\r01890 USLBIT ROL 5,U save it
\r01900 ROL 4,U
\r01910 DEC ,S more bits?
\r01920 BEQ USLR
\r01930 ROLB remainder
\r01940 ROLA
\r01950 BCC USLDIV
\r01960 BRA USLSUB
\r01970 USLR LEAS 1,S
\r01980 LEAU 2,U
\r01990 LDX 2,U
\r02000 STD 2,U
\r02010 STX ,U
\r02020 NEXT
\r02030 *
\r02200 FCC 'AND'
\r02210 FCB 3
\r02220 FCB MFORE
\r02230 FDB USLASH-CFAOFF
\r02240 FDB BIF+2
\r02250 FDB ABS-CFAOFF
\r02260 FDB BACK-CFAOFF
\r02270 AND PULU D
\r02280 ANDB 1,U
\r02290 ANDA ,U
\r02300 STD ,U
\r02310 NEXT
\r02320 *
\r02330 FCC 'OR'
\r02340 FCB 2
\r02350 FCB MFORE
\r02360 FDB AND-CFAOFF
\r02370 FDB BIF+2
\r02380 FDB OCT-CFAOFF
\r02390 FDB OUT-CFAOFF
\r02400 OR PULU D
\r02410 ORB 1,U
\r02420 ORA ,U
\r02430 STD ,U
\r02440 NEXT
\r02450 *
\r02460 FCC 'XOR'
\r02470 FCB 3
\r02480 FCB MFORE
\r02490 FDB OR-CFAOFF
\r02500 FDB BIF+2
\r02510 FDB 0
\r02520 FDB 0
\r02530 XOR PULU D
\r02540 EORB 1,U
\r02550 EORA ,U
\r02560 STD ,U
\r02570 NEXT
\r02580 *
\r02590 FCC 'SP@'
\r02600 FCB 3
\r02610 FCB MFORE
\r02620 FDB XOR-CFAOFF
\r02630 FDB BIF+2
\r02640 FDB SPSTO-CFAOFF
\r02660 FDB 0
\r02670 SPFEH TFR U,X
\r02680 PSHU X
\r02690 NEXT
\r02700 *
\r02710 FCC 'SP!'
\r02720 FCB 3
\r02730 FCB MFORE
\r02740 FDB SPFEH-CFAOFF
\r02750 FDB BIF+2
\r02760 FDB 0
\r02770 FDB 0
\r02780 SPSTO LDX <UP
\r02790 LDU US0,X
\r02793 CLR ,U hole
\r02796 CLR 1,U
\r02800 NEXT
\r02810 *
\r02820 FCC 'RP!'
\r02830 FCB 3
\r02840 FCB MFORE
\r02850 FDB SPSTO-CFAOFF
\r02860 FDB BIF+2
\r02870 FDB 0
\r02880 FDB 0
\r02890 RPSTO LDX <UP
\r02900 LDS UR0,X
\r02903 CLR ,S hole
\r02906 CLR 1,S
\r02910 NEXT
\r02920 *
\r02930 FCC ';S'
\r02940 FCB MIMM|2
\r02950 FCB MFORE
\r02960 FDB RPSTO-CFAOFF
\r02970 FDB BIF+2
\r02980 FDB 0
\r02990 FDB 0
\r03000 SEMIS PULS Y un-nest
\r03010 NEXT
\r03020 *
\r03030 FCC 'LEAVE'
\r03040 FCB MCOMP|5
\r03050 FCB MFORE
\r03060 FDB SEMIS-CFAOFF
\r03070 FDB BIF+2
\r03080 FDB LATEST-CFAOFF
\r03090 FDB LFA-CFAOFF
\r03100 LEAVE LDD ,S index
\r03110 STD 2,S to limit
\r03120 NEXT
\r03130 *
\r03140 FCC '>R'
\r03150 FCB MCOMP|2
\r03160 FCB MFORE
\r03170 FDB LEAVE-CFAOFF
\r03180 FDB BIF+2
\r03190 FDB GT-CFAOFF
\r03200 FDB QDOT-CFAOFF
\r03210 TOR PULU D
\r03220 PSHS D
\r03230 NEXT
\r03240 *
\r03250 FCC 'R>'
\r03260 FCB MCOMP|2
\r03270 FCB MFORE
\r03280 FDB TOR-CFAOFF
\r03290 FDB BIF+2
\r03300 FDB R-CFAOFF
\r03310 FDB REPEAT-CFAOFF
\r03320 RFROM JMP <XVAR not JSR!
\r03350 *
\r03360 FCC 'R'
\r03370 FCB 1
\r03380 FCB MFORE
\r03390 FDB RFROM-CFAOFF
\r03400 FDB BIF+2
\r03410 FDB QUIT-CFAOFF
\r03420 FDB RNUM-CFAOFF
\r03430 R JMP I
\r03431 *
\r03432 FCC '='
\r03433 FCB 1
\r03434 FCB MFORE
\r03435 FDB R-CFAOFF
\r03436 FDB BIF+2
\r03437 FDB LT-CFAOFF
\r03438 FDB QCOMP-CFAOFF
\r03439 EQ PULU D
\r03440 CMPD ,U
\r03441 BEQ TRUE
\r03442 BRA FALSE
\r03451 *
\r03452 FCC '<'
\r03453 FCB 1
\r03454 FCB MFORE
\r03455 FDB EQ-CFAOFF
\r03456 FDB BIF+2
\r03457 FDB SCODE-CFAOFF
\r03458 FDB BEGHSH-CFAOFF
\r03459 LT LDD 2,U
\r03460 CMPD ,U++
\r03461 BLT TRUE
\r03462 BRA FALSE
\r03463 *
\r03490 FCC '0='
\r03491 FCB 2
\r03492 FCB MFORE
\r03493 FDB LT-CFAOFF
\r03494 FDB BIF+2
\r03500 FDB 0
\r03510 FDB ONE-CFAOFF
\r03520 ZEQ LDD ,U
\r03530 BNE FALSE
\r03540 TRUE LDD #-1
\r03550 STD ,U
\r03560 NEXT
\r03570 *
\r03580 FCC '0<'
\r03590 FCB 2
\r03600 FCB MFORE
\r03610 FDB ZEQ-CFAOFF
\r03620 FDB BIF+2
\r03630 FDB ZERO-CFAOFF
\r03640 FDB ZEQ-CFAOFF
\r03650 ZLESS LDA ,U
\r03660 BMI TRUE
\r03665 FALSE LDD #0
\r03670 STD ,U
\r03680 NEXT
\r03681 *
\r03682 FCC '>'
\r03683 FCB 1
\r03684 FCB MFORE
\r03685 FDB ZLESS-CFAOFF
\r03686 FDB BIF+2
\r03687 FDB 0
\r03688 FDB TOPRT-CFAOFF
\r03689 GT LDD 2,U
\r03690 CMPD ,U++
\r03691 BGT TRUE
\r03692 BRA FALSE
\r03693 *
\r03700 FCC '+'
\r03710 FCB 1
\r03720 FCB MFORE
\r03730 FDB GT-CFAOFF
\r03740 FDB BIF+2
\r03750 FDB PAREN-CFAOFF
\r03760 FDB SLASH-CFAOFF
\r03770 ADD PULU D
\r03780 ADDTOP
\r03810 *
\r03820 FCC '-'
\r03830 FCB 1
\r03840 FCB MFORE
\r03850 FDB ADD-CFAOFF
\r03860 FDB BIF+2
\r03870 FDB 0
\r03880 FDB 0
\r03890 SUB LDD 2,U
\r03900 SUBD ,U++
\r03910 STD ,U
\r03920 NEXT
\r03930 *
\r03940 FCC 'D+'
\r03950 FCB 2
\r03960 FCB MFORE
\r03970 FDB SUB-CFAOFF
\r03980 FDB BIF+2
\r03990 FDB CONST-CFAOFF
\r04000 FDB DABS-CFAOFF
\r04010 DADD LDD 6,U
\r04020 ADDD 2,U
\r04030 STD 6,U
\r04040 LDD 4,U
\r04050 ADCB 1,U
\r04060 ADCA ,U
\r04070 LEAU 4,U
\r04080 STD ,U
\r04090 NEXT
\r04100 *
\r04120 FCC 'D-'
\r04130 FCB 2
\r04140 FCB MFORE
\r04150 FDB DADD-CFAOFF
\r04160 FDB BIF+2
\r04170 FDB DCHS-CFAOFF
\r04180 FDB DDOT-CFAOFF
\r04190 DSUB LDD 6,U
\r04200 SUBD 2,U
\r04210 STD 6,U
\r04220 LDD 4,U
\r04230 SBCB 1,U
\r04240 SBCA ,U
\r04250 LEAU 4,U
\r04260 STD ,U
\r04270 NEXT
\r04280 *
\r04290 FCC 'MINUS'
\r04300 FCB 5
\r04310 FCB MFORE
\r04320 FDB DSUB-CFAOFF
\r04330 FDB BIF+2
\r04340 FDB 0
\r04350 FDB MOD-CFAOFF
\r04360 MINUS LDD #0
\r04370 SUBD ,U
\r04380 STD ,U
\r04390 NEXT
\r04400 *
\r04410 FCC 'DMINUS'
\r04420 FCB 6
\r04430 FCB MFORE
\r04440 FDB MINUS-CFAOFF
\r04450 FDB BIF+2
\r04460 FDB 0
\r04470 FDB 0
\r04480 DMINUS LDD #0
\r04490 SUBD 2,U
\r04500 STD 2,U
\r04510 LDD #0
\r04520 SBCB 1,U
\r04530 SBCA ,U
\r04570 STD ,U
\r04580 NEXT
\r04590 *
\r04600 FCC 'OVER'
\r04610 FCB 4
\r04620 FCB MFORE
\r04630 FDB DMINUS-CFAOFF
\r04640 FDB BIF+2
\r04650 FDB OR-CFAOFF
\r04660 FDB PFA-CFAOFF
\r04670 OVER LDD 2,U
\r04680 PSHU D
\r04690 NEXT
\r04700 *
\r04710 FCC 'DROP'
\r04720 FCB 4
\r04730 FCB MFORE
\r04740 FDB OVER-CFAOFF
\r04750 FDB BIF+2
\r04760 FDB DPL-CFAOFF
\r04770 FDB EMIT-CFAOFF
\r04780 DROP LEAU 2,U
\r04790 NEXT
\r04800 *
\r04810 FCC 'SWAP'
\r04820 FCB 4
\r04830 FCB MFORE
\r04840 FDB DROP-CFAOFF
\r04850 FDB BIF+2
\r04860 FDB ROT-CFAOFF
\r04870 FDB VAR-CFAOFF
\r04880 SWAP PULU D,X
\r04890 PSHU D
\r04900 PSHU X
\r04910 NEXT
\r04920 *
\r04930 FCC 'DUP'
\r04940 FCB 3
\r04940 FCB MFORE
\r04950 FDB SWAP-CFAOFF
\r04960 FDB BIF+2
\r04970 FDB 0 * DUMP-CFAOFF
\r04980 FDB ELSE-CFAOFF
\r04990 DUP LDD ,U
\r05000 PSHU D
\r05010 NEXT
\r05020 *
\r05030 FCC '+!'
\r05040 FCB 2
\r05050 FCB MFORE
\r05060 FDB DUP-CFAOFF
\r05070 FDB BIF+2
\r05080 FDB 0
\r05090 FDB 0
\r05100 ADDSTO PULU X
\r05110 LDD ,X
\r05120 ADDD ,U++
\r05130 STD ,X
\r05140 NEXT
\r05150 *
\r