1 00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC 'LATEST'
\r01010 FCB 6
\r01020 FCB MFORE
\r01030 FDB ENDIF-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB 0
\r01060 FDB 0
\r01070 LATEST DOUCON not ROOT!
\r01080 FCB UCURR NFA
\r01110 *
\r01115 * convert NFA to LFA,CFA,GFA,PFA
\r01120 FCC 'LFA'
\r01130 FCB 3
\r01140 FCB MFORE
\r01150 FDB LATEST-CFAOFF
\r01160 FDB BIF+2
\r01170 FDB 0
\r01180 FDB 0
\r01190 LFA LDB #LFAOFF
\r01200 BRA CFA+2
\r01210 *
\r01220 FCC 'CFA'
\r01230 FCB 3
\r01240 FCB MFORE
\r01250 FDB LFA-CFAOFF
\r01260 FDB BIF+2
\r01270 FDB 0
\r01280 FDB 0
\r01290 CFA LDB #CFAOFF
\r01292 SEX
\r01294 ADDD ,U
\r01296 STD ,U
\r01300 NEXT
\r01310 *
\r01320 FCC 'GFA'
\r01330 FCB 3
\r01340 FCB MFORE
\r01350 FDB CFA-CFAOFF
\r01360 FDB BIF+2
\r01370 FDB 0
\r01380 FDB 0
\r01390 GFA LDB #GFAOFF
\r01400 BRA CFA+2
\r01410 *
\r01420 FCC 'PFA'
\r01430 FCB 3
\r01440 FCB MFORE
\r01450 FDB GFA-CFAOFF
\r01460 FDB BIF+2
\r01470 FDB PAD-CFAOFF
\r01480 FDB PREV-CFAOFF
\r01490 PFA LDB #PFAOFF
\r01500 BRA CFA+2
\r01510 *
\r01515 * PFA to NFA
\r01520 FCC 'NFA'
\r01530 FCB 3
\r01540 FCB MFORE
\r01550 FDB PFA-CFAOFF
\r01560 FDB BIF+2
\r01570 FDB NCOMMA-CFAOFF
\r01580 FDB NOT-CFAOFF
\r01590 NFA LDB #-PFAOFF
\r01600 BRA CFA+2
\r01610 *
\r01620 FCC '!CSP'
\r01630 FCB 4
\r01640 FCB MFORE
\r01650 FDB NFA-CFAOFF
\r01660 FDB BIF+2
\r01670 FDB 0
\r01680 FDB HASH-CFAOFF
\r01690 STOCSP LDX <UP
\r01700 STU UCSP,X
\r01710 NEXT
\r01720 *
\r01730 FCC 'HEX'
\r01740 FCB 3
\r01750 FCB MFORE
\r01760 FDB STOCSP-CFAOFF
\r01770 FDB BIF+2
\r01780 FDB 0
\r01790 FDB 0
\r01800 HEX LDB #16
\r01810 CLRA
\r01820 LDX <UP
\r01830 STD UBASE,X
\r01840 NEXT
\r01850 *
\r01860 FCC 'DECIMAL'
\r01870 FCB 7
\r01880 FCB MFORE
\r01890 FDB HEX-CFAOFF
\r01900 FDB BIF+2
\r01910 FDB DAD-CFAOFF
\r01920 FDB DEFS-CFAOFF
\r01930 DEC LDB #10
\r01940 BRA HEX+2
\r01950 *
\r01960 FCC 'OCTAL'
\r01970 FCB 5
\r01980 FCB MFORE
\r01990 FDB DEC-CFAOFF
\r02000 FDB BIF+2
\r02010 FDB 0
\r02020 FDB OFFSET-CFAOFF
\r02030 OCT LDB #8
\r02040 BRA HEX+2
\r02050 *
\r02060 FCC 'FILL'
\r02070 FCB 4
\r02080 FCB MFORE
\r02090 FDB OCT-CFAOFF
\r02100 FDB BIF+2
\r02110 FDB FENCE-CFAOFF
\r02120 FDB FILLIN-CFAOFF
\r02130 FILL PSHS Y
\r02140 PULU D,X,Y
\r02150 STB ,Y+
\r02160 LEAX -1,X
\r02170 BNE *-4
\r02180 PULS Y
\r02190 NEXT
\r02200 *
\r02210 FCC 'ERASE'
\r02220 FCB 5
\r02230 FCB MFORE
\r02240 FDB FILL-CFAOFF
\r02250 FDB BIF+2
\r02260 FDB 0
\r02270 FDB 0
\r02280 ERASE LDB #0
\r02290 PSHU D
\r02300 BRA FILL
\r02310 *
\r02320 FCC 'BLANKS'
\r02330 FCB 6
\r02340 FCB MFORE
\r02350 FDB ERASE-CFAOFF
\r02360 FDB BIF+2
\r02370 FDB BL-CFAOFF
\r02380 FDB 0
\r02390 BLANKS LDB #$20 ascii SP
\r02400 PSHU D
\r02410 BRA FILL
\r02420 *
\r02430 FCC 'HOLD'
\r02440 FCB 4
\r02450 FCB MFORE
\r02460 FDB BLANKS-CFAOFF
\r02470 FDB BIF+2
\r02480 FDB 0
\r02490 FDB 0
\r02500 HOLD PULU D CH
\r02510 PSHS Y
\r02520 LDY <UP
\r02530 LDX UHLD,Y
\r02540 STB ,-X
\r02550 STX UHLD,Y
\r02555 PULS Y
\r02560 NEXT
\r02570 *
\r02580 FCC 'PAD'
\r02590 FCB 3
\r02600 FCB MFORE
\r02610 FDB HOLD-CFAOFF
\r02620 FDB BIF+2
\r02630 FDB 0
\r02640 FDB 0
\r02650 PAD DOUCON moved!
\r02660 FCB UPAD
\r02700 *
\r02710 FCC 'S->D'
\r02720 FCB 4
\r02730 FCB MFORE
\r02740 FDB PAD-CFAOFF
\r02750 FDB BIF+2
\r02760 FDB RPSTO-CFAOFF
\r02770 FDB SIGN-CFAOFF
\r02780 STOD LEAU -2,U
\r02790 LDD 2,U
\r02795 LBRA ZLESS+2
\r02800 *
\r02810 FCC '+-'
\r02820 FCB 2
\r02830 FCB MFORE
\r02840 FDB STOD-CFAOFF
\r02850 FDB BIF+2
\r02860 FDB ADDSTO-CFAOFF
\r02870 FDB ADDBUF-CFAOFF
\r02880 CHS LDD ,U++
\r02890 LBMI MINUS
\r02895 NEXT
\r02900 *
\r02910 FCC 'D+-'
\r02920 FCB 3
\r02930 FCB MFORE
\r02940 FDB STOD-CFAOFF
\r02950 FDB BIF+2
\r02960 FDB 0
\r02970 FDB 0
\r02980 DCHS LDD ,U++
\r02990 LBMI DMINUS
\r02995 NEXT
\r03000 *
\r03010 FCC 'ABS'
\r03020 FCB 3
\r03030 FCB MFORE
\r03040 FDB DCHS-CFAOFF
\r03050 FDB BIF+2
\r03060 FDB ABORT-CFAOFF
\r03070 FDB ALLOT-CFAOFF
\r03080 ABS LDD ,U
\r03090 LBMI MINUS
\r03095 NEXT
\r03100 *
\r03110 FCC 'DABS'
\r03120 FCB 4
\r03130 FCB MFORE
\r03140 FDB ABS-CFAOFF
\r03150 FDB BIF+2
\r03160 FDB DSUB-CFAOFF
\r03170 FDB DIGIT-CFAOFF
\r03180 DABS LDD ,U
\r03190 LBMI DMINUS
\r03195 NEXT
\r03200 *
\r03210 FCC 'MIN'
\r03220 FCB 3
\r03230 FCB MFORE
\r03240 FDB DABS-CFAOFF
\r03250 FDB BIF+2
\r03260 FDB MSMOD-CFAOFF
\r03270 FDB MOVE-CFAOFF
\r03280 MIN PULU D
\r03284 CMPD ,U
\r03288 BGE *+4
\r03290 STD ,U
\r03295 NEXT
\r03300 *
\r03310 FCC 'MAX'
\r03320 FCB 3
\r03330 FCB MFORE
\r03340 FDB MIN-CFAOFF
\r03350 FDB BIF+2
\r03360 FDB 0
\r03370 FDB 0
\r03380 MAX PULU D
\r03384 CMPD ,U
\r03388 BLE *+4
\r03390 STD ,U
\r03395 NEXT
\r03400 *
\r03410 FCC '['
\r03412 FCB MIMM.OR.1
\r03414 FCB MFORE
\r03416 FDB MAX-CFAOFF
\r03418 FDB BIF+2
\r03420 FDB XOR-CFAOFF
\r03422 FDB 0
\r03430 LBRAK LDB #.NOT.SCOMP
\r03435 LDX <UP
\r03440 ANDB USTATE+1,X
\r03445 STB USTATE+1,X
\r03450 NEXT
\r03500 *
\r03510 FCC ']'
\r03512 FCB 1
\r03514 FCB MFORE
\r03516 FDB LBRAK-CFAOFF
\r03518 FDB BIF+2
\r03520 FDB 0
\r03522 FDB 0
\r03530 RBRAK LDB #SCOMP
\r03535 LDX <UP
\r03540 ORB USTATE+1,X
\r03545 STB USTATE+1,X
\r03550 NEXT
\r03555 *
\r03560 FCC 'IMMEDIATE'
\r03562 FCB 9
\r03564 FCB MFORE
\r03566 FDB RBRAK-CFAOFF
\r03568 FDB BIF+2
\r03570 FDB 0
\r03572 FDB 0
\r03580 IMMED LDB #MIMM
\r03585 BRA SMUDGE+2
\r03600 *
\r03610 FCC 'SMUDGE'
\r03612 FCB 6
\r03614 FCB MFORE
\r03616 FDB IMMED-CFAOFF
\r03618 FDB BIF+2
\r03620 FDB STOD-CFAOFF
\r03622 FDB SPACE-CFAOFF
\r03630 SMUDGE LDB #MHID
\r03635 LDX <UP
\r03645 EORB [UCURR,X]
\r03650 STB [UCURR,X]
\r03655 NEXT
\r03657 *
\r03660 FCC 'COMPILE-ONLY'
\r03662 FCB 12
\r03664 FCB MFORE
\r03666 FDB SMUDGE-CFAOFF
\r03668 FDB BIF+2
\r03670 FDB 0
\r03672 FDB 0
\r03680 COMPO LDB #MCOMP
\r03685 BRA SMUDGE+2
\r03800 *
\r03810 FCC 'COUNT'
\r03812 FCB 5
\r03814 FCB MFORE
\r03816 FDB COMPO-CFAOFF
\r03818 FDB BIF+2
\r03820 FDB 0
\r03822 FDB 0
\r03830 COUNT LDX ,U CT OF STR
\r03835 LDB ,X+
\r03840 STX ,U STRING
\r03845 CLRA
\r03850 PSHU D COUNT
\r03855 NEXT
\r03900 *
\r03910 FCC '-TRAILING'
\r03912 FCB 9
\r03914 FCB MFORE
\r03916 FDB COUNT-CFAOFF
\r03918 FDB BIF+2
\r03920 FDB DIFIND-CFAOFF
\r03922 FDB 0
\r03930 DTRAIL LDD ,U
\r03935 LDX 2,U
\r03940 LEAX D,X END
\r03945 LDA #$20 ascii SP
\r03950 DTRAL CMPA ,-X
\r03955 BNE DTRAD
\r03960 CMPX 2,U
\r03965 BHS DTRAL
\r03970 DTRAD TFR X,D
\r03975 SUBD 2,U
\r03980 ADDD #1
\r03985 STD ,U
\r03990 NEXT
\r04000 *
\r04010 FCC '(MACHINE)'
\r04012 FCB MCOMP.OR.9
\r04014 FCB MFORE
\r04016 FDB DTRAIL-CFAOFF
\r04018 FDB BIF+2
\r04020 FDB XLINE-CFAOFF
\r04022 FDB INUMB-CFAOFF
\r04030 XMACH TFR Y,X
\r04040 PULS Y UN-NEST
\r04050 JMP ,X IN LINE MACHINE CODE
\r04100 *
\r