OSDN Git Service

line endings will now work for diff, etc.
[bif-6809/bif-6809.git] / cross_v / BIFB.ASM
1 00010 * Include file for BIF
2 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3 00030 *
4 03640   FCC 'EMIT'
5 03650   FCB 4
6 03660   FCB MFORE
7 03670   FDB DLITER-CFAOFF
8 03680   FDB BIF+2
9 03690   FDB DUP-CFAOFF
10 03700   FDB ENCLOS-CFAOFF
11 03705 * output using rom CHROUT: redirectable to printer
12 03710 EMIT      PULU D
13 03720   TFR B,A
14 03730   CLRB
15 03740   PSHS Y,U,DP
16 03750   TFR B,DP
17 03760   JSR [$A002]
18 03770   PULS Y,U,DP
19 03780   NEXT
20 03790 *
21 03800   FCC 'KEY'
22 03810   FCB 3
23 03820   FCB MFORE
24 03830   FDB EMIT-CFAOFF
25 03840   FDB BIF+2
26 03850   FDB IN-CFAOFF
27 03860   FDB LIMIT-CFAOFF
28 03870 * wait for key from POLCAT
29 03880 KEY       PSHS Y,U,DP
30 03890   CLRB
31 03895   LDA #$CF a cursor
32 03900   TFR B,DP
33 03901   SETDP 0
34 03904   LDX <$88 locate
35 03906   LDB ,X save
36 03908   STA ,X
37 03910   JSR [$A000]
38 03920   BEQ *-4
39 03925   STB ,X restore
40 03930 KEYR      CLRB
41 03932   CMPA #3 break key
42 03934   BNE *+3
43 03936   COMB
44 03938   EXG A,B
45 03940   PULS Y,U,DP
46 03942   SETDP VDP
47 03945   PSHU D
48 03950   NEXT
49 03960 *
50 03970   FCC '?TERMINAL'
51 03980   FCB 9
52 03990   FCB MFORE
53 04000   FDB KEY-CFAOFF
54 04010   FDB BIF+2
55 04020   FDB QSTACK-CFAOFF
56 04030   FDB 0
57 04040 * check break key using POLCAT
58 04050 QTERM     PSHS Y,U,DP
59 04060   CLRB
60 04070   TFR B,DP
61 04080   JSR [$A000]
62 04100   BRA KEYR
63 04140 *
64 04150   FCC 'CR'
65 04160   FCB 2
66 04170   FCB MFORE
67 04180   FDB QTERM-CFAOFF
68 04190   FDB BIF+2
69 04200   FDB COUNT-CFAOFF
70 04210   FDB 0
71 04220 CR        LDB #$0D
72 04230   BRA EMIT+2
73 04240 *
74 04250   FCC '(;CODE)'
75 04260   FCB MCOMP.OR.7
76 04270   FCB MFORE
77 04280   FDB CR-CFAOFF
78 04290   FDB BIF+2
79 04300   FDB 0
80 04310   FDB 0
81 04320 XSCODE    LDX <UP
82 04330   LDX UCURR,X being defined
83 04340   LEAX CFAOFF,X
84 04350   LDA AJSR,PCR
85 04360   STA ,X+
86 04370   STY ,X++ code address
87 04380   PULS Y un-nest
88 04390   NEXT
89 04400 * parameters are 3 bytes beyond CFA
90 04410 AJSR      JSR >0 to be compiled
91 04420 *
92 04440 DEVNUM    EQU $6F coco ROM constant
93 04450   FCC '>PRT'
94 04460   FCB 4
95 04470   FCB MFORE
96 04480   FDB XSCODE-CFAOFF
97 04490   FDB BIF+2
98 04500   FDB 0
99 04510   FDB 0
100 04520 TOPRT     LDB #-2
101 04530   STB DEVNUM
102 04540   NEXT
103 04550 *
104 04560   FCC '>VID'
105 04570   FCB 4
106 04580   FCB MFORE
107 04590   FDB TOPRT-CFAOFF
108 04600   FDB BIF+2
109 04610   FDB 0
110 04620   FDB 0
111 04630 TOVID     CLR DEVNUM
112 04650   NEXT
113 04660 *
114 04670   FCC '2*'
115 04680   FCB 2
116 04690   FCB MFORE
117 04700   FDB TOVID-CFAOFF
118 04710   FDB BIF+2
119 04720   FDB 0
120 04730   FDB 0
121 04740 LSHIFT    LSL 1,U
122 04750   ROL ,U
123 04760   NEXT
124 04770 *
125 04780   FCC '2/'
126 04790   FCB 2
127 04800   FCB MFORE
128 04810   FDB LSHIFT-CFAOFF
129 04820   FDB BIF+2
130 04830   FDB SUB2-CFAOFF
131 04840   FDB THREE-CFAOFF
132 04850 RSHIFT    ASR ,U
133 04860   ROR 1,U
134 04870   NEXT
135 04880 *
136 04885   FCC '(REFIND)'
137 04890   FCB 8
138 04895   FCB MFORE
139 04900   FDB RSHIFT-CFAOFF
140 04910   FDB BIF+2
141 04920   FDB 0
142 04930   FDB 0
143 04940 * search vocabulary adr2 for first (adr1)
144 04950 PREF      LDD #PFAOFF vocab flag
145 04955   PSHS D,Y
146 04960   LDX ,U root ptr
147 04965   BEQ PREFN
148 04970   BRA PREFA
149 04980 PREFP     LDY 2,U hunt for
150 04990   LDB ,X count
151 05000   ANDB #NLMASK
152 05005   BEQ PREF1
153 05010   TFR B,A
154 05020   NEGA
155 05040   LEAX A,X hunt in
156 05050 PREFS     LDA ,Y+ scan
157 05060   SUBA ,X+
158 05070   BNE PREFN
159 05080   DECB
160 05090   BNE PREFS
161 05100 PREF1     LDA ,Y NUL?
162 05110   BNE PREFN
163 05120 PREFX     PULS D,Y
164 05140   PSHU D flag
165 05170   NEXT
166 05180 PREFN     LDX [,U] old NFA
167 05190   TSTA
168 05200   BMI *+6
169 05210   LDB #RTOFF
170 05220   BRA *+4
171 05230   LDB #LFTOFF
172 05233   LEAX B,X
173 05236   STB 1,S flag
174 05240   STX ,U
175 05250 PREFA     LDX ,X new NFA
176 05260   BNE PREFP
177 05280   BRA PREFX
178 08200 *