00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 03640 FCC 'EMIT' 03650 FCB 4 03660 FCB MFORE 03670 FDB DLITER-CFAOFF 03680 FDB BIF+2 03690 FDB DUP-CFAOFF 03700 FDB ENCLOS-CFAOFF 03705 * output using rom CHROUT: redirectable to printer 03710 EMIT PULU D 03720 TFR B,A 03730 CLRB 03740 PSHS Y,U,DP 03750 TFR B,DP 03760 JSR [$A002] 03770 PULS Y,U,DP 03780 NEXT 03790 * 03800 FCC 'KEY' 03810 FCB 3 03820 FCB MFORE 03830 FDB EMIT-CFAOFF 03840 FDB BIF+2 03850 FDB IN-CFAOFF 03860 FDB LIMIT-CFAOFF 03870 * wait for key from POLCAT 03880 KEY PSHS Y,U,DP 03890 CLRB 03895 LDA #$CF a cursor 03900 TFR B,DP 03901 SETDP 0 03904 LDX <$88 locate 03906 LDB ,X save 03908 STA ,X 03910 JSR [$A000] 03920 BEQ *-4 03925 STB ,X restore 03930 KEYR CLRB 03932 CMPA #3 break key 03934 BNE *+3 03936 COMB 03938 EXG A,B 03940 PULS Y,U,DP 03942 SETDP VDP 03945 PSHU D 03950 NEXT 03960 * 03970 FCC '?TERMINAL' 03980 FCB 9 03990 FCB MFORE 04000 FDB KEY-CFAOFF 04010 FDB BIF+2 04020 FDB QSTACK-CFAOFF 04030 FDB 0 04040 * check break key using POLCAT 04050 QTERM PSHS Y,U,DP 04060 CLRB 04070 TFR B,DP 04080 JSR [$A000] 04100 BRA KEYR 04140 * 04150 FCC 'CR' 04160 FCB 2 04170 FCB MFORE 04180 FDB QTERM-CFAOFF 04190 FDB BIF+2 04200 FDB COUNT-CFAOFF 04210 FDB 0 04220 CR LDB #$0D 04230 BRA EMIT+2 04240 * 04250 FCC '(;CODE)' 04260 FCB MCOMP.OR.7 04270 FCB MFORE 04280 FDB CR-CFAOFF 04290 FDB BIF+2 04300 FDB 0 04310 FDB 0 04320 XSCODE LDX 0 to be compiled 04420 * 04440 DEVNUM EQU $6F coco ROM constant 04450 FCC '>PRT' 04460 FCB 4 04470 FCB MFORE 04480 FDB XSCODE-CFAOFF 04490 FDB BIF+2 04500 FDB 0 04510 FDB 0 04520 TOPRT LDB #-2 04530 STB DEVNUM 04540 NEXT 04550 * 04560 FCC '>VID' 04570 FCB 4 04580 FCB MFORE 04590 FDB TOPRT-CFAOFF 04600 FDB BIF+2 04610 FDB 0 04620 FDB 0 04630 TOVID CLR DEVNUM 04650 NEXT 04660 * 04670 FCC '2*' 04680 FCB 2 04690 FCB MFORE 04700 FDB TOVID-CFAOFF 04710 FDB BIF+2 04720 FDB 0 04730 FDB 0 04740 LSHIFT LSL 1,U 04750 ROL ,U 04760 NEXT 04770 * 04780 FCC '2/' 04790 FCB 2 04800 FCB MFORE 04810 FDB LSHIFT-CFAOFF 04820 FDB BIF+2 04830 FDB SUB2-CFAOFF 04840 FDB THREE-CFAOFF 04850 RSHIFT ASR ,U 04860 ROR 1,U 04870 NEXT 04880 * 04885 FCC '(REFIND)' 04890 FCB 8 04895 FCB MFORE 04900 FDB RSHIFT-CFAOFF 04910 FDB BIF+2 04920 FDB 0 04930 FDB 0 04940 * search vocabulary adr2 for first (adr1) 04950 PREF LDD #PFAOFF vocab flag 04955 PSHS D,Y 04960 LDX ,U root ptr 04965 BEQ PREFN 04970 BRA PREFA 04980 PREFP LDY 2,U hunt for 04990 LDB ,X count 05000 ANDB #NLMASK 05005 BEQ PREF1 05010 TFR B,A 05020 NEGA 05040 LEAX A,X hunt in 05050 PREFS LDA ,Y+ scan 05060 SUBA ,X+ 05070 BNE PREFN 05080 DECB 05090 BNE PREFS 05100 PREF1 LDA ,Y NUL? 05110 BNE PREFN 05120 PREFX PULS D,Y 05140 PSHU D flag 05170 NEXT 05180 PREFN LDX [,U] old NFA 05190 TSTA 05200 BMI *+6 05210 LDB #RTOFF 05220 BRA *+4 05230 LDB #LFTOFF 05233 LEAX B,X 05236 STB 1,S flag 05240 STX ,U 05250 PREFA LDX ,X new NFA 05260 BNE PREFP 05280 BRA PREFX 08200 *