X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=cross_v%2FBIFB.ASM;fp=cross_v%2FBIFB.ASM;h=8a47461bfb93c0fe3c461e2f169ee9f9a191435f;hb=6bfdb0795312adc928cdd0ee1187ba047a22a3e2;hp=a0f571d2e30d429a588821a1e05be93aa681c6cb;hpb=3122c5a7bf6af5205b706254bb9385a7927d411b;p=bif-6809%2Fbif-6809.git diff --git a/cross_v/BIFB.ASM b/cross_v/BIFB.ASM index a0f571d..8a47461 100644 --- a/cross_v/BIFB.ASM +++ b/cross_v/BIFB.ASM @@ -1 +1,178 @@ -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 * \ No newline at end of file +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 *