OSDN Git Service

line endings will now work for diff, etc.
[bif-6809/bif-6809.git] / cross_v / BIFB.ASM
index a0f571d..8a47461 100644 (file)
@@ -1 +1,178 @@
-00010 * Include file for BIF\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)\r00030 *\r03640  FCC 'EMIT'\r03650        FCB 4\r03660     FCB MFORE\r03670         FDB DLITER-CFAOFF\r03680         FDB BIF+2\r03690         FDB DUP-CFAOFF\r03700    FDB ENCLOS-CFAOFF\r03705 * output using rom CHROUT: redirectable to printer\r03710 EMIT   PULU D\r03720    TFR B,A\r03730   CLRB\r03740      PSHS Y,U,DP\r03750       TFR B,DP\r03760  JSR [$A002]\r03770       PULS Y,U,DP\r03780       NEXT\r03790 *\r03800      FCC 'KEY'\r03810         FCB 3\r03820     FCB MFORE\r03830         FDB EMIT-CFAOFF\r03840   FDB BIF+2\r03850         FDB IN-CFAOFF\r03860     FDB LIMIT-CFAOFF\r03870 * wait for key from POLCAT\r03880 KEY     PSHS Y,U,DP\r03890       CLRB\r03895      LDA #$CF a cursor\r03900         TFR B,DP\r03901  SETDP 0\r03904   LDX <$88 locate\r03906   LDB ,X save\r03908       STA ,X\r03910    JSR [$A000]\r03920       BEQ *-4\r03925   STB ,X restore\r03930 KEYR       CLRB\r03932      CMPA #3 break key\r03934         BNE *+3\r03936   COMB\r03938      EXG A,B\r03940   PULS Y,U,DP\r03942       SETDP VDP\r03945         PSHU D\r03950    NEXT\r03960 *\r03970      FCC '?TERMINAL'\r03980   FCB 9\r03990     FCB MFORE\r04000         FDB KEY-CFAOFF\r04010    FDB BIF+2\r04020         FDB QSTACK-CFAOFF\r04030         FDB 0\r04040 * check break key using POLCAT\r04050 QTERM  PSHS Y,U,DP\r04060       CLRB\r04070      TFR B,DP\r04080  JSR [$A000]\r04100       BRA KEYR\r04140 *\r04150  FCC 'CR'\r04160  FCB 2\r04170     FCB MFORE\r04180         FDB QTERM-CFAOFF\r04190  FDB BIF+2\r04200         FDB COUNT-CFAOFF\r04210  FDB 0\r04220 CR  LDB #$0D\r04230  BRA EMIT+2\r04240 *\r04250        FCC '(;CODE)'\r04260     FCB MCOMP.OR.7\r04270    FCB MFORE\r04280         FDB CR-CFAOFF\r04290     FDB BIF+2\r04300         FDB 0\r04310     FDB 0\r04320 XSCODE      LDX <UP\r04330   LDX UCURR,X being defined\r04340         LEAX CFAOFF,X\r04350     LDA AJSR,PCR\r04360      STA ,X+\r04370   STY ,X++ code address\r04380     PULS Y un-nest\r04390    NEXT\r04400 * parameters are 3 bytes beyond CFA\r04410 AJSR       JSR >0 to be compiled\r04420 *\r04440 DEVNUM      EQU $6F coco ROM constant\r04450         FCC '>PRT'\r04460        FCB 4\r04470     FCB MFORE\r04480         FDB XSCODE-CFAOFF\r04490         FDB BIF+2\r04500         FDB 0\r04510     FDB 0\r04520 TOPRT       LDB #-2\r04530   STB DEVNUM\r04540        NEXT\r04550 *\r04560      FCC '>VID'\r04570        FCB 4\r04580     FCB MFORE\r04590         FDB TOPRT-CFAOFF\r04600  FDB BIF+2\r04610         FDB 0\r04620     FDB 0\r04630 TOVID       CLR DEVNUM\r04650        NEXT\r04660 *\r04670      FCC '2*'\r04680  FCB 2\r04690     FCB MFORE\r04700         FDB TOVID-CFAOFF\r04710  FDB BIF+2\r04720         FDB 0\r04730     FDB 0\r04740 LSHIFT      LSL 1,U\r04750   ROL ,U\r04760    NEXT\r04770 *\r04780      FCC '2/'\r04790  FCB 2\r04800     FCB MFORE\r04810         FDB LSHIFT-CFAOFF\r04820         FDB BIF+2\r04830         FDB SUB2-CFAOFF\r04840   FDB THREE-CFAOFF\r04850 RSHIFT   ASR ,U\r04860    ROR 1,U\r04870   NEXT\r04880 *\r04885      FCC '(REFIND)'\r04890    FCB 8\r04895     FCB MFORE\r04900         FDB RSHIFT-CFAOFF\r04910         FDB BIF+2\r04920         FDB 0\r04930     FDB 0\r04940 * search vocabulary adr2 for first (adr1)\r04950 PREF        LDD #PFAOFF vocab flag\r04955    PSHS D,Y\r04960  LDX ,U root ptr\r04965   BEQ PREFN\r04970         BRA PREFA\r04980 PREFP   LDY 2,U hunt for\r04990  LDB ,X count\r05000      ANDB #NLMASK\r05005      BEQ PREF1\r05010         TFR B,A\r05020   NEGA\r05040      LEAX A,X hunt in\r05050 PREFS    LDA ,Y+ scan\r05060      SUBA ,X+\r05070  BNE PREFN\r05080         DECB\r05090      BNE PREFS\r05100 PREF1   LDA ,Y NUL?\r05110       BNE PREFN\r05120 PREFX   PULS D,Y\r05140  PSHU D flag\r05170       NEXT\r05180 PREFN        LDX [,U] old NFA\r05190  TSTA\r05200      BMI *+6\r05210   LDB #RTOFF\r05220        BRA *+4\r05230   LDB #LFTOFF\r05233       LEAX B,X\r05236  STB 1,S flag\r05240      STX ,U\r05250 PREFA      LDX ,X new NFA\r05260    BNE PREFP\r05280         BRA PREFX\r08200 *\r
\ 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 <UP
+04330  LDX UCURR,X being defined
+04340  LEAX CFAOFF,X
+04350  LDA AJSR,PCR
+04360  STA ,X+
+04370  STY ,X++ code address
+04380  PULS Y un-nest
+04390  NEXT
+04400 * parameters are 3 bytes beyond CFA
+04410 AJSR     JSR >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 *