• R/O
  • HTTP
  • SSH
  • HTTPS

bif-6809: コミット

ソースコード及び仕様書など
Source and documentation


コミットメタ情報

リビジョン6bfdb0795312adc928cdd0ee1187ba047a22a3e2 (tree)
日時2019-04-13 01:06:13
作者Joel Matthew Rees <joel.rees@gmai...>
コミッターJoel Matthew Rees

ログメッセージ

line endings will now work for diff, etc.

変更サマリ

差分

--- a/cross_v/BIF.ASM
+++ b/cross_v/BIF.ASM
@@ -1 +1,319 @@
1-00010 * The Kernel of BIF: A Dialect of FORTH 00015 * with a Binary Tree Dictionary 00020 * Copyright 1989 by Joel Matthew Rees 00025 * 00030 * BIF is architecturally derived from 00035 * the public domain fig-FORTH model. 00040 * 00050 * TITLE BIF kernel 16 Feb 89 00070 OPT MEX 00080 INCLUDE BIFU.INC 00090 ORG $1200 DEBIF: $3F00 00100 INCLUDE BIF.M 00110 INCLUDE BIFDP.ASM 00110 INCLUDE BIFST.ASM 00120 SETDP VDP COLD loads DP 01000 * 01001 FCC '@' name 01002 FCB 1 name length, usage (NFA) 01003 FCB MFORE type/allocation MODES 01004 FDB WARM-CFAOFF previous link in allocation 01005 FDB BIF+2 owning vocabulary 01006 FDB EQ-CFAOFF left link in tree 01007 FDB AND-CFAOFF right link in tree 01010 FETCH LDD [,U] from [tos] to stack 01011 STD ,U 01012 NEXT 01013 * 01014 FCC '!' 01015 FCB 1 01016 FCB MFORE 01017 FDB FETCH-CFAOFF 01030 FDB BIF+2 01040 FDB NUBLK-CFAOFF 01050 FDB STOCSP-CFAOFF 01060 STORE LDD 2,U from stack to [top] 01070 STD [,U] 01080 LEAU 4,U 01090 NEXT 01095 * 01100 FCC 'LIT' 01110 FCB MCOMP.OR.3 01120 FCB MFORE 01130 FDB STORE-CFAOFF 01140 FDB BIF+2 01150 FDB 0 * LIST-CFAOFF 01160 FDB 0 01170 LIT LDD ,Y++ push literal from code 01180 PSHU D 01190 NEXT 01200 * 01210 FCC 'DLIT' 01220 FCB MCOMP.OR.4 01230 FCB MFORE 01240 FDB LIT-CFAOFF 01250 FDB BIF+2 01260 FDB 0 01270 FDB 0 01280 * push double literal from code 01290 DLIT LDD ,Y++ 01300 LDX ,Y++ 01310 PSHU D,X 01320 NEXT 01330 * 01340 FCC 'EXECUTE' 01350 FCB MCOMP.OR.7 01360 FCB MFORE 01370 FDB DLIT-CFAOFF 01380 FDB BIF+2 01390 FDB 0 01400 FDB 0 01410 * EXECUTE cfa on stack 01420 EXEC LDX ,U++ 01430 BEQ *+4 01440 JMP ,X 01450 LDD #9 01460 PSHU D 01462 JMP ERROR 01464 * 01466 FCC '1BRANCH' 01468 FCB MCOMP.OR.7 01470 FCB MFORE 01472 FDB EXEC-CFAOFF 01474 FDB BIF+2 01476 FDB 0 01478 FDB 0 01480 TBR LDD ,U++ 01482 BNE BRANCH 01484 LEAY 2,Y 01486 NEXT 01488 * 01490 FCC 'BRANCH' 01500 FCB MCOMP.OR.6 01510 FCB MFORE 01520 FDB TBR-CFAOFF 01530 FDB BIF+2 01540 FDB 0 01550 FDB 0 01560 BRANCH LDD ,Y++ 01570 LEAY D,Y 01580 NEXT 01590 * 01600 FCC '0BRANCH' 01610 FCB MCOMP.OR.7 01620 FCB MFORE 01630 FDB BRANCH-CFAOFF 01640 FDB BIF+2 01650 FDB 0 01660 FDB 0 01670 ZBR LDD ,U++ 01680 BEQ BRANCH 01690 LEAY 2,Y 01700 NEXT 01710 * 01720 FCC '(LOOP)' 01730 FCB MCOMP.OR.6 01740 FCB MFORE 01750 FDB ZBR-CFAOFF 01760 FDB BIF+2 01770 FDB 0 01780 FDB 0 01790 XLOOP LDD #1 01800 ADDD ,S 01810 STD ,S 01820 SUBD 2,S 01830 BLT BRANCH 01840 XLOOPN LEAY 2,Y 01850 LEAS 4,S 01860 NEXT 01870 * 01880 FCC '(+LOOP)' 01890 FCB MCOMP.OR.7 01900 FCB MFORE 01910 FDB XLOOP-CFAOFF 01920 FDB BIF+2 01930 FDB 0 01940 FDB 0 01950 XPLOOP LDD ,U++ inc val 01960 BPL XLOOP+3 01970 ADDD ,S 01980 STD ,S 01990 SUBD 2,S 02000 BGT BRANCH 02010 BRA XLOOPN 02020 * 02030 FCC '(DO)' 02040 FCB 4 02050 FCB MFORE 02060 FDB XPLOOP-CFAOFF 02070 FDB BIF+2 02080 FDB 0 02090 FDB 0 02100 XDO PULU D,X 02110 PSHS D,X 02120 NEXT 02130 * 02140 FCC 'I' 02150 FCB 1 02160 FCB MFORE 02170 FDB XDO-CFAOFF 02180 FDB BIF+2 02190 FDB HLD-CFAOFF 02200 FDB IDDOT-CFAOFF 02210 I LDD ,S 02220 PSHU D 02222 NEXT 02224 * 02226 FCC 'J' 02228 FCB 1 02230 FCB MFORE 02232 FDB I-CFAOFF 02234 FDB BIF+2 02236 FDB IPCOM-CFAOFF 02238 FDB 0 02240 J LDD 4,S 02242 PSHU D 02244 NEXT 02246 * 02250 FCC 'DIGIT' 02260 FCB 5 02270 FCB MFORE 02280 FDB J-CFAOFF 02290 FDB BIF+2 02300 FDB DEC-CFAOFF 02310 FDB DLITER-CFAOFF 02320 DIGIT LDB 3,U 02330 CMPB #'9 02340 BLS DIGITX+4 02350 CMPB #'A 02360 BLO DIGITN 02370 CMPB #'Z 02380 BLS DIGITX+2 02390 CMPB #'a 02400 BLO DIGITN 02410 CMPB #'z 02420 BHI DIGITN 02430 DIGITX SUBB #'a-'Z-1 02440 SUBB #'A-'9-1 02450 SUBB #'0 02460 CMPB 1,U 02470 BHS DIGITN 02480 CLRA 02490 STD 2,U 02500 LDD #-1 02510 DIGITL STD ,U 02520 NEXT 02530 DIGITN LEAU 2,U 02540 LDD #0 02550 BRA DIGITL 02560 * 02570 FCC '(FIND)' 02580 FCB 6 02590 FCB MFORE 02600 FDB DIGIT-CFAOFF 02610 FDB BIF+2 02620 FDB IABORT-CFAOFF 02630 FDB XMACH-CFAOFF 02640 * search vocabulary adr2 for (adr1) 02650 PFIND LDD ,U valid? 02660 BEQ PFINDX 02670 PFINDL DOCOL 02680 FDB PREF 02690 FDB XMACH 02700 LEAU 2,U 02710 LDX [,U] NULL link? 02720 BEQ PFINDN 02730 LDB ,X 02740 ANDB #MHID smudged? 02750 BEQ PFINDY 02760 LEAX RTOFF,X deeper 02770 STX ,U 02780 BRA PFINDL 02790 PFINDY LDX #-1 02800 PFINDN LDD ,U 02810 STX ,U 02820 PFINDX STD 2,U 02830 NEXT 02990 * 03000 FCC 'ENCLOSE' 03010 FCB 7 03020 FCB MFORE 03030 FDB PFIND-CFAOFF 03040 FDB BIF+2 03050 FDB EMTBUF-CFAOFF 03060 FDB 0 03070 * adr1 c --- adr2 len 03080 ENCLOS LDX 2,U 03100 ENCLLD LDB ,X+ delimiter 03110 BEQ ENCL0 03120 CMPB 1,U 03130 BEQ ENCLLD 03133 ENCL0 LEAX -1,X 03140 STX 2,U 03150 ENCLLW LDB ,X+ scan word 03160 BEQ ENCLCA 03170 CMPB 1,U 03180 BNE ENCLLW 03190 ENCLCA TFR X,D length 03195 SUBD #1 03200 SUBD 2,U 03220 STD ,U 03230 NEXT 03240 * 03250 FCC 'LITERAL' 03260 FCB MIMM.OR.7 03270 FCB MFORE 03280 FDB ENCLOS-CFAOFF 03290 FDB BIF+2 03300 FDB LIT-CFAOFF 03310 FDB LOAD-CFAOFF 03320 * compile a literal 03330 LITER BSR LITERS 03340 LDD #LIT 03350 LITERB STD ,Y++ 03360 PULU D 03370 STD ,Y++ 03380 STY UDP,X 03390 PULS Y 03400 JMP HERERR 03405 * 03410 LITERS LDX <UP 03412 LDB USTATE+1,X 03414 ANDB #SCOMP 03416 PULS D no CC 03418 BNE *+4 compiling? 03420 NEXT no 03422 PSHS Y 03424 LDY UDP,X 03426 EXG D,PC return 03430 * 03435 FCC 'DLITERAL' 03440 FCB MIMM.OR.8 03450 FCB MFORE 03460 FDB LITER-CFAOFF 03470 FDB BIF+2 03480 FDB DLIT-CFAOFF 03490 FDB DMINUS-CFAOFF 03500 * compile a 32 bit constant 03510 DLITER BSR LITERS 03540 LDD #DLIT 03550 STD ,Y++ 03560 PULU D 03570 BRA LITERB 03630 * 08210 INCLUDE BIFB.ASM 08220 INCLUDE BIF1.ASM 08230 INCLUDE BIF1B.ASM 08240 INCLUDE BIF2.ASM 08250 INCLUDE BIF2B.ASM 08260 INCLUDE BIF3.ASM 08270 INCLUDE BIF3B.ASM 08280 INCLUDE BIF4.ASM 08285 INCLUDE BIF4B.ASM 08290 INCLUDE BIF5.ASM 08295 INCLUDE BIF5B.ASM 08300 INCLUDE BIF6.ASM 08310 INCLUDE BIF6B.ASM 08320 INCLUDE BIF7.ASM 08330 INCLUDE BIF7B.ASM 09000 END
\ No newline at end of file
1+00010 * The Kernel of BIF: A Dialect of FORTH
2+00015 * with a Binary Tree Dictionary
3+00020 * Copyright 1989 by Joel Matthew Rees
4+00025 *
5+00030 * BIF is architecturally derived from
6+00035 * the public domain fig-FORTH model.
7+00040 *
8+00050 * TITLE BIF kernel 16 Feb 89
9+00070 OPT MEX
10+00080 INCLUDE BIFU.INC
11+00090 ORG $1200 DEBIF: $3F00
12+00100 INCLUDE BIF.M
13+00110 INCLUDE BIFDP.ASM
14+00110 INCLUDE BIFST.ASM
15+00120 SETDP VDP COLD loads DP
16+01000 *
17+01001 FCC '@' name
18+01002 FCB 1 name length, usage (NFA)
19+01003 FCB MFORE type/allocation MODES
20+01004 FDB WARM-CFAOFF previous link in allocation
21+01005 FDB BIF+2 owning vocabulary
22+01006 FDB EQ-CFAOFF left link in tree
23+01007 FDB AND-CFAOFF right link in tree
24+01010 FETCH LDD [,U] from [tos] to stack
25+01011 STD ,U
26+01012 NEXT
27+01013 *
28+01014 FCC '!'
29+01015 FCB 1
30+01016 FCB MFORE
31+01017 FDB FETCH-CFAOFF
32+01030 FDB BIF+2
33+01040 FDB NUBLK-CFAOFF
34+01050 FDB STOCSP-CFAOFF
35+01060 STORE LDD 2,U from stack to [top]
36+01070 STD [,U]
37+01080 LEAU 4,U
38+01090 NEXT
39+01095 *
40+01100 FCC 'LIT'
41+01110 FCB MCOMP.OR.3
42+01120 FCB MFORE
43+01130 FDB STORE-CFAOFF
44+01140 FDB BIF+2
45+01150 FDB 0 * LIST-CFAOFF
46+01160 FDB 0
47+01170 LIT LDD ,Y++ push literal from code
48+01180 PSHU D
49+01190 NEXT
50+01200 *
51+01210 FCC 'DLIT'
52+01220 FCB MCOMP.OR.4
53+01230 FCB MFORE
54+01240 FDB LIT-CFAOFF
55+01250 FDB BIF+2
56+01260 FDB 0
57+01270 FDB 0
58+01280 * push double literal from code
59+01290 DLIT LDD ,Y++
60+01300 LDX ,Y++
61+01310 PSHU D,X
62+01320 NEXT
63+01330 *
64+01340 FCC 'EXECUTE'
65+01350 FCB MCOMP.OR.7
66+01360 FCB MFORE
67+01370 FDB DLIT-CFAOFF
68+01380 FDB BIF+2
69+01390 FDB 0
70+01400 FDB 0
71+01410 * EXECUTE cfa on stack
72+01420 EXEC LDX ,U++
73+01430 BEQ *+4
74+01440 JMP ,X
75+01450 LDD #9
76+01460 PSHU D
77+01462 JMP ERROR
78+01464 *
79+01466 FCC '1BRANCH'
80+01468 FCB MCOMP.OR.7
81+01470 FCB MFORE
82+01472 FDB EXEC-CFAOFF
83+01474 FDB BIF+2
84+01476 FDB 0
85+01478 FDB 0
86+01480 TBR LDD ,U++
87+01482 BNE BRANCH
88+01484 LEAY 2,Y
89+01486 NEXT
90+01488 *
91+01490 FCC 'BRANCH'
92+01500 FCB MCOMP.OR.6
93+01510 FCB MFORE
94+01520 FDB TBR-CFAOFF
95+01530 FDB BIF+2
96+01540 FDB 0
97+01550 FDB 0
98+01560 BRANCH LDD ,Y++
99+01570 LEAY D,Y
100+01580 NEXT
101+01590 *
102+01600 FCC '0BRANCH'
103+01610 FCB MCOMP.OR.7
104+01620 FCB MFORE
105+01630 FDB BRANCH-CFAOFF
106+01640 FDB BIF+2
107+01650 FDB 0
108+01660 FDB 0
109+01670 ZBR LDD ,U++
110+01680 BEQ BRANCH
111+01690 LEAY 2,Y
112+01700 NEXT
113+01710 *
114+01720 FCC '(LOOP)'
115+01730 FCB MCOMP.OR.6
116+01740 FCB MFORE
117+01750 FDB ZBR-CFAOFF
118+01760 FDB BIF+2
119+01770 FDB 0
120+01780 FDB 0
121+01790 XLOOP LDD #1
122+01800 ADDD ,S
123+01810 STD ,S
124+01820 SUBD 2,S
125+01830 BLT BRANCH
126+01840 XLOOPN LEAY 2,Y
127+01850 LEAS 4,S
128+01860 NEXT
129+01870 *
130+01880 FCC '(+LOOP)'
131+01890 FCB MCOMP.OR.7
132+01900 FCB MFORE
133+01910 FDB XLOOP-CFAOFF
134+01920 FDB BIF+2
135+01930 FDB 0
136+01940 FDB 0
137+01950 XPLOOP LDD ,U++ inc val
138+01960 BPL XLOOP+3
139+01970 ADDD ,S
140+01980 STD ,S
141+01990 SUBD 2,S
142+02000 BGT BRANCH
143+02010 BRA XLOOPN
144+02020 *
145+02030 FCC '(DO)'
146+02040 FCB 4
147+02050 FCB MFORE
148+02060 FDB XPLOOP-CFAOFF
149+02070 FDB BIF+2
150+02080 FDB 0
151+02090 FDB 0
152+02100 XDO PULU D,X
153+02110 PSHS D,X
154+02120 NEXT
155+02130 *
156+02140 FCC 'I'
157+02150 FCB 1
158+02160 FCB MFORE
159+02170 FDB XDO-CFAOFF
160+02180 FDB BIF+2
161+02190 FDB HLD-CFAOFF
162+02200 FDB IDDOT-CFAOFF
163+02210 I LDD ,S
164+02220 PSHU D
165+02222 NEXT
166+02224 *
167+02226 FCC 'J'
168+02228 FCB 1
169+02230 FCB MFORE
170+02232 FDB I-CFAOFF
171+02234 FDB BIF+2
172+02236 FDB IPCOM-CFAOFF
173+02238 FDB 0
174+02240 J LDD 4,S
175+02242 PSHU D
176+02244 NEXT
177+02246 *
178+02250 FCC 'DIGIT'
179+02260 FCB 5
180+02270 FCB MFORE
181+02280 FDB J-CFAOFF
182+02290 FDB BIF+2
183+02300 FDB DEC-CFAOFF
184+02310 FDB DLITER-CFAOFF
185+02320 DIGIT LDB 3,U
186+02330 CMPB #'9
187+02340 BLS DIGITX+4
188+02350 CMPB #'A
189+02360 BLO DIGITN
190+02370 CMPB #'Z
191+02380 BLS DIGITX+2
192+02390 CMPB #'a
193+02400 BLO DIGITN
194+02410 CMPB #'z
195+02420 BHI DIGITN
196+02430 DIGITX SUBB #'a-'Z-1
197+02440 SUBB #'A-'9-1
198+02450 SUBB #'0
199+02460 CMPB 1,U
200+02470 BHS DIGITN
201+02480 CLRA
202+02490 STD 2,U
203+02500 LDD #-1
204+02510 DIGITL STD ,U
205+02520 NEXT
206+02530 DIGITN LEAU 2,U
207+02540 LDD #0
208+02550 BRA DIGITL
209+02560 *
210+02570 FCC '(FIND)'
211+02580 FCB 6
212+02590 FCB MFORE
213+02600 FDB DIGIT-CFAOFF
214+02610 FDB BIF+2
215+02620 FDB IABORT-CFAOFF
216+02630 FDB XMACH-CFAOFF
217+02640 * search vocabulary adr2 for (adr1)
218+02650 PFIND LDD ,U valid?
219+02660 BEQ PFINDX
220+02670 PFINDL DOCOL
221+02680 FDB PREF
222+02690 FDB XMACH
223+02700 LEAU 2,U
224+02710 LDX [,U] NULL link?
225+02720 BEQ PFINDN
226+02730 LDB ,X
227+02740 ANDB #MHID smudged?
228+02750 BEQ PFINDY
229+02760 LEAX RTOFF,X deeper
230+02770 STX ,U
231+02780 BRA PFINDL
232+02790 PFINDY LDX #-1
233+02800 PFINDN LDD ,U
234+02810 STX ,U
235+02820 PFINDX STD 2,U
236+02830 NEXT
237+02990 *
238+03000 FCC 'ENCLOSE'
239+03010 FCB 7
240+03020 FCB MFORE
241+03030 FDB PFIND-CFAOFF
242+03040 FDB BIF+2
243+03050 FDB EMTBUF-CFAOFF
244+03060 FDB 0
245+03070 * adr1 c --- adr2 len
246+03080 ENCLOS LDX 2,U
247+03100 ENCLLD LDB ,X+ delimiter
248+03110 BEQ ENCL0
249+03120 CMPB 1,U
250+03130 BEQ ENCLLD
251+03133 ENCL0 LEAX -1,X
252+03140 STX 2,U
253+03150 ENCLLW LDB ,X+ scan word
254+03160 BEQ ENCLCA
255+03170 CMPB 1,U
256+03180 BNE ENCLLW
257+03190 ENCLCA TFR X,D length
258+03195 SUBD #1
259+03200 SUBD 2,U
260+03220 STD ,U
261+03230 NEXT
262+03240 *
263+03250 FCC 'LITERAL'
264+03260 FCB MIMM.OR.7
265+03270 FCB MFORE
266+03280 FDB ENCLOS-CFAOFF
267+03290 FDB BIF+2
268+03300 FDB LIT-CFAOFF
269+03310 FDB LOAD-CFAOFF
270+03320 * compile a literal
271+03330 LITER BSR LITERS
272+03340 LDD #LIT
273+03350 LITERB STD ,Y++
274+03360 PULU D
275+03370 STD ,Y++
276+03380 STY UDP,X
277+03390 PULS Y
278+03400 JMP HERERR
279+03405 *
280+03410 LITERS LDX <UP
281+03412 LDB USTATE+1,X
282+03414 ANDB #SCOMP
283+03416 PULS D no CC
284+03418 BNE *+4 compiling?
285+03420 NEXT no
286+03422 PSHS Y
287+03424 LDY UDP,X
288+03426 EXG D,PC return
289+03430 *
290+03435 FCC 'DLITERAL'
291+03440 FCB MIMM.OR.8
292+03450 FCB MFORE
293+03460 FDB LITER-CFAOFF
294+03470 FDB BIF+2
295+03480 FDB DLIT-CFAOFF
296+03490 FDB DMINUS-CFAOFF
297+03500 * compile a 32 bit constant
298+03510 DLITER BSR LITERS
299+03540 LDD #DLIT
300+03550 STD ,Y++
301+03560 PULU D
302+03570 BRA LITERB
303+03630 *
304+08210 INCLUDE BIFB.ASM
305+08220 INCLUDE BIF1.ASM
306+08230 INCLUDE BIF1B.ASM
307+08240 INCLUDE BIF2.ASM
308+08250 INCLUDE BIF2B.ASM
309+08260 INCLUDE BIF3.ASM
310+08270 INCLUDE BIF3B.ASM
311+08280 INCLUDE BIF4.ASM
312+08285 INCLUDE BIF4B.ASM
313+08290 INCLUDE BIF5.ASM
314+08295 INCLUDE BIF5B.ASM
315+08300 INCLUDE BIF6.ASM
316+08310 INCLUDE BIF6B.ASM
317+08320 INCLUDE BIF7.ASM
318+08330 INCLUDE BIF7B.ASM
319+09000 END
--- a/cross_v/BIF.M
+++ b/cross_v/BIF.M
@@ -1 +1,78 @@
1-00010 * EQUates and MACRO definitions for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 01000 * 01010 * JMP to next icode word 01020 NEXT MACRO 01030 JMP [,Y++] 01040 ENDM 01050 * 01053 * offset from name field to mode field 01056 MFAOFF EQU 1 01057 * length of symbols, must be 2^n for mask 01058 NLMASK EQU $1F 01060 * offset to previous allocation link 01070 LFAOFF EQU MFAOFF+1 01080 * offset to owning VOCABULARY (genesis) link 01090 GFAOFF EQU LFAOFF+2 01100 LFTOFF EQU GFAOFF+2 left child link 01110 RTOFF EQU GFAOFF+4 right child link 01120 * offset to code field 01130 CFAOFF EQU GFAOFF+6 01140 * offset to parameter field (past Direct Page jump) 01150 PFAOFF EQU CFAOFF+2 01160 * All links are relative to the name field (NFA) 01170 * Use PFAOFF (or PFA) with ;CODE! 01320 * usage and name length share a byte (name length < 32). 01330 * foreward blocks marked in the mode byte 01340 * usage and mode bits 01350 MFORE EQU $80 part of FORWARD reference block (in mode byte -- MFA) 01360 MCOMP EQU $80 compile only (in length byte -- NFA) 01370 MIMM EQU $40 precedence is IMMEDIATE execution (in length byte -- NFA) 01380 MHID EQU $20 SMUDGEd definition (in length byte -- NFA) 01390 * 01400 * initiate an icode list 01410 DOCOL MACRO 01420 JSR <XCOL 01430 ENDM 01440 * 01450 DOVAR MACRO 01460 JSR <XVAR 01470 ENDM 01480 * 01490 DOCON MACRO 01500 JSR <XCON 01510 ENDM 01520 * 01530 DOUSER MACRO 01540 JSR <XUSER 01550 ENDM 01560 * 01570 DO1ARR MACRO 01580 JSR <X1ARR 01590 ENDM 01600 * 01610 DOUCON MACRO 01620 JSR <XUCON 01630 ENDM 01640 * 01650 DOVOC MACRO 01660 JSR <XVOC 01670 ENDM 01680 * 02000 * add D to top of stack 02010 ADDTOP MACRO 02020 ADDD ,U 02030 STD ,U 02040 JMP [,Y++] 02050 ENDM 02060 *
\ No newline at end of file
1+00010 * EQUates and MACRO definitions for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+01000 *
4+{ bifc_vm.c:
5+01010 * JMP to next icode word
6+01020 NEXT MACRO
7+01030 JMP [,Y++]
8+01040 ENDM
9+01050 *
10+}
11+{ symbol.h:
12+01053 * offset from name field to mode field
13+01056 MFAOFF EQU 1
14+01057 * length of symbols, must be 2^n for mask
15+01058 NLMASK EQU $1F
16+01060 * offset to previous allocation link
17+01070 LFAOFF EQU MFAOFF+1
18+01080 * offset to owning VOCABULARY (genesis) link
19+01090 GFAOFF EQU LFAOFF+2
20+01100 LFTOFF EQU GFAOFF+2 left child link
21+01110 RTOFF EQU GFAOFF+4 right child link
22+01120 * offset to code field
23+01130 CFAOFF EQU GFAOFF+6
24+01140 * offset to parameter field (past Direct Page jump)
25+01150 PFAOFF EQU CFAOFF+2
26+01160 * All links are relative to the name field (NFA)
27+01170 * Use PFAOFF (or PFA) with ;CODE!
28+01320 * usage and name length share a byte (name length < 32).
29+01330 * foreward blocks marked in the mode byte
30+01340 * usage and mode bits
31+01350 MFORE EQU $80 part of FORWARD reference block (in mode byte -- MFA)
32+01360 MCOMP EQU $80 compile only (in length byte -- NFA)
33+01370 MIMM EQU $40 precedence is IMMEDIATE execution (in length byte -- NFA)
34+01380 MHID EQU $20 SMUDGEd definition (in length byte -- NFA)
35+01390 *
36+}
37+{ bifc_vm.c
38+01400 * initiate an icode list
39+01410 DOCOL MACRO
40+01420 JSR <XCOL
41+01430 ENDM
42+01440 *
43+}
44+{ symbol.c
45+01450 DOVAR MACRO
46+01460 JSR <XVAR
47+01470 ENDM
48+01480 *
49+01490 DOCON MACRO
50+01500 JSR <XCON
51+01510 ENDM
52+01520 *
53+01530 DOUSER MACRO
54+01540 JSR <XUSER
55+01550 ENDM
56+01560 *
57+01570 DO1ARR MACRO
58+01580 JSR <X1ARR
59+01590 ENDM
60+01600 *
61+01610 DOUCON MACRO
62+01620 JSR <XUCON
63+01630 ENDM
64+01640 *
65+01650 DOVOC MACRO
66+01660 JSR <XVOC
67+01670 ENDM
68+01680 *
69+}
70+{ unused
71+02000 * add D to top of stack
72+02010 ADDTOP MACRO
73+02020 ADDD ,U
74+02030 STD ,U
75+02040 JMP [,Y++]
76+02050 ENDM
77+02060 *
78+}
--- a/cross_v/BIF1.ASM
+++ b/cross_v/BIF1.ASM
@@ -1 +1,438 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 01000 FCC 'MOVE' 01010 FCB 4 01020 FCB MFORE 01030 FDB PREF-CFAOFF 01040 FDB BIF+2 01050 FDB MINUS-CFAOFF 01060 FDB NFA-CFAOFF 01070 MOVE LDD ,U++ count=0? 01080 BEQ MOVEX 01090 PSHS Y,U 01100 LDY ,U 01110 LDU 2,U 01120 MOVELP PULU X 01130 STX ,Y++ 01140 SUBD #1 01150 BNE MOVELP 01160 PULS Y,U 01170 MOVEX LEAU 4,U 01180 NEXT 01190 * 01200 FCC 'CMOVE' 01210 FCB 5 01220 FCB MFORE 01225 FDB MOVE-CFAOFF 01230 FDB BIF+2 01240 FDB CFA-CFAOFF 01250 FDB COMP-CFAOFF 01260 CMOVE LDD #0 01270 SUBD ,U++ 01280 PSHS A,Y 01290 PULU X,Y 01300 BEQ CMOVEX 01310 CMOVEL LDA ,Y+ 01320 STA ,X+ 01330 INCB 01340 BNE CMOVEL 01350 INC ,S 01360 BNE CMOVEL 01370 CMOVEX PULS A,Y 01380 NEXT 01390 * 01400 FCC 'U*' 01410 FCB 2 01420 FCB MFORE 01430 FDB CMOVE-CFAOFF 01440 FDB BIF+2 01450 FDB TOG-CFAOFF 01460 FDB UPDATE-CFAOFF 01470 USTAR LEAS -4,S 01480 LDA 1,U LEAST 01490 LDB 3,U 01500 MUL 01510 STD 2,S 01520 LDA ,U most 01530 LDB 2,U 01540 MUL 01550 STD ,S 01560 LDD 1,U inner 01570 MUL 01580 ADDD 1,S 01590 BCC *+4 01600 INC ,S 01605 STD 1,S 01610 LDA ,U 01620 LDB 3,U 01630 MUL 01640 ADDD 1,S 01650 BCC *+4 01660 INC ,S 01670 STD 1,S 01680 PULS D,X 01690 STD ,U 01700 STX 2,U 01710 NEXT 01720 * 01730 FCC 'U/' 01740 FCB 2 01750 FCB MFORE 01760 FDB USTAR-CFAOFF 01770 FDB BIF+2 01780 FDB 0 01790 FDB 0 01800 USLASH LDA #17 bit ct 01810 PSHS A 01820 LDD 2,U dividend 01830 USLDIV CMPD ,U divisor 01840 BHS USLSUB 01850 ANDCC #.NOT.1 01860 BRA USLBIT 01870 USLSUB SUBD ,U 01880 ORCC #1 quotient, 01890 USLBIT ROL 5,U save it 01900 ROL 4,U 01910 DEC ,S more bits? 01920 BEQ USLR 01930 ROLB remainder 01940 ROLA 01950 BCC USLDIV 01960 BRA USLSUB 01970 USLR LEAS 1,S 01980 LEAU 2,U 01990 LDX 2,U 02000 STD 2,U 02010 STX ,U 02020 NEXT 02030 * 02200 FCC 'AND' 02210 FCB 3 02220 FCB MFORE 02230 FDB USLASH-CFAOFF 02240 FDB BIF+2 02250 FDB ABS-CFAOFF 02260 FDB BACK-CFAOFF 02270 AND PULU D 02280 ANDB 1,U 02290 ANDA ,U 02300 STD ,U 02310 NEXT 02320 * 02330 FCC 'OR' 02340 FCB 2 02350 FCB MFORE 02360 FDB AND-CFAOFF 02370 FDB BIF+2 02380 FDB OCT-CFAOFF 02390 FDB OUT-CFAOFF 02400 OR PULU D 02410 ORB 1,U 02420 ORA ,U 02430 STD ,U 02440 NEXT 02450 * 02460 FCC 'XOR' 02470 FCB 3 02480 FCB MFORE 02490 FDB OR-CFAOFF 02500 FDB BIF+2 02510 FDB 0 02520 FDB 0 02530 XOR PULU D 02540 EORB 1,U 02550 EORA ,U 02560 STD ,U 02570 NEXT 02580 * 02590 FCC 'SP@' 02600 FCB 3 02610 FCB MFORE 02620 FDB XOR-CFAOFF 02630 FDB BIF+2 02640 FDB SPSTO-CFAOFF 02660 FDB 0 02670 SPFEH TFR U,X 02680 PSHU X 02690 NEXT 02700 * 02710 FCC 'SP!' 02720 FCB 3 02730 FCB MFORE 02740 FDB SPFEH-CFAOFF 02750 FDB BIF+2 02760 FDB 0 02770 FDB 0 02780 SPSTO LDX <UP 02790 LDU US0,X 02793 CLR ,U hole 02796 CLR 1,U 02800 NEXT 02810 * 02820 FCC 'RP!' 02830 FCB 3 02840 FCB MFORE 02850 FDB SPSTO-CFAOFF 02860 FDB BIF+2 02870 FDB 0 02880 FDB 0 02890 RPSTO LDX <UP 02900 LDS UR0,X 02903 CLR ,S hole 02906 CLR 1,S 02910 NEXT 02920 * 02930 FCC ';S' 02940 FCB MIMM|2 02950 FCB MFORE 02960 FDB RPSTO-CFAOFF 02970 FDB BIF+2 02980 FDB 0 02990 FDB 0 03000 SEMIS PULS Y un-nest 03010 NEXT 03020 * 03030 FCC 'LEAVE' 03040 FCB MCOMP|5 03050 FCB MFORE 03060 FDB SEMIS-CFAOFF 03070 FDB BIF+2 03080 FDB LATEST-CFAOFF 03090 FDB LFA-CFAOFF 03100 LEAVE LDD ,S index 03110 STD 2,S to limit 03120 NEXT 03130 * 03140 FCC '>R' 03150 FCB MCOMP|2 03160 FCB MFORE 03170 FDB LEAVE-CFAOFF 03180 FDB BIF+2 03190 FDB GT-CFAOFF 03200 FDB QDOT-CFAOFF 03210 TOR PULU D 03220 PSHS D 03230 NEXT 03240 * 03250 FCC 'R>' 03260 FCB MCOMP|2 03270 FCB MFORE 03280 FDB TOR-CFAOFF 03290 FDB BIF+2 03300 FDB R-CFAOFF 03310 FDB REPEAT-CFAOFF 03320 RFROM JMP <XVAR not JSR! 03350 * 03360 FCC 'R' 03370 FCB 1 03380 FCB MFORE 03390 FDB RFROM-CFAOFF 03400 FDB BIF+2 03410 FDB QUIT-CFAOFF 03420 FDB RNUM-CFAOFF 03430 R JMP I 03431 * 03432 FCC '=' 03433 FCB 1 03434 FCB MFORE 03435 FDB R-CFAOFF 03436 FDB BIF+2 03437 FDB LT-CFAOFF 03438 FDB QCOMP-CFAOFF 03439 EQ PULU D 03440 CMPD ,U 03441 BEQ TRUE 03442 BRA FALSE 03451 * 03452 FCC '<' 03453 FCB 1 03454 FCB MFORE 03455 FDB EQ-CFAOFF 03456 FDB BIF+2 03457 FDB SCODE-CFAOFF 03458 FDB BEGHSH-CFAOFF 03459 LT LDD 2,U 03460 CMPD ,U++ 03461 BLT TRUE 03462 BRA FALSE 03463 * 03490 FCC '0=' 03491 FCB 2 03492 FCB MFORE 03493 FDB LT-CFAOFF 03494 FDB BIF+2 03500 FDB 0 03510 FDB ONE-CFAOFF 03520 ZEQ LDD ,U 03530 BNE FALSE 03540 TRUE LDD #-1 03550 STD ,U 03560 NEXT 03570 * 03580 FCC '0<' 03590 FCB 2 03600 FCB MFORE 03610 FDB ZEQ-CFAOFF 03620 FDB BIF+2 03630 FDB ZERO-CFAOFF 03640 FDB ZEQ-CFAOFF 03650 ZLESS LDA ,U 03660 BMI TRUE 03665 FALSE LDD #0 03670 STD ,U 03680 NEXT 03681 * 03682 FCC '>' 03683 FCB 1 03684 FCB MFORE 03685 FDB ZLESS-CFAOFF 03686 FDB BIF+2 03687 FDB 0 03688 FDB TOPRT-CFAOFF 03689 GT LDD 2,U 03690 CMPD ,U++ 03691 BGT TRUE 03692 BRA FALSE 03693 * 03700 FCC '+' 03710 FCB 1 03720 FCB MFORE 03730 FDB GT-CFAOFF 03740 FDB BIF+2 03750 FDB PAREN-CFAOFF 03760 FDB SLASH-CFAOFF 03770 ADD PULU D 03780 ADDTOP 03810 * 03820 FCC '-' 03830 FCB 1 03840 FCB MFORE 03850 FDB ADD-CFAOFF 03860 FDB BIF+2 03870 FDB 0 03880 FDB 0 03890 SUB LDD 2,U 03900 SUBD ,U++ 03910 STD ,U 03920 NEXT 03930 * 03940 FCC 'D+' 03950 FCB 2 03960 FCB MFORE 03970 FDB SUB-CFAOFF 03980 FDB BIF+2 03990 FDB CONST-CFAOFF 04000 FDB DABS-CFAOFF 04010 DADD LDD 6,U 04020 ADDD 2,U 04030 STD 6,U 04040 LDD 4,U 04050 ADCB 1,U 04060 ADCA ,U 04070 LEAU 4,U 04080 STD ,U 04090 NEXT 04100 * 04120 FCC 'D-' 04130 FCB 2 04140 FCB MFORE 04150 FDB DADD-CFAOFF 04160 FDB BIF+2 04170 FDB DCHS-CFAOFF 04180 FDB DDOT-CFAOFF 04190 DSUB LDD 6,U 04200 SUBD 2,U 04210 STD 6,U 04220 LDD 4,U 04230 SBCB 1,U 04240 SBCA ,U 04250 LEAU 4,U 04260 STD ,U 04270 NEXT 04280 * 04290 FCC 'MINUS' 04300 FCB 5 04310 FCB MFORE 04320 FDB DSUB-CFAOFF 04330 FDB BIF+2 04340 FDB 0 04350 FDB MOD-CFAOFF 04360 MINUS LDD #0 04370 SUBD ,U 04380 STD ,U 04390 NEXT 04400 * 04410 FCC 'DMINUS' 04420 FCB 6 04430 FCB MFORE 04440 FDB MINUS-CFAOFF 04450 FDB BIF+2 04460 FDB 0 04470 FDB 0 04480 DMINUS LDD #0 04490 SUBD 2,U 04500 STD 2,U 04510 LDD #0 04520 SBCB 1,U 04530 SBCA ,U 04570 STD ,U 04580 NEXT 04590 * 04600 FCC 'OVER' 04610 FCB 4 04620 FCB MFORE 04630 FDB DMINUS-CFAOFF 04640 FDB BIF+2 04650 FDB OR-CFAOFF 04660 FDB PFA-CFAOFF 04670 OVER LDD 2,U 04680 PSHU D 04690 NEXT 04700 * 04710 FCC 'DROP' 04720 FCB 4 04730 FCB MFORE 04740 FDB OVER-CFAOFF 04750 FDB BIF+2 04760 FDB DPL-CFAOFF 04770 FDB EMIT-CFAOFF 04780 DROP LEAU 2,U 04790 NEXT 04800 * 04810 FCC 'SWAP' 04820 FCB 4 04830 FCB MFORE 04840 FDB DROP-CFAOFF 04850 FDB BIF+2 04860 FDB ROT-CFAOFF 04870 FDB VAR-CFAOFF 04880 SWAP PULU D,X 04890 PSHU D 04900 PSHU X 04910 NEXT 04920 * 04930 FCC 'DUP' 04940 FCB 3 04940 FCB MFORE 04950 FDB SWAP-CFAOFF 04960 FDB BIF+2 04970 FDB 0 * DUMP-CFAOFF 04980 FDB ELSE-CFAOFF 04990 DUP LDD ,U 05000 PSHU D 05010 NEXT 05020 * 05030 FCC '+!' 05040 FCB 2 05050 FCB MFORE 05060 FDB DUP-CFAOFF 05070 FDB BIF+2 05080 FDB 0 05090 FDB 0 05100 ADDSTO PULU X 05110 LDD ,X 05120 ADDD ,U++ 05130 STD ,X 05140 NEXT 05150 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+01000 FCC 'MOVE'
5+01010 FCB 4
6+01020 FCB MFORE
7+01030 FDB PREF-CFAOFF
8+01040 FDB BIF+2
9+01050 FDB MINUS-CFAOFF
10+01060 FDB NFA-CFAOFF
11+01070 MOVE LDD ,U++ count=0?
12+01080 BEQ MOVEX
13+01090 PSHS Y,U
14+01100 LDY ,U
15+01110 LDU 2,U
16+01120 MOVELP PULU X
17+01130 STX ,Y++
18+01140 SUBD #1
19+01150 BNE MOVELP
20+01160 PULS Y,U
21+01170 MOVEX LEAU 4,U
22+01180 NEXT
23+01190 *
24+01200 FCC 'CMOVE'
25+01210 FCB 5
26+01220 FCB MFORE
27+01225 FDB MOVE-CFAOFF
28+01230 FDB BIF+2
29+01240 FDB CFA-CFAOFF
30+01250 FDB COMP-CFAOFF
31+01260 CMOVE LDD #0
32+01270 SUBD ,U++
33+01280 PSHS A,Y
34+01290 PULU X,Y
35+01300 BEQ CMOVEX
36+01310 CMOVEL LDA ,Y+
37+01320 STA ,X+
38+01330 INCB
39+01340 BNE CMOVEL
40+01350 INC ,S
41+01360 BNE CMOVEL
42+01370 CMOVEX PULS A,Y
43+01380 NEXT
44+01390 *
45+01400 FCC 'U*'
46+01410 FCB 2
47+01420 FCB MFORE
48+01430 FDB CMOVE-CFAOFF
49+01440 FDB BIF+2
50+01450 FDB TOG-CFAOFF
51+01460 FDB UPDATE-CFAOFF
52+01470 USTAR LEAS -4,S
53+01480 LDA 1,U LEAST
54+01490 LDB 3,U
55+01500 MUL
56+01510 STD 2,S
57+01520 LDA ,U most
58+01530 LDB 2,U
59+01540 MUL
60+01550 STD ,S
61+01560 LDD 1,U inner
62+01570 MUL
63+01580 ADDD 1,S
64+01590 BCC *+4
65+01600 INC ,S
66+01605 STD 1,S
67+01610 LDA ,U
68+01620 LDB 3,U
69+01630 MUL
70+01640 ADDD 1,S
71+01650 BCC *+4
72+01660 INC ,S
73+01670 STD 1,S
74+01680 PULS D,X
75+01690 STD ,U
76+01700 STX 2,U
77+01710 NEXT
78+01720 *
79+01730 FCC 'U/'
80+01740 FCB 2
81+01750 FCB MFORE
82+01760 FDB USTAR-CFAOFF
83+01770 FDB BIF+2
84+01780 FDB 0
85+01790 FDB 0
86+01800 USLASH LDA #17 bit ct
87+01810 PSHS A
88+01820 LDD 2,U dividend
89+01830 USLDIV CMPD ,U divisor
90+01840 BHS USLSUB
91+01850 ANDCC #.NOT.1
92+01860 BRA USLBIT
93+01870 USLSUB SUBD ,U
94+01880 ORCC #1 quotient,
95+01890 USLBIT ROL 5,U save it
96+01900 ROL 4,U
97+01910 DEC ,S more bits?
98+01920 BEQ USLR
99+01930 ROLB remainder
100+01940 ROLA
101+01950 BCC USLDIV
102+01960 BRA USLSUB
103+01970 USLR LEAS 1,S
104+01980 LEAU 2,U
105+01990 LDX 2,U
106+02000 STD 2,U
107+02010 STX ,U
108+02020 NEXT
109+02030 *
110+02200 FCC 'AND'
111+02210 FCB 3
112+02220 FCB MFORE
113+02230 FDB USLASH-CFAOFF
114+02240 FDB BIF+2
115+02250 FDB ABS-CFAOFF
116+02260 FDB BACK-CFAOFF
117+02270 AND PULU D
118+02280 ANDB 1,U
119+02290 ANDA ,U
120+02300 STD ,U
121+02310 NEXT
122+02320 *
123+02330 FCC 'OR'
124+02340 FCB 2
125+02350 FCB MFORE
126+02360 FDB AND-CFAOFF
127+02370 FDB BIF+2
128+02380 FDB OCT-CFAOFF
129+02390 FDB OUT-CFAOFF
130+02400 OR PULU D
131+02410 ORB 1,U
132+02420 ORA ,U
133+02430 STD ,U
134+02440 NEXT
135+02450 *
136+02460 FCC 'XOR'
137+02470 FCB 3
138+02480 FCB MFORE
139+02490 FDB OR-CFAOFF
140+02500 FDB BIF+2
141+02510 FDB 0
142+02520 FDB 0
143+02530 XOR PULU D
144+02540 EORB 1,U
145+02550 EORA ,U
146+02560 STD ,U
147+02570 NEXT
148+02580 *
149+02590 FCC 'SP@'
150+02600 FCB 3
151+02610 FCB MFORE
152+02620 FDB XOR-CFAOFF
153+02630 FDB BIF+2
154+02640 FDB SPSTO-CFAOFF
155+02660 FDB 0
156+02670 SPFEH TFR U,X
157+02680 PSHU X
158+02690 NEXT
159+02700 *
160+02710 FCC 'SP!'
161+02720 FCB 3
162+02730 FCB MFORE
163+02740 FDB SPFEH-CFAOFF
164+02750 FDB BIF+2
165+02760 FDB 0
166+02770 FDB 0
167+02780 SPSTO LDX <UP
168+02790 LDU US0,X
169+02793 CLR ,U hole
170+02796 CLR 1,U
171+02800 NEXT
172+02810 *
173+02820 FCC 'RP!'
174+02830 FCB 3
175+02840 FCB MFORE
176+02850 FDB SPSTO-CFAOFF
177+02860 FDB BIF+2
178+02870 FDB 0
179+02880 FDB 0
180+02890 RPSTO LDX <UP
181+02900 LDS UR0,X
182+02903 CLR ,S hole
183+02906 CLR 1,S
184+02910 NEXT
185+02920 *
186+02930 FCC ';S'
187+02940 FCB MIMM|2
188+02950 FCB MFORE
189+02960 FDB RPSTO-CFAOFF
190+02970 FDB BIF+2
191+02980 FDB 0
192+02990 FDB 0
193+03000 SEMIS PULS Y un-nest
194+03010 NEXT
195+03020 *
196+03030 FCC 'LEAVE'
197+03040 FCB MCOMP|5
198+03050 FCB MFORE
199+03060 FDB SEMIS-CFAOFF
200+03070 FDB BIF+2
201+03080 FDB LATEST-CFAOFF
202+03090 FDB LFA-CFAOFF
203+03100 LEAVE LDD ,S index
204+03110 STD 2,S to limit
205+03120 NEXT
206+03130 *
207+03140 FCC '>R'
208+03150 FCB MCOMP|2
209+03160 FCB MFORE
210+03170 FDB LEAVE-CFAOFF
211+03180 FDB BIF+2
212+03190 FDB GT-CFAOFF
213+03200 FDB QDOT-CFAOFF
214+03210 TOR PULU D
215+03220 PSHS D
216+03230 NEXT
217+03240 *
218+03250 FCC 'R>'
219+03260 FCB MCOMP|2
220+03270 FCB MFORE
221+03280 FDB TOR-CFAOFF
222+03290 FDB BIF+2
223+03300 FDB R-CFAOFF
224+03310 FDB REPEAT-CFAOFF
225+03320 RFROM JMP <XVAR not JSR!
226+03350 *
227+03360 FCC 'R'
228+03370 FCB 1
229+03380 FCB MFORE
230+03390 FDB RFROM-CFAOFF
231+03400 FDB BIF+2
232+03410 FDB QUIT-CFAOFF
233+03420 FDB RNUM-CFAOFF
234+03430 R JMP I
235+03431 *
236+03432 FCC '='
237+03433 FCB 1
238+03434 FCB MFORE
239+03435 FDB R-CFAOFF
240+03436 FDB BIF+2
241+03437 FDB LT-CFAOFF
242+03438 FDB QCOMP-CFAOFF
243+03439 EQ PULU D
244+03440 CMPD ,U
245+03441 BEQ TRUE
246+03442 BRA FALSE
247+03451 *
248+03452 FCC '<'
249+03453 FCB 1
250+03454 FCB MFORE
251+03455 FDB EQ-CFAOFF
252+03456 FDB BIF+2
253+03457 FDB SCODE-CFAOFF
254+03458 FDB BEGHSH-CFAOFF
255+03459 LT LDD 2,U
256+03460 CMPD ,U++
257+03461 BLT TRUE
258+03462 BRA FALSE
259+03463 *
260+03490 FCC '0='
261+03491 FCB 2
262+03492 FCB MFORE
263+03493 FDB LT-CFAOFF
264+03494 FDB BIF+2
265+03500 FDB 0
266+03510 FDB ONE-CFAOFF
267+03520 ZEQ LDD ,U
268+03530 BNE FALSE
269+03540 TRUE LDD #-1
270+03550 STD ,U
271+03560 NEXT
272+03570 *
273+03580 FCC '0<'
274+03590 FCB 2
275+03600 FCB MFORE
276+03610 FDB ZEQ-CFAOFF
277+03620 FDB BIF+2
278+03630 FDB ZERO-CFAOFF
279+03640 FDB ZEQ-CFAOFF
280+03650 ZLESS LDA ,U
281+03660 BMI TRUE
282+03665 FALSE LDD #0
283+03670 STD ,U
284+03680 NEXT
285+03681 *
286+03682 FCC '>'
287+03683 FCB 1
288+03684 FCB MFORE
289+03685 FDB ZLESS-CFAOFF
290+03686 FDB BIF+2
291+03687 FDB 0
292+03688 FDB TOPRT-CFAOFF
293+03689 GT LDD 2,U
294+03690 CMPD ,U++
295+03691 BGT TRUE
296+03692 BRA FALSE
297+03693 *
298+03700 FCC '+'
299+03710 FCB 1
300+03720 FCB MFORE
301+03730 FDB GT-CFAOFF
302+03740 FDB BIF+2
303+03750 FDB PAREN-CFAOFF
304+03760 FDB SLASH-CFAOFF
305+03770 ADD PULU D
306+03780 ADDTOP
307+03810 *
308+03820 FCC '-'
309+03830 FCB 1
310+03840 FCB MFORE
311+03850 FDB ADD-CFAOFF
312+03860 FDB BIF+2
313+03870 FDB 0
314+03880 FDB 0
315+03890 SUB LDD 2,U
316+03900 SUBD ,U++
317+03910 STD ,U
318+03920 NEXT
319+03930 *
320+03940 FCC 'D+'
321+03950 FCB 2
322+03960 FCB MFORE
323+03970 FDB SUB-CFAOFF
324+03980 FDB BIF+2
325+03990 FDB CONST-CFAOFF
326+04000 FDB DABS-CFAOFF
327+04010 DADD LDD 6,U
328+04020 ADDD 2,U
329+04030 STD 6,U
330+04040 LDD 4,U
331+04050 ADCB 1,U
332+04060 ADCA ,U
333+04070 LEAU 4,U
334+04080 STD ,U
335+04090 NEXT
336+04100 *
337+04120 FCC 'D-'
338+04130 FCB 2
339+04140 FCB MFORE
340+04150 FDB DADD-CFAOFF
341+04160 FDB BIF+2
342+04170 FDB DCHS-CFAOFF
343+04180 FDB DDOT-CFAOFF
344+04190 DSUB LDD 6,U
345+04200 SUBD 2,U
346+04210 STD 6,U
347+04220 LDD 4,U
348+04230 SBCB 1,U
349+04240 SBCA ,U
350+04250 LEAU 4,U
351+04260 STD ,U
352+04270 NEXT
353+04280 *
354+04290 FCC 'MINUS'
355+04300 FCB 5
356+04310 FCB MFORE
357+04320 FDB DSUB-CFAOFF
358+04330 FDB BIF+2
359+04340 FDB 0
360+04350 FDB MOD-CFAOFF
361+04360 MINUS LDD #0
362+04370 SUBD ,U
363+04380 STD ,U
364+04390 NEXT
365+04400 *
366+04410 FCC 'DMINUS'
367+04420 FCB 6
368+04430 FCB MFORE
369+04440 FDB MINUS-CFAOFF
370+04450 FDB BIF+2
371+04460 FDB 0
372+04470 FDB 0
373+04480 DMINUS LDD #0
374+04490 SUBD 2,U
375+04500 STD 2,U
376+04510 LDD #0
377+04520 SBCB 1,U
378+04530 SBCA ,U
379+04570 STD ,U
380+04580 NEXT
381+04590 *
382+04600 FCC 'OVER'
383+04610 FCB 4
384+04620 FCB MFORE
385+04630 FDB DMINUS-CFAOFF
386+04640 FDB BIF+2
387+04650 FDB OR-CFAOFF
388+04660 FDB PFA-CFAOFF
389+04670 OVER LDD 2,U
390+04680 PSHU D
391+04690 NEXT
392+04700 *
393+04710 FCC 'DROP'
394+04720 FCB 4
395+04730 FCB MFORE
396+04740 FDB OVER-CFAOFF
397+04750 FDB BIF+2
398+04760 FDB DPL-CFAOFF
399+04770 FDB EMIT-CFAOFF
400+04780 DROP LEAU 2,U
401+04790 NEXT
402+04800 *
403+04810 FCC 'SWAP'
404+04820 FCB 4
405+04830 FCB MFORE
406+04840 FDB DROP-CFAOFF
407+04850 FDB BIF+2
408+04860 FDB ROT-CFAOFF
409+04870 FDB VAR-CFAOFF
410+04880 SWAP PULU D,X
411+04890 PSHU D
412+04900 PSHU X
413+04910 NEXT
414+04920 *
415+04930 FCC 'DUP'
416+04940 FCB 3
417+04940 FCB MFORE
418+04950 FDB SWAP-CFAOFF
419+04960 FDB BIF+2
420+04970 FDB 0 * DUMP-CFAOFF
421+04980 FDB ELSE-CFAOFF
422+04990 DUP LDD ,U
423+05000 PSHU D
424+05010 NEXT
425+05020 *
426+05030 FCC '+!'
427+05040 FCB 2
428+05050 FCB MFORE
429+05060 FDB DUP-CFAOFF
430+05070 FDB BIF+2
431+05080 FDB 0
432+05090 FDB 0
433+05100 ADDSTO PULU X
434+05110 LDD ,X
435+05120 ADDD ,U++
436+05130 STD ,X
437+05140 NEXT
438+05150 *
--- a/cross_v/BIF1B.ASM
+++ b/cross_v/BIF1B.ASM
@@ -1 +1,243 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 05160 FCC 'TOGGLE' 05170 FCB 6 05180 FCB MFORE 05190 FDB ADDSTO-CFAOFF 05200 FDB BIF+2 05210 FDB TIB-CFAOFF 05220 FDB TYPE-CFAOFF 05230 TOG PULU D,X 05240 EORB ,X 05250 STB ,X 05260 NEXT 05270 * 05280 FCC 'C@' 05290 FCB 2 05300 FCB MFORE 05310 FDB TOG-CFAOFF 05320 FDB BIF+2 05330 FDB BUFFER-CFAOFF 05340 FDB DADD-CFAOFF 05350 CFEH LDB [,U] 05360 CLRA 05370 STD ,U 05380 NEXT 05390 * 05400 FCC 'C!' 05410 FCB 2 05420 FCB MFORE 05430 FDB CFEH-CFAOFF 05440 FDB BIF+2 05450 FDB 0 05460 FDB 0 05470 CSTO LDB 3,U 05480 STB [,U] 05490 LEAU 4,U 05500 NEXT 05510 * 05520 FCC 'ROT' 05530 FCB 3 05540 FCB MFORE 05550 FDB CSTO-CFAOFF 05560 FDB BIF+2 05570 FDB RFROM-CFAOFF 05580 FDB SMUDGE-CFAOFF 05590 ROT PSHS Y 05600 PULU D,X,Y 05610 PSHU D,X 05620 PSHU Y 05630 PULS Y 05640 NEXT 05650 * 05660 FCC 'BACK' back ref 05670 FCB MCOMP.OR.4 05680 FCB MFORE 05690 FDB ROT-CFAOFF 05700 FDB BIF+2 05710 FDB BPBUF-CFAOFF 05720 FDB BEGIN-CFAOFF 05730 BACK LDX <UP 05740 PULU D target 05750 SUBD UDP,X here 05755 SUBD #2 past 05760 PSHU D 05770 JMP COMMA 05780 * 05800 FCC 'NOT' 05810 FCB 3 05820 FCB MFORE 05830 FDB BACK-CFAOFF 05840 FDB BIF+2 05850 FDB NDOT-CFAOFF 05860 FDB 0 05870 NOT LDD ,U 05880 COMB 05890 COMA 05900 STD ,U 05910 NEXT 05920 * 05990 FCC /'/ 06000 FCB MIMM.OR.1 06010 FCB MFORE 06020 FDB NOT-CFAOFF 06030 FDB BIF+2 06040 FDB HASHS-CFAOFF 06050 FDB 0 06055 * ' see fig-FORTH model 06060 TICK DOCOL 06070 FDB DDFIND 06080 FDB DROP 06090 FDB DUP 06100 FDB ZEQ 06110 FDB ZERO 06120 FDB QERR 06130 FDB LITER 06140 FDB SEMIS 06150 * 07000 FCC '-->' 07010 FCB MIMM.OR.3 07020 FCB MFORE 07030 FDB TICK-CFAOFF 07040 FDB BIF+2 07050 FDB PLOOP-CFAOFF 07060 FDB DOT-CFAOFF 07065 * --> see fig-FORTH model 07070 NEXSCR DOCOL 07080 FDB QLOAD 07090 FDB ZERO 07100 FDB IN 07110 FDB STORE 07120 FDB BPSCR 07130 FDB BLK 07140 FDB FETCH 07150 FDB OVER 07160 FDB MOD remaining in screen 07170 FDB SUB 07180 FDB BLK 07190 FDB ADDSTO to next 07200 FDB SEMIS 07290 * 07300 FCC '1ARRAY' 07310 FCB 6 07320 FCB MFORE 07330 FDB NEXSCR-CFAOFF 07340 FDB BIF+2 07350 FDB SUB1-CFAOFF 07360 FDB TBR-CFAOFF 07370 ONEARR DOCOL 07380 FDB CREATE 07390 FDB IPCOM 07400 DO1ARR 07410 FDB XMACH 07415 LDX ,U 07420 CMPX #255 0<el-size<256 07430 BLS ONEARW 07440 ONEARE LDD #$0D 07450 PSHU D 07460 LBRA ERROR 07470 ONEARW LDD 4,U swap 07480 STD ,U 07490 STX 4,U 07500 LDD 2,U last 07510 SUBD ,U first 07520 BLT ONEARE real dimension? 07530 ADDD #1 element count 07540 STD 2,U 07550 PSHU D,X 07560 DOCOL 07570 FDB USTAR 07580 FDB LIT overflow? 07590 FDB $0D 07600 FDB QERR 07610 FDB TOR byte count 07620 FDB COMMA base 07630 FDB COMMA width 07640 FDB CCOMMA element size 07650 FDB RFROM 07660 FDB ALLOT 07670 FDB SMUDGE 07680 FDB SEMIS 07690 * 07700 FCC 'UTILITIES' 07710 FCB MIMM.OR.9 07720 FCB MFORE 07730 FDB ONEARR-CFAOFF 07740 FDB BIF+2 07750 FDB 0 07760 FDB 0 07770 UTIL DOVOC 07780 FDB DPFEH-CFAOFF 07890 * 07900 FCC 'DP@' 07910 FCB 3 07920 FCB MFORE 07930 FDB UTIL-CFAOFF 07940 FDB UTIL+2 07950 FDB 0 07960 FDB 0 07970 DPFEH TFR DP,A 07980 CLRB 07990 PSHU D 07992 NEXT 07994 * 08000 FCC 'DCONSTANT' 08010 FCB 9 08020 FCB MFORE 08030 FDB DPFEH-CFAOFF 08040 FDB BIF+2 08050 FDB 0 08060 FDB 0 08070 DCON DOCOL 08080 FDB CREATE 08090 FDB IPCOM 08100 JSR <XDCON 08110 FDB COMMA 08120 FDB COMMA 08130 FDB SMUDGE 08140 FDB SEMIS 08390 * 08300 FCC 'SWAB' 08310 FCB 4 08320 FCB MFORE 08330 FDB DCON-CFAOFF 08340 FDB BIF+2 08350 FDB 0 08360 FDB SWAN-CFAOFF 08370 SWAB LDD ,U 08380 STB ,U LS byte 08390 STA 1,U MS byte 08400 NEXT 08490 * 08500 FCC 'SWAN' 08510 FCB 4 08520 FCB MFORE 08530 FDB SWAB-CFAOFF 08540 FDB BIF+2 08550 FDB 0 08560 FDB 0 08570 SWAN LDA 1,U 08580 LDB 1,U 08590 LSRA 08600 RORB 08610 LSRA 08620 RORB 08630 LSRA 08640 RORB 08650 LSRA 08660 RORB 08670 STB 1,U 08680 LDA ,U 08690 LDB ,U 08700 LSRA 08710 RORB 08720 LSRA 08730 RORB 08740 LSRA 08750 RORB 08760 LSRA 08770 RORB 08780 STB ,U 08790 NEXT 08890 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+05160 FCC 'TOGGLE'
5+05170 FCB 6
6+05180 FCB MFORE
7+05190 FDB ADDSTO-CFAOFF
8+05200 FDB BIF+2
9+05210 FDB TIB-CFAOFF
10+05220 FDB TYPE-CFAOFF
11+05230 TOG PULU D,X
12+05240 EORB ,X
13+05250 STB ,X
14+05260 NEXT
15+05270 *
16+05280 FCC 'C@'
17+05290 FCB 2
18+05300 FCB MFORE
19+05310 FDB TOG-CFAOFF
20+05320 FDB BIF+2
21+05330 FDB BUFFER-CFAOFF
22+05340 FDB DADD-CFAOFF
23+05350 CFEH LDB [,U]
24+05360 CLRA
25+05370 STD ,U
26+05380 NEXT
27+05390 *
28+05400 FCC 'C!'
29+05410 FCB 2
30+05420 FCB MFORE
31+05430 FDB CFEH-CFAOFF
32+05440 FDB BIF+2
33+05450 FDB 0
34+05460 FDB 0
35+05470 CSTO LDB 3,U
36+05480 STB [,U]
37+05490 LEAU 4,U
38+05500 NEXT
39+05510 *
40+05520 FCC 'ROT'
41+05530 FCB 3
42+05540 FCB MFORE
43+05550 FDB CSTO-CFAOFF
44+05560 FDB BIF+2
45+05570 FDB RFROM-CFAOFF
46+05580 FDB SMUDGE-CFAOFF
47+05590 ROT PSHS Y
48+05600 PULU D,X,Y
49+05610 PSHU D,X
50+05620 PSHU Y
51+05630 PULS Y
52+05640 NEXT
53+05650 *
54+05660 FCC 'BACK' back ref
55+05670 FCB MCOMP.OR.4
56+05680 FCB MFORE
57+05690 FDB ROT-CFAOFF
58+05700 FDB BIF+2
59+05710 FDB BPBUF-CFAOFF
60+05720 FDB BEGIN-CFAOFF
61+05730 BACK LDX <UP
62+05740 PULU D target
63+05750 SUBD UDP,X here
64+05755 SUBD #2 past
65+05760 PSHU D
66+05770 JMP COMMA
67+05780 *
68+05800 FCC 'NOT'
69+05810 FCB 3
70+05820 FCB MFORE
71+05830 FDB BACK-CFAOFF
72+05840 FDB BIF+2
73+05850 FDB NDOT-CFAOFF
74+05860 FDB 0
75+05870 NOT LDD ,U
76+05880 COMB
77+05890 COMA
78+05900 STD ,U
79+05910 NEXT
80+05920 *
81+05990 FCC /'/
82+06000 FCB MIMM.OR.1
83+06010 FCB MFORE
84+06020 FDB NOT-CFAOFF
85+06030 FDB BIF+2
86+06040 FDB HASHS-CFAOFF
87+06050 FDB 0
88+06055 * ' see fig-FORTH model
89+06060 TICK DOCOL
90+06070 FDB DDFIND
91+06080 FDB DROP
92+06090 FDB DUP
93+06100 FDB ZEQ
94+06110 FDB ZERO
95+06120 FDB QERR
96+06130 FDB LITER
97+06140 FDB SEMIS
98+06150 *
99+07000 FCC '-->'
100+07010 FCB MIMM.OR.3
101+07020 FCB MFORE
102+07030 FDB TICK-CFAOFF
103+07040 FDB BIF+2
104+07050 FDB PLOOP-CFAOFF
105+07060 FDB DOT-CFAOFF
106+07065 * --> see fig-FORTH model
107+07070 NEXSCR DOCOL
108+07080 FDB QLOAD
109+07090 FDB ZERO
110+07100 FDB IN
111+07110 FDB STORE
112+07120 FDB BPSCR
113+07130 FDB BLK
114+07140 FDB FETCH
115+07150 FDB OVER
116+07160 FDB MOD remaining in screen
117+07170 FDB SUB
118+07180 FDB BLK
119+07190 FDB ADDSTO to next
120+07200 FDB SEMIS
121+07290 *
122+07300 FCC '1ARRAY'
123+07310 FCB 6
124+07320 FCB MFORE
125+07330 FDB NEXSCR-CFAOFF
126+07340 FDB BIF+2
127+07350 FDB SUB1-CFAOFF
128+07360 FDB TBR-CFAOFF
129+07370 ONEARR DOCOL
130+07380 FDB CREATE
131+07390 FDB IPCOM
132+07400 DO1ARR
133+07410 FDB XMACH
134+07415 LDX ,U
135+07420 CMPX #255 0<el-size<256
136+07430 BLS ONEARW
137+07440 ONEARE LDD #$0D
138+07450 PSHU D
139+07460 LBRA ERROR
140+07470 ONEARW LDD 4,U swap
141+07480 STD ,U
142+07490 STX 4,U
143+07500 LDD 2,U last
144+07510 SUBD ,U first
145+07520 BLT ONEARE real dimension?
146+07530 ADDD #1 element count
147+07540 STD 2,U
148+07550 PSHU D,X
149+07560 DOCOL
150+07570 FDB USTAR
151+07580 FDB LIT overflow?
152+07590 FDB $0D
153+07600 FDB QERR
154+07610 FDB TOR byte count
155+07620 FDB COMMA base
156+07630 FDB COMMA width
157+07640 FDB CCOMMA element size
158+07650 FDB RFROM
159+07660 FDB ALLOT
160+07670 FDB SMUDGE
161+07680 FDB SEMIS
162+07690 *
163+07700 FCC 'UTILITIES'
164+07710 FCB MIMM.OR.9
165+07720 FCB MFORE
166+07730 FDB ONEARR-CFAOFF
167+07740 FDB BIF+2
168+07750 FDB 0
169+07760 FDB 0
170+07770 UTIL DOVOC
171+07780 FDB DPFEH-CFAOFF
172+07890 *
173+07900 FCC 'DP@'
174+07910 FCB 3
175+07920 FCB MFORE
176+07930 FDB UTIL-CFAOFF
177+07940 FDB UTIL+2
178+07950 FDB 0
179+07960 FDB 0
180+07970 DPFEH TFR DP,A
181+07980 CLRB
182+07990 PSHU D
183+07992 NEXT
184+07994 *
185+08000 FCC 'DCONSTANT'
186+08010 FCB 9
187+08020 FCB MFORE
188+08030 FDB DPFEH-CFAOFF
189+08040 FDB BIF+2
190+08050 FDB 0
191+08060 FDB 0
192+08070 DCON DOCOL
193+08080 FDB CREATE
194+08090 FDB IPCOM
195+08100 JSR <XDCON
196+08110 FDB COMMA
197+08120 FDB COMMA
198+08130 FDB SMUDGE
199+08140 FDB SEMIS
200+08390 *
201+08300 FCC 'SWAB'
202+08310 FCB 4
203+08320 FCB MFORE
204+08330 FDB DCON-CFAOFF
205+08340 FDB BIF+2
206+08350 FDB 0
207+08360 FDB SWAN-CFAOFF
208+08370 SWAB LDD ,U
209+08380 STB ,U LS byte
210+08390 STA 1,U MS byte
211+08400 NEXT
212+08490 *
213+08500 FCC 'SWAN'
214+08510 FCB 4
215+08520 FCB MFORE
216+08530 FDB SWAB-CFAOFF
217+08540 FDB BIF+2
218+08550 FDB 0
219+08560 FDB 0
220+08570 SWAN LDA 1,U
221+08580 LDB 1,U
222+08590 LSRA
223+08600 RORB
224+08610 LSRA
225+08620 RORB
226+08630 LSRA
227+08640 RORB
228+08650 LSRA
229+08660 RORB
230+08670 STB 1,U
231+08680 LDA ,U
232+08690 LDB ,U
233+08700 LSRA
234+08710 RORB
235+08720 LSRA
236+08730 RORB
237+08740 LSRA
238+08750 RORB
239+08760 LSRA
240+08770 RORB
241+08780 STB ,U
242+08790 NEXT
243+08890 *
--- a/cross_v/BIF2.ASM
+++ b/cross_v/BIF2.ASM
@@ -1 +1,392 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 01000 FCC '1+' 01010 FCB 2 01020 FCB MFORE 01030 FDB SWAN-CFAOFF 01040 FDB BIF+2 01050 FDB ZLESS-CFAOFF 01060 FDB ADD2-CFAOFF 01070 ADD1 LDD #1 01080 ADDTOP 01110 * 01120 FCC '1-' 01130 FCB 2 01140 FCB MFORE 01150 FDB ADD1-CFAOFF 01160 FDB BIF+2 01170 FDB 0 01180 FDB 0 01190 SUB1 LDD #-1 01200 ADDTOP 01230 * 01240 FCC '2+' 01250 FCB 2 01260 FCB MFORE 01270 FDB SUB1-CFAOFF 01280 FDB BIF+2 01290 FDB TWO-CFAOFF 01300 FDB RSHIFT-CFAOFF 01310 ADD2 LDD #2 01320 ADDTOP 01330 * 01340 FCC '2-' 01350 FCB 2 01360 FCB MFORE 01370 FDB ADD2-CFAOFF 01380 FDB BIF+2 01390 FDB 0 01400 FDB 0 01410 SUB2 LDD #-2 01420 ADDTOP 01430 * 01440 FCC '0' 01450 FCB 1 01460 FCB MFORE 01470 FDB SUB2-CFAOFF 01480 FDB BIF+2 01490 FDB SLAMOD-CFAOFF 01500 FDB INULL-CFAOFF 01510 ZERO LDD #0 01520 PSHU D 01530 NEXT 01540 * 01550 FCC '1' 01560 FCB 1 01570 FCB MFORE 01580 FDB ZERO-CFAOFF 01590 FDB BIF+2 01600 FDB ZBR-CFAOFF 01610 FDB 0 01620 ONE LDD #1 01630 PSHU D 01640 NEXT 01650 * 01660 FCC '-1' 01670 FCB 2 01680 FCB MFORE 01690 FDB ONE-CFAOFF 01700 FDB BIF+2 01710 FDB 0 01720 FDB DDFIND-CFAOFF 01730 MONE LDD #-1 01740 PSHU D 01750 NEXT 01760 * 01770 FCC '2' 01780 FCB 1 01790 FCB MFORE 01800 FDB MONE-CFAOFF 01810 FDB BIF+2 01820 FDB ONEARR-CFAOFF 01830 FDB LSHIFT-CFAOFF 01840 TWO DOCON 01850 FDB 2 01860 * 01870 FCC '3' 01880 FCB 1 01890 FCB MFORE 01895 FDB TWO-CFAOFF 01900 FDB BIF+2 01910 FDB 0 01920 FDB 0 01930 THREE DOCON 01940 FDB 3 01950 * 01960 FCC 'BL' 01970 FCB 2 01980 FCB MFORE 01990 FDB THREE-CFAOFF 02000 FDB BIF+2 02010 FDB 0 02020 FDB 0 02030 BL DOCON 02040 FDB $20 ascii SP 02050 * 02060 FCC 'C/L' 02070 FCB 3 02080 FCB MFORE 02090 FDB BL-CFAOFF 02100 FDB BIF+2 02110 FDB 0 02120 FDB 0 02130 CPERL DOUCON 02140 FCB UCOLUM 02170 * 02180 FCC 'FIRST' 02190 FCB 5 02200 FCB MFORE 02210 FDB CPERL-CFAOFF 02220 FDB BIF+2 02230 FDB 0 02240 FDB FLD-CFAOFF 02250 FIRST DOUCON 02260 FCB UFIRST 02290 * 02300 FCC 'LIMIT' 02310 FCB 5 02320 FCB MFORE 02330 FDB FIRST-CFAOFF 02340 FDB BIF+2 02350 FDB LEAVE-CFAOFF 02360 FDB LITER-CFAOFF 02370 LIMIT DOUCON 02380 FCB ULIMIT 02400 * 02410 BWID EQU 256 bytes 02420 FCC 'B/BUF' 02430 FCB 5 02440 FCB MFORE 02450 FDB LIMIT-CFAOFF 02460 FDB BIF+2 02470 FDB ASMBLR-CFAOFF 02480 FDB BPSCR-CFAOFF 02490 BPBUF DOCON 02500 FDB BWID 02510 * 02520 BCT EQU 4 buffers 02520 FCC 'B/SCR' 02530 FCB 5 02540 FCB MFORE 02550 FDB BPBUF-CFAOFF 02560 FDB BIF+2 02570 FDB 0 02580 FDB 0 02590 BPSCR DOCON 02600 FDB BCT 02610 * 02620 FCC '+ORIGIN' 02630 FCB 7 02640 FCB MFORE 02650 FDB BPSCR-CFAOFF 02660 FDB BIF+2 02670 FDB 0 02680 FDB 0 02690 PORIG LDD #ORIG 02700 LBRA ADD+2 02710 * 02715 * some USER vars hidden 02720 * fig-FORTH USER vars not present: 02722 * WIDTH VOC-LINK CONTEXT CURRENT 02724 * 02730 FCC 'TIB' 02740 FCB 3 02750 FCB MFORE 02760 FDB PORIG-CFAOFF 02770 FDB BIF+2 02780 FDB 0 02790 FDB 0 02800 TIB DOUSER 02810 FCB UTIB 02820 * 02930 FCC 'WARNING' 02940 FCB 7 02950 FCB MFORE 02960 FDB TIB-CFAOFF 02970 FDB BIF+2 02980 FDB 0 02990 FDB 0 03000 WARN DOUSER 03010 FCB UWARN 03020 * 03030 FCC 'FENCE' 03040 FCB 5 03050 FCB MFORE 03060 FDB WARN-CFAOFF 03070 FDB BIF+2 03080 FDB 0 03090 FDB 0 03100 FENCE DOUSER 03110 FCB UFENCE 03120 * 03130 FCC 'DP' 03140 FCB 2 03150 FCB MFORE 03160 FDB FENCE-CFAOFF 03170 FDB BIF+2 03180 FDB DOES-CFAOFF 03190 FDB 0 03200 DPC DOUSER 03210 FCB UDP 03220 * 03230 FCC 'ROOT' 03240 FCB 4 03250 FCB MFORE 03260 FDB DPC-CFAOFF 03270 FDB BIF+2 03280 FDB 0 03290 FDB 0 03300 ROOT DOUSER not fig 03310 FCB UROOT 03320 * 03330 FCC 'BLK' 03340 FCB 3 03350 FCB MFORE 03360 FDB ROOT-CFAOFF 03370 FDB BIF+2 03380 FDB BLANKS-CFAOFF 03390 FDB BLOCK-CFAOFF 03400 BLK DOUSER 03410 FCB UBLK 03420 * 03430 FCC 'IN' 03440 FCB 2 03450 FCB MFORE 03460 FDB BLK-CFAOFF 03470 FDB BIF+2 03480 FDB IMMED-CFAOFF 03490 FDB INTERP-CFAOFF 03500 IN DOUSER 03510 FCB UIN 03520 * 03530 FCC 'OUT' 03540 FCB 3 03550 FCB MFORE 03560 FDB IN-CFAOFF 03570 FDB BIF+2 03580 FDB 0 03590 FDB 0 03600 OUT DOUSER 03610 FCB UOUT 03620 * 03630 FCC 'SCR' 03640 FCB 3 03650 FCB MFORE 03660 FDB OUT-CFAOFF 03670 FDB BIF+2 03680 FDB 0 03690 FDB 0 03700 SCR DOUSER 03710 FCB USCR 03720 * 03730 FCC 'OFFSET' 03740 FCB 6 03750 FCB MFORE 03760 FDB SCR-CFAOFF 03770 FDB BIF+2 03780 FDB 0 03790 FDB 0 03800 OFFSET DOUSER 03810 FCB UOFFS 03820 * 03830 FCC 'STATE' 03840 FCB 5 03850 FCB MFORE 03860 FDB OFFSET-CFAOFF 03870 FDB BIF+2 03880 FDB SPACES-CFAOFF 03890 FDB SWAB-CFAOFF 03900 STATE DOUSER 03910 FCB USTATE 03920 * 03930 FCC 'BASE' 03940 FCB 4 03950 FCB MFORE 03960 FDB STATE-CFAOFF 03970 FDB BIF+2 03980 FDB 0 03990 FDB 0 04000 BASE DOUSER 04010 FCB UBASE 04020 * 04030 FCC 'DPL' 04040 FCB 3 04050 FCB MFORE 04060 FDB BASE-CFAOFF 04070 FDB BIF+2 04080 FDB DPC-CFAOFF 04090 FDB DROFFS-CFAOFF 04100 DPL DOUSER 04110 FCB UDPL 04120 * 04130 FCC 'FLD' 04140 FCB 3 04150 FCB MFORE 04160 FDB DPL-CFAOFF 04170 FDB BIF+2 04180 FDB 0 04190 FDB 0 04200 FLD DOUSER 04210 FCB UFLD 04220 * 04230 FCC 'CSP' 04240 FCB 3 04250 FCB MFORE 04260 FDB FLD-CFAOFF 04270 FDB BIF+2 04280 FDB 0 04290 FDB CURR-CFAOFF 04300 CSP DOUSER 04310 FCB UCSP 04320 * 04330 FCC 'R#' 04340 FCB 2 04350 FCB MFORE 04360 FDB CSP-CFAOFF 04370 FDB BIF+2 04380 FDB 0 04390 FDB RW-CFAOFF 04400 RNUM DOUSER 04410 FCB URNUM 04420 * 04430 FCC 'HLD' 04440 FCB 3 04450 FCB MFORE 04460 FDB RNUM-CFAOFF 04470 FDB BIF+2 04480 FDB HEX-CFAOFF 04490 FDB HOLD-CFAOFF 04500 HLD DOUSER 04510 FCB UHLD 04520 * 04530 FCC 'FOREWARD' 04540 FCB 8 04550 FCB MFORE 04560 FDB HLD-CFAOFF 04570 FDB BIF+2 04580 FDB 0 04590 FDB 0 04600 FORE DOUSER not fig 04610 FCB UFORE 04620 * 04630 FCC 'CURRENT' 04640 FCB 7 04650 FCB MFORE 04660 FDB FORE-CFAOFF 04670 FDB BIF+2 04680 FDB 0 04690 FDB 0 04700 CURR DOUSER not fig 04710 FCB UCURR 04720 * 04730 FCC 'PREV' 04740 FCB 4 04750 FCB MFORE 04760 FDB CURR-CFAOFF 04770 FDB BIF+2 04780 FDB 0 04790 FDB 0 04800 PREV DOUSER moved 04810 FCB UPREV 04820 * 04830 FCC 'USE' 04840 FCB 3 04850 FCB MFORE 04860 FDB PREV-CFAOFF 04870 FDB BIF+2 04880 FDB 0 04890 FDB 0 04900 USE DOUSER moved 04910 FCB UUSE 04920 * 04930 FCC 'DROOT' 04940 FCB 5 04950 FCB MFORE 04960 FDB USE-CFAOFF 04970 FDB BIF+2 04980 FDB 0 04990 FDB 0 05000 DROOT DOUSER not fig 05010 FCB UDROOT 05020 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+01000 FCC '1+'
5+01010 FCB 2
6+01020 FCB MFORE
7+01030 FDB SWAN-CFAOFF
8+01040 FDB BIF+2
9+01050 FDB ZLESS-CFAOFF
10+01060 FDB ADD2-CFAOFF
11+01070 ADD1 LDD #1
12+01080 ADDTOP
13+01110 *
14+01120 FCC '1-'
15+01130 FCB 2
16+01140 FCB MFORE
17+01150 FDB ADD1-CFAOFF
18+01160 FDB BIF+2
19+01170 FDB 0
20+01180 FDB 0
21+01190 SUB1 LDD #-1
22+01200 ADDTOP
23+01230 *
24+01240 FCC '2+'
25+01250 FCB 2
26+01260 FCB MFORE
27+01270 FDB SUB1-CFAOFF
28+01280 FDB BIF+2
29+01290 FDB TWO-CFAOFF
30+01300 FDB RSHIFT-CFAOFF
31+01310 ADD2 LDD #2
32+01320 ADDTOP
33+01330 *
34+01340 FCC '2-'
35+01350 FCB 2
36+01360 FCB MFORE
37+01370 FDB ADD2-CFAOFF
38+01380 FDB BIF+2
39+01390 FDB 0
40+01400 FDB 0
41+01410 SUB2 LDD #-2
42+01420 ADDTOP
43+01430 *
44+01440 FCC '0'
45+01450 FCB 1
46+01460 FCB MFORE
47+01470 FDB SUB2-CFAOFF
48+01480 FDB BIF+2
49+01490 FDB SLAMOD-CFAOFF
50+01500 FDB INULL-CFAOFF
51+01510 ZERO LDD #0
52+01520 PSHU D
53+01530 NEXT
54+01540 *
55+01550 FCC '1'
56+01560 FCB 1
57+01570 FCB MFORE
58+01580 FDB ZERO-CFAOFF
59+01590 FDB BIF+2
60+01600 FDB ZBR-CFAOFF
61+01610 FDB 0
62+01620 ONE LDD #1
63+01630 PSHU D
64+01640 NEXT
65+01650 *
66+01660 FCC '-1'
67+01670 FCB 2
68+01680 FCB MFORE
69+01690 FDB ONE-CFAOFF
70+01700 FDB BIF+2
71+01710 FDB 0
72+01720 FDB DDFIND-CFAOFF
73+01730 MONE LDD #-1
74+01740 PSHU D
75+01750 NEXT
76+01760 *
77+01770 FCC '2'
78+01780 FCB 1
79+01790 FCB MFORE
80+01800 FDB MONE-CFAOFF
81+01810 FDB BIF+2
82+01820 FDB ONEARR-CFAOFF
83+01830 FDB LSHIFT-CFAOFF
84+01840 TWO DOCON
85+01850 FDB 2
86+01860 *
87+01870 FCC '3'
88+01880 FCB 1
89+01890 FCB MFORE
90+01895 FDB TWO-CFAOFF
91+01900 FDB BIF+2
92+01910 FDB 0
93+01920 FDB 0
94+01930 THREE DOCON
95+01940 FDB 3
96+01950 *
97+01960 FCC 'BL'
98+01970 FCB 2
99+01980 FCB MFORE
100+01990 FDB THREE-CFAOFF
101+02000 FDB BIF+2
102+02010 FDB 0
103+02020 FDB 0
104+02030 BL DOCON
105+02040 FDB $20 ascii SP
106+02050 *
107+02060 FCC 'C/L'
108+02070 FCB 3
109+02080 FCB MFORE
110+02090 FDB BL-CFAOFF
111+02100 FDB BIF+2
112+02110 FDB 0
113+02120 FDB 0
114+02130 CPERL DOUCON
115+02140 FCB UCOLUM
116+02170 *
117+02180 FCC 'FIRST'
118+02190 FCB 5
119+02200 FCB MFORE
120+02210 FDB CPERL-CFAOFF
121+02220 FDB BIF+2
122+02230 FDB 0
123+02240 FDB FLD-CFAOFF
124+02250 FIRST DOUCON
125+02260 FCB UFIRST
126+02290 *
127+02300 FCC 'LIMIT'
128+02310 FCB 5
129+02320 FCB MFORE
130+02330 FDB FIRST-CFAOFF
131+02340 FDB BIF+2
132+02350 FDB LEAVE-CFAOFF
133+02360 FDB LITER-CFAOFF
134+02370 LIMIT DOUCON
135+02380 FCB ULIMIT
136+02400 *
137+02410 BWID EQU 256 bytes
138+02420 FCC 'B/BUF'
139+02430 FCB 5
140+02440 FCB MFORE
141+02450 FDB LIMIT-CFAOFF
142+02460 FDB BIF+2
143+02470 FDB ASMBLR-CFAOFF
144+02480 FDB BPSCR-CFAOFF
145+02490 BPBUF DOCON
146+02500 FDB BWID
147+02510 *
148+02520 BCT EQU 4 buffers
149+02520 FCC 'B/SCR'
150+02530 FCB 5
151+02540 FCB MFORE
152+02550 FDB BPBUF-CFAOFF
153+02560 FDB BIF+2
154+02570 FDB 0
155+02580 FDB 0
156+02590 BPSCR DOCON
157+02600 FDB BCT
158+02610 *
159+02620 FCC '+ORIGIN'
160+02630 FCB 7
161+02640 FCB MFORE
162+02650 FDB BPSCR-CFAOFF
163+02660 FDB BIF+2
164+02670 FDB 0
165+02680 FDB 0
166+02690 PORIG LDD #ORIG
167+02700 LBRA ADD+2
168+02710 *
169+02715 * some USER vars hidden
170+02720 * fig-FORTH USER vars not present:
171+02722 * WIDTH VOC-LINK CONTEXT CURRENT
172+02724 *
173+02730 FCC 'TIB'
174+02740 FCB 3
175+02750 FCB MFORE
176+02760 FDB PORIG-CFAOFF
177+02770 FDB BIF+2
178+02780 FDB 0
179+02790 FDB 0
180+02800 TIB DOUSER
181+02810 FCB UTIB
182+02820 *
183+02930 FCC 'WARNING'
184+02940 FCB 7
185+02950 FCB MFORE
186+02960 FDB TIB-CFAOFF
187+02970 FDB BIF+2
188+02980 FDB 0
189+02990 FDB 0
190+03000 WARN DOUSER
191+03010 FCB UWARN
192+03020 *
193+03030 FCC 'FENCE'
194+03040 FCB 5
195+03050 FCB MFORE
196+03060 FDB WARN-CFAOFF
197+03070 FDB BIF+2
198+03080 FDB 0
199+03090 FDB 0
200+03100 FENCE DOUSER
201+03110 FCB UFENCE
202+03120 *
203+03130 FCC 'DP'
204+03140 FCB 2
205+03150 FCB MFORE
206+03160 FDB FENCE-CFAOFF
207+03170 FDB BIF+2
208+03180 FDB DOES-CFAOFF
209+03190 FDB 0
210+03200 DPC DOUSER
211+03210 FCB UDP
212+03220 *
213+03230 FCC 'ROOT'
214+03240 FCB 4
215+03250 FCB MFORE
216+03260 FDB DPC-CFAOFF
217+03270 FDB BIF+2
218+03280 FDB 0
219+03290 FDB 0
220+03300 ROOT DOUSER not fig
221+03310 FCB UROOT
222+03320 *
223+03330 FCC 'BLK'
224+03340 FCB 3
225+03350 FCB MFORE
226+03360 FDB ROOT-CFAOFF
227+03370 FDB BIF+2
228+03380 FDB BLANKS-CFAOFF
229+03390 FDB BLOCK-CFAOFF
230+03400 BLK DOUSER
231+03410 FCB UBLK
232+03420 *
233+03430 FCC 'IN'
234+03440 FCB 2
235+03450 FCB MFORE
236+03460 FDB BLK-CFAOFF
237+03470 FDB BIF+2
238+03480 FDB IMMED-CFAOFF
239+03490 FDB INTERP-CFAOFF
240+03500 IN DOUSER
241+03510 FCB UIN
242+03520 *
243+03530 FCC 'OUT'
244+03540 FCB 3
245+03550 FCB MFORE
246+03560 FDB IN-CFAOFF
247+03570 FDB BIF+2
248+03580 FDB 0
249+03590 FDB 0
250+03600 OUT DOUSER
251+03610 FCB UOUT
252+03620 *
253+03630 FCC 'SCR'
254+03640 FCB 3
255+03650 FCB MFORE
256+03660 FDB OUT-CFAOFF
257+03670 FDB BIF+2
258+03680 FDB 0
259+03690 FDB 0
260+03700 SCR DOUSER
261+03710 FCB USCR
262+03720 *
263+03730 FCC 'OFFSET'
264+03740 FCB 6
265+03750 FCB MFORE
266+03760 FDB SCR-CFAOFF
267+03770 FDB BIF+2
268+03780 FDB 0
269+03790 FDB 0
270+03800 OFFSET DOUSER
271+03810 FCB UOFFS
272+03820 *
273+03830 FCC 'STATE'
274+03840 FCB 5
275+03850 FCB MFORE
276+03860 FDB OFFSET-CFAOFF
277+03870 FDB BIF+2
278+03880 FDB SPACES-CFAOFF
279+03890 FDB SWAB-CFAOFF
280+03900 STATE DOUSER
281+03910 FCB USTATE
282+03920 *
283+03930 FCC 'BASE'
284+03940 FCB 4
285+03950 FCB MFORE
286+03960 FDB STATE-CFAOFF
287+03970 FDB BIF+2
288+03980 FDB 0
289+03990 FDB 0
290+04000 BASE DOUSER
291+04010 FCB UBASE
292+04020 *
293+04030 FCC 'DPL'
294+04040 FCB 3
295+04050 FCB MFORE
296+04060 FDB BASE-CFAOFF
297+04070 FDB BIF+2
298+04080 FDB DPC-CFAOFF
299+04090 FDB DROFFS-CFAOFF
300+04100 DPL DOUSER
301+04110 FCB UDPL
302+04120 *
303+04130 FCC 'FLD'
304+04140 FCB 3
305+04150 FCB MFORE
306+04160 FDB DPL-CFAOFF
307+04170 FDB BIF+2
308+04180 FDB 0
309+04190 FDB 0
310+04200 FLD DOUSER
311+04210 FCB UFLD
312+04220 *
313+04230 FCC 'CSP'
314+04240 FCB 3
315+04250 FCB MFORE
316+04260 FDB FLD-CFAOFF
317+04270 FDB BIF+2
318+04280 FDB 0
319+04290 FDB CURR-CFAOFF
320+04300 CSP DOUSER
321+04310 FCB UCSP
322+04320 *
323+04330 FCC 'R#'
324+04340 FCB 2
325+04350 FCB MFORE
326+04360 FDB CSP-CFAOFF
327+04370 FDB BIF+2
328+04380 FDB 0
329+04390 FDB RW-CFAOFF
330+04400 RNUM DOUSER
331+04410 FCB URNUM
332+04420 *
333+04430 FCC 'HLD'
334+04440 FCB 3
335+04450 FCB MFORE
336+04460 FDB RNUM-CFAOFF
337+04470 FDB BIF+2
338+04480 FDB HEX-CFAOFF
339+04490 FDB HOLD-CFAOFF
340+04500 HLD DOUSER
341+04510 FCB UHLD
342+04520 *
343+04530 FCC 'FOREWARD'
344+04540 FCB 8
345+04550 FCB MFORE
346+04560 FDB HLD-CFAOFF
347+04570 FDB BIF+2
348+04580 FDB 0
349+04590 FDB 0
350+04600 FORE DOUSER not fig
351+04610 FCB UFORE
352+04620 *
353+04630 FCC 'CURRENT'
354+04640 FCB 7
355+04650 FCB MFORE
356+04660 FDB FORE-CFAOFF
357+04670 FDB BIF+2
358+04680 FDB 0
359+04690 FDB 0
360+04700 CURR DOUSER not fig
361+04710 FCB UCURR
362+04720 *
363+04730 FCC 'PREV'
364+04740 FCB 4
365+04750 FCB MFORE
366+04760 FDB CURR-CFAOFF
367+04770 FDB BIF+2
368+04780 FDB 0
369+04790 FDB 0
370+04800 PREV DOUSER moved
371+04810 FCB UPREV
372+04820 *
373+04830 FCC 'USE'
374+04840 FCB 3
375+04850 FCB MFORE
376+04860 FDB PREV-CFAOFF
377+04870 FDB BIF+2
378+04880 FDB 0
379+04890 FDB 0
380+04900 USE DOUSER moved
381+04910 FCB UUSE
382+04920 *
383+04930 FCC 'DROOT'
384+04940 FCB 5
385+04950 FCB MFORE
386+04960 FDB USE-CFAOFF
387+04970 FDB BIF+2
388+04980 FDB 0
389+04990 FDB 0
390+05000 DROOT DOUSER not fig
391+05010 FCB UDROOT
392+05020 *
--- a/cross_v/BIF2B.ASM
+++ b/cross_v/BIF2B.ASM
@@ -1 +1,156 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 05030 FCC 'HERE' 05040 FCB 4 05050 FCB MFORE 05060 FDB DROOT-CFAOFF 05070 FDB BIF+2 05080 FDB FOREMK-CFAOFF 05090 FDB I-CFAOFF 05100 HERE LDX <UP 05110 LDD UDP,X 05120 PSHU D 05122 HERERR LDX <UP 05124 CMPU UDP,X 05128 BLS ALLERR 05130 NEXT 05132 ALLERR LDD #2 05134 PSHU D 05136 JMP ERROR 05140 * 05150 FCC 'ALLOT' 05160 FCB 5 05170 FCB MFORE 05180 FDB HERE-CFAOFF 05190 FDB BIF+2 05200 FDB AGAIN-CFAOFF 05210 FDB 0 05220 ALLOT LDX <UP 05222 LDD UDP,X 05223 BMI ALLERR 05224 ADDD ,U++ 05226 STD UDP,X 05228 BRA HERERR 05230 * 05238 FCC ',' 05240 FCB 1 05250 FCB MFORE 05260 FDB ALLOT-CFAOFF 05270 FDB BIF+2 05280 FDB PORIG-CFAOFF 05290 FDB SUB-CFAOFF 05300 COMMA PULU D allocate and store 05310 PSHS Y 05320 LDY <UP 05330 LDX UDP,Y 05340 STD ,X++ 05350 COMSTO STX UDP,Y 05360 PULS Y 05375 BRA HERERR 05380 * 05390 FCC 'C,' 05400 FCB 2 05410 FCB MFORE 05420 FDB COMMA-CFAOFF 05430 FDB BIF+2 05440 FDB CSTO-CFAOFF 05450 FDB CPERL-CFAOFF 05460 CCOMMA PULU D 05470 PSHS Y 05480 LDY <UP 05490 LDX UDP,Y 05500 STB ,X+ 05510 BRA COMSTO 05520 * 05530 FCC 'SPACE' 05540 FCB 5 05550 FCB MFORE 05560 FDB CCOMMA-CFAOFF 05570 FDB BIF+2 05580 FDB SPFEH-CFAOFF 05590 FDB STATE-CFAOFF 05600 SPACE LDB BL+3,PCR 05610 LBRA EMIT+2 05620 * 05630 FCC '-DUP' 05640 FCB 4 05650 FCB MFORE 05660 FDB SPACE-CFAOFF 05670 FDB BIF+2 05680 FDB MONE-CFAOFF 05690 FDB DTRAIL-CFAOFF 05700 DDUP LDD ,U 05710 BEQ *+4 05720 PSHU D 05730 NEXT 05740 * 05750 FCC '?CST' 05760 FCB 4 05770 FCB MFORE 05780 FDB DDUP-CFAOFF 05790 FDB BIF+2 05800 FDB QCSP-CFAOFF 05810 FDB QERR-CFAOFF 05820 QCST LDX <UP 05830 LDB USTATE+1,X 05840 ANDB #SCOMP 05850 CLRA 05860 PSHU D 05870 NEXT 05890 * 05900 FCC 'IF' 05910 FCB MIMM.OR.MCOMP.OR.2 05920 FCB MFORE 05930 FDB QCST-CFAOFF 05940 FDB BIF+2 05950 FDB DO-CFAOFF 05960 FDB QUERY-CFAOFF 05965 * IF see fig-FORTH model 05970 IF DOCOL 05980 FDB COMP 05990 FDB ZBR 06000 FDB HERE adr 06010 FDB ZERO 06020 FDB COMMA 06030 FDB LIT 06040 FDB ('I)*256+'F 06060 FDB SEMIS 06090 * 06100 FCC 'ELSE' 06110 FCB MIMM.OR.MCOMP.OR.4 06120 FCB MFORE 06130 FDB IF-CFAOFF 06140 FDB BIF+2 06150 FDB EDITOR-CFAOFF 06160 FDB 0 06170 ELSE DOCOL 06172 FDB DUP 06173 FDB LIT 06175 FDB ('I)*256+'F 06178 FDB QPAIRS 06180 FDB COMP 06190 FDB BRANCH 06200 FDB HERE adr 06205 FDB ZERO 06210 FDB COMMA 06220 FDB ROT 06230 FDB FILLIN IF adr 06250 FDB SWAP for ENDIF 06260 FDB SEMIS 06290 * 06300 FCC 'ENDIF' 06310 FCB MIMM.OR.MCOMP.OR.5 06320 FCB MFORE 06330 FDB ELSE-CFAOFF 06340 FDB BIF+2 06350 FDB DROP-CFAOFF 06360 FDB FIND-CFAOFF 06370 ENDIF DOCOL 06380 FDB QCOMP 06390 FDB LIT 06400 FDB ('I)*256+'F 06410 FDB QPAIRS 06420 FDB FILLIN 06470 FDB SEMIS 06490 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+05030 FCC 'HERE'
5+05040 FCB 4
6+05050 FCB MFORE
7+05060 FDB DROOT-CFAOFF
8+05070 FDB BIF+2
9+05080 FDB FOREMK-CFAOFF
10+05090 FDB I-CFAOFF
11+05100 HERE LDX <UP
12+05110 LDD UDP,X
13+05120 PSHU D
14+05122 HERERR LDX <UP
15+05124 CMPU UDP,X
16+05128 BLS ALLERR
17+05130 NEXT
18+05132 ALLERR LDD #2
19+05134 PSHU D
20+05136 JMP ERROR
21+05140 *
22+05150 FCC 'ALLOT'
23+05160 FCB 5
24+05170 FCB MFORE
25+05180 FDB HERE-CFAOFF
26+05190 FDB BIF+2
27+05200 FDB AGAIN-CFAOFF
28+05210 FDB 0
29+05220 ALLOT LDX <UP
30+05222 LDD UDP,X
31+05223 BMI ALLERR
32+05224 ADDD ,U++
33+05226 STD UDP,X
34+05228 BRA HERERR
35+05230 *
36+05238 FCC ','
37+05240 FCB 1
38+05250 FCB MFORE
39+05260 FDB ALLOT-CFAOFF
40+05270 FDB BIF+2
41+05280 FDB PORIG-CFAOFF
42+05290 FDB SUB-CFAOFF
43+05300 COMMA PULU D allocate and store
44+05310 PSHS Y
45+05320 LDY <UP
46+05330 LDX UDP,Y
47+05340 STD ,X++
48+05350 COMSTO STX UDP,Y
49+05360 PULS Y
50+05375 BRA HERERR
51+05380 *
52+05390 FCC 'C,'
53+05400 FCB 2
54+05410 FCB MFORE
55+05420 FDB COMMA-CFAOFF
56+05430 FDB BIF+2
57+05440 FDB CSTO-CFAOFF
58+05450 FDB CPERL-CFAOFF
59+05460 CCOMMA PULU D
60+05470 PSHS Y
61+05480 LDY <UP
62+05490 LDX UDP,Y
63+05500 STB ,X+
64+05510 BRA COMSTO
65+05520 *
66+05530 FCC 'SPACE'
67+05540 FCB 5
68+05550 FCB MFORE
69+05560 FDB CCOMMA-CFAOFF
70+05570 FDB BIF+2
71+05580 FDB SPFEH-CFAOFF
72+05590 FDB STATE-CFAOFF
73+05600 SPACE LDB BL+3,PCR
74+05610 LBRA EMIT+2
75+05620 *
76+05630 FCC '-DUP'
77+05640 FCB 4
78+05650 FCB MFORE
79+05660 FDB SPACE-CFAOFF
80+05670 FDB BIF+2
81+05680 FDB MONE-CFAOFF
82+05690 FDB DTRAIL-CFAOFF
83+05700 DDUP LDD ,U
84+05710 BEQ *+4
85+05720 PSHU D
86+05730 NEXT
87+05740 *
88+05750 FCC '?CST'
89+05760 FCB 4
90+05770 FCB MFORE
91+05780 FDB DDUP-CFAOFF
92+05790 FDB BIF+2
93+05800 FDB QCSP-CFAOFF
94+05810 FDB QERR-CFAOFF
95+05820 QCST LDX <UP
96+05830 LDB USTATE+1,X
97+05840 ANDB #SCOMP
98+05850 CLRA
99+05860 PSHU D
100+05870 NEXT
101+05890 *
102+05900 FCC 'IF'
103+05910 FCB MIMM.OR.MCOMP.OR.2
104+05920 FCB MFORE
105+05930 FDB QCST-CFAOFF
106+05940 FDB BIF+2
107+05950 FDB DO-CFAOFF
108+05960 FDB QUERY-CFAOFF
109+05965 * IF see fig-FORTH model
110+05970 IF DOCOL
111+05980 FDB COMP
112+05990 FDB ZBR
113+06000 FDB HERE adr
114+06010 FDB ZERO
115+06020 FDB COMMA
116+06030 FDB LIT
117+06040 FDB ('I)*256+'F
118+06060 FDB SEMIS
119+06090 *
120+06100 FCC 'ELSE'
121+06110 FCB MIMM.OR.MCOMP.OR.4
122+06120 FCB MFORE
123+06130 FDB IF-CFAOFF
124+06140 FDB BIF+2
125+06150 FDB EDITOR-CFAOFF
126+06160 FDB 0
127+06170 ELSE DOCOL
128+06172 FDB DUP
129+06173 FDB LIT
130+06175 FDB ('I)*256+'F
131+06178 FDB QPAIRS
132+06180 FDB COMP
133+06190 FDB BRANCH
134+06200 FDB HERE adr
135+06205 FDB ZERO
136+06210 FDB COMMA
137+06220 FDB ROT
138+06230 FDB FILLIN IF adr
139+06250 FDB SWAP for ENDIF
140+06260 FDB SEMIS
141+06290 *
142+06300 FCC 'ENDIF'
143+06310 FCB MIMM.OR.MCOMP.OR.5
144+06320 FCB MFORE
145+06330 FDB ELSE-CFAOFF
146+06340 FDB BIF+2
147+06350 FDB DROP-CFAOFF
148+06360 FDB FIND-CFAOFF
149+06370 ENDIF DOCOL
150+06380 FDB QCOMP
151+06390 FDB LIT
152+06400 FDB ('I)*256+'F
153+06410 FDB QPAIRS
154+06420 FDB FILLIN
155+06470 FDB SEMIS
156+06490 *
--- a/cross_v/BIF3.ASM
+++ b/cross_v/BIF3.ASM
@@ -1 +1,361 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 01000 FCC 'LATEST' 01010 FCB 6 01020 FCB MFORE 01030 FDB ENDIF-CFAOFF 01040 FDB BIF+2 01050 FDB 0 01060 FDB 0 01070 LATEST DOUCON not ROOT! 01080 FCB UCURR NFA 01110 * 01115 * convert NFA to LFA,CFA,GFA,PFA 01120 FCC 'LFA' 01130 FCB 3 01140 FCB MFORE 01150 FDB LATEST-CFAOFF 01160 FDB BIF+2 01170 FDB 0 01180 FDB 0 01190 LFA LDB #LFAOFF 01200 BRA CFA+2 01210 * 01220 FCC 'CFA' 01230 FCB 3 01240 FCB MFORE 01250 FDB LFA-CFAOFF 01260 FDB BIF+2 01270 FDB 0 01280 FDB 0 01290 CFA LDB #CFAOFF 01292 SEX 01294 ADDD ,U 01296 STD ,U 01300 NEXT 01310 * 01320 FCC 'GFA' 01330 FCB 3 01340 FCB MFORE 01350 FDB CFA-CFAOFF 01360 FDB BIF+2 01370 FDB 0 01380 FDB 0 01390 GFA LDB #GFAOFF 01400 BRA CFA+2 01410 * 01420 FCC 'PFA' 01430 FCB 3 01440 FCB MFORE 01450 FDB GFA-CFAOFF 01460 FDB BIF+2 01470 FDB PAD-CFAOFF 01480 FDB PREV-CFAOFF 01490 PFA LDB #PFAOFF 01500 BRA CFA+2 01510 * 01515 * PFA to NFA 01520 FCC 'NFA' 01530 FCB 3 01540 FCB MFORE 01550 FDB PFA-CFAOFF 01560 FDB BIF+2 01570 FDB NCOMMA-CFAOFF 01580 FDB NOT-CFAOFF 01590 NFA LDB #-PFAOFF 01600 BRA CFA+2 01610 * 01620 FCC '!CSP' 01630 FCB 4 01640 FCB MFORE 01650 FDB NFA-CFAOFF 01660 FDB BIF+2 01670 FDB 0 01680 FDB HASH-CFAOFF 01690 STOCSP LDX <UP 01700 STU UCSP,X 01710 NEXT 01720 * 01730 FCC 'HEX' 01740 FCB 3 01750 FCB MFORE 01760 FDB STOCSP-CFAOFF 01770 FDB BIF+2 01780 FDB 0 01790 FDB 0 01800 HEX LDB #16 01810 CLRA 01820 LDX <UP 01830 STD UBASE,X 01840 NEXT 01850 * 01860 FCC 'DECIMAL' 01870 FCB 7 01880 FCB MFORE 01890 FDB HEX-CFAOFF 01900 FDB BIF+2 01910 FDB DAD-CFAOFF 01920 FDB DEFS-CFAOFF 01930 DEC LDB #10 01940 BRA HEX+2 01950 * 01960 FCC 'OCTAL' 01970 FCB 5 01980 FCB MFORE 01990 FDB DEC-CFAOFF 02000 FDB BIF+2 02010 FDB 0 02020 FDB OFFSET-CFAOFF 02030 OCT LDB #8 02040 BRA HEX+2 02050 * 02060 FCC 'FILL' 02070 FCB 4 02080 FCB MFORE 02090 FDB OCT-CFAOFF 02100 FDB BIF+2 02110 FDB FENCE-CFAOFF 02120 FDB FILLIN-CFAOFF 02130 FILL PSHS Y 02140 PULU D,X,Y 02150 STB ,Y+ 02160 LEAX -1,X 02170 BNE *-4 02180 PULS Y 02190 NEXT 02200 * 02210 FCC 'ERASE' 02220 FCB 5 02230 FCB MFORE 02240 FDB FILL-CFAOFF 02250 FDB BIF+2 02260 FDB 0 02270 FDB 0 02280 ERASE LDB #0 02290 PSHU D 02300 BRA FILL 02310 * 02320 FCC 'BLANKS' 02330 FCB 6 02340 FCB MFORE 02350 FDB ERASE-CFAOFF 02360 FDB BIF+2 02370 FDB BL-CFAOFF 02380 FDB 0 02390 BLANKS LDB #$20 ascii SP 02400 PSHU D 02410 BRA FILL 02420 * 02430 FCC 'HOLD' 02440 FCB 4 02450 FCB MFORE 02460 FDB BLANKS-CFAOFF 02470 FDB BIF+2 02480 FDB 0 02490 FDB 0 02500 HOLD PULU D CH 02510 PSHS Y 02520 LDY <UP 02530 LDX UHLD,Y 02540 STB ,-X 02550 STX UHLD,Y 02555 PULS Y 02560 NEXT 02570 * 02580 FCC 'PAD' 02590 FCB 3 02600 FCB MFORE 02610 FDB HOLD-CFAOFF 02620 FDB BIF+2 02630 FDB 0 02640 FDB 0 02650 PAD DOUCON moved! 02660 FCB UPAD 02700 * 02710 FCC 'S->D' 02720 FCB 4 02730 FCB MFORE 02740 FDB PAD-CFAOFF 02750 FDB BIF+2 02760 FDB RPSTO-CFAOFF 02770 FDB SIGN-CFAOFF 02780 STOD LEAU -2,U 02790 LDD 2,U 02795 LBRA ZLESS+2 02800 * 02810 FCC '+-' 02820 FCB 2 02830 FCB MFORE 02840 FDB STOD-CFAOFF 02850 FDB BIF+2 02860 FDB ADDSTO-CFAOFF 02870 FDB ADDBUF-CFAOFF 02880 CHS LDD ,U++ 02890 LBMI MINUS 02895 NEXT 02900 * 02910 FCC 'D+-' 02920 FCB 3 02930 FCB MFORE 02940 FDB STOD-CFAOFF 02950 FDB BIF+2 02960 FDB 0 02970 FDB 0 02980 DCHS LDD ,U++ 02990 LBMI DMINUS 02995 NEXT 03000 * 03010 FCC 'ABS' 03020 FCB 3 03030 FCB MFORE 03040 FDB DCHS-CFAOFF 03050 FDB BIF+2 03060 FDB ABORT-CFAOFF 03070 FDB ALLOT-CFAOFF 03080 ABS LDD ,U 03090 LBMI MINUS 03095 NEXT 03100 * 03110 FCC 'DABS' 03120 FCB 4 03130 FCB MFORE 03140 FDB ABS-CFAOFF 03150 FDB BIF+2 03160 FDB DSUB-CFAOFF 03170 FDB DIGIT-CFAOFF 03180 DABS LDD ,U 03190 LBMI DMINUS 03195 NEXT 03200 * 03210 FCC 'MIN' 03220 FCB 3 03230 FCB MFORE 03240 FDB DABS-CFAOFF 03250 FDB BIF+2 03260 FDB MSMOD-CFAOFF 03270 FDB MOVE-CFAOFF 03280 MIN PULU D 03284 CMPD ,U 03288 BGE *+4 03290 STD ,U 03295 NEXT 03300 * 03310 FCC 'MAX' 03320 FCB 3 03330 FCB MFORE 03340 FDB MIN-CFAOFF 03350 FDB BIF+2 03360 FDB 0 03370 FDB 0 03380 MAX PULU D 03384 CMPD ,U 03388 BLE *+4 03390 STD ,U 03395 NEXT 03400 * 03410 FCC '[' 03412 FCB MIMM|1 03414 FCB MFORE 03416 FDB MAX-CFAOFF 03418 FDB BIF+2 03420 FDB XOR-CFAOFF 03422 FDB 0 03430 LBRAK LDB #.NOT.SCOMP 03435 LDX <UP 03440 ANDB USTATE+1,X 03445 STB USTATE+1,X 03450 NEXT 03500 * 03510 FCC ']' 03512 FCB 1 03514 FCB MFORE 03516 FDB LBRAK-CFAOFF 03518 FDB BIF+2 03520 FDB 0 03522 FDB 0 03530 RBRAK LDB #SCOMP 03535 LDX <UP 03540 ORB USTATE+1,X 03545 STB USTATE+1,X 03550 NEXT 03555 * 03560 FCC 'IMMEDIATE' 03562 FCB 9 03564 FCB MFORE 03566 FDB RBRAK-CFAOFF 03568 FDB BIF+2 03570 FDB 0 03572 FDB 0 03580 IMMED LDB #MIMM 03585 BRA SMUDGE+2 03600 * 03610 FCC 'SMUDGE' 03612 FCB 6 03614 FCB MFORE 03616 FDB IMMED-CFAOFF 03618 FDB BIF+2 03620 FDB STOD-CFAOFF 03622 FDB SPACE-CFAOFF 03630 SMUDGE LDB #MHID 03635 LDX <UP 03645 EORB [UCURR,X] 03650 STB [UCURR,X] 03655 NEXT 03657 * 03660 FCC 'COMPILE-ONLY' 03662 FCB 12 03664 FCB MFORE 03666 FDB SMUDGE-CFAOFF 03668 FDB BIF+2 03670 FDB 0 03672 FDB 0 03680 COMPO LDB #MCOMP 03685 BRA SMUDGE+2 03800 * 03810 FCC 'COUNT' 03812 FCB 5 03814 FCB MFORE 03816 FDB COMPO-CFAOFF 03818 FDB BIF+2 03820 FDB 0 03822 FDB 0 03830 COUNT LDX ,U CT OF STR 03835 LDB ,X+ 03840 STX ,U STRING 03845 CLRA 03850 PSHU D COUNT 03855 NEXT 03900 * 03910 FCC '-TRAILING' 03912 FCB 9 03914 FCB MFORE 03916 FDB COUNT-CFAOFF 03918 FDB BIF+2 03920 FDB DIFIND-CFAOFF 03922 FDB 0 03930 DTRAIL LDD ,U 03935 LDX 2,U 03940 LEAX D,X END 03945 LDA #$20 ascii SP 03950 DTRAL CMPA ,-X 03955 BNE DTRAD 03960 CMPX 2,U 03965 BHS DTRAL 03970 DTRAD TFR X,D 03975 SUBD 2,U 03980 ADDD #1 03985 STD ,U 03990 NEXT 04000 * 04010 FCC '(MACHINE)' 04012 FCB MCOMP|9 04014 FCB MFORE 04016 FDB DTRAIL-CFAOFF 04018 FDB BIF+2 04020 FDB XLINE-CFAOFF 04022 FDB INUMB-CFAOFF 04030 XMACH TFR Y,X 04040 PULS Y UN-NEST 04050 JMP ,X IN LINE MACHINE CODE 04100 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+01000 FCC 'LATEST'
5+01010 FCB 6
6+01020 FCB MFORE
7+01030 FDB ENDIF-CFAOFF
8+01040 FDB BIF+2
9+01050 FDB 0
10+01060 FDB 0
11+01070 LATEST DOUCON not ROOT!
12+01080 FCB UCURR NFA
13+01110 *
14+01115 * convert NFA to LFA,CFA,GFA,PFA
15+01120 FCC 'LFA'
16+01130 FCB 3
17+01140 FCB MFORE
18+01150 FDB LATEST-CFAOFF
19+01160 FDB BIF+2
20+01170 FDB 0
21+01180 FDB 0
22+01190 LFA LDB #LFAOFF
23+01200 BRA CFA+2
24+01210 *
25+01220 FCC 'CFA'
26+01230 FCB 3
27+01240 FCB MFORE
28+01250 FDB LFA-CFAOFF
29+01260 FDB BIF+2
30+01270 FDB 0
31+01280 FDB 0
32+01290 CFA LDB #CFAOFF
33+01292 SEX
34+01294 ADDD ,U
35+01296 STD ,U
36+01300 NEXT
37+01310 *
38+01320 FCC 'GFA'
39+01330 FCB 3
40+01340 FCB MFORE
41+01350 FDB CFA-CFAOFF
42+01360 FDB BIF+2
43+01370 FDB 0
44+01380 FDB 0
45+01390 GFA LDB #GFAOFF
46+01400 BRA CFA+2
47+01410 *
48+01420 FCC 'PFA'
49+01430 FCB 3
50+01440 FCB MFORE
51+01450 FDB GFA-CFAOFF
52+01460 FDB BIF+2
53+01470 FDB PAD-CFAOFF
54+01480 FDB PREV-CFAOFF
55+01490 PFA LDB #PFAOFF
56+01500 BRA CFA+2
57+01510 *
58+01515 * PFA to NFA
59+01520 FCC 'NFA'
60+01530 FCB 3
61+01540 FCB MFORE
62+01550 FDB PFA-CFAOFF
63+01560 FDB BIF+2
64+01570 FDB NCOMMA-CFAOFF
65+01580 FDB NOT-CFAOFF
66+01590 NFA LDB #-PFAOFF
67+01600 BRA CFA+2
68+01610 *
69+01620 FCC '!CSP'
70+01630 FCB 4
71+01640 FCB MFORE
72+01650 FDB NFA-CFAOFF
73+01660 FDB BIF+2
74+01670 FDB 0
75+01680 FDB HASH-CFAOFF
76+01690 STOCSP LDX <UP
77+01700 STU UCSP,X
78+01710 NEXT
79+01720 *
80+01730 FCC 'HEX'
81+01740 FCB 3
82+01750 FCB MFORE
83+01760 FDB STOCSP-CFAOFF
84+01770 FDB BIF+2
85+01780 FDB 0
86+01790 FDB 0
87+01800 HEX LDB #16
88+01810 CLRA
89+01820 LDX <UP
90+01830 STD UBASE,X
91+01840 NEXT
92+01850 *
93+01860 FCC 'DECIMAL'
94+01870 FCB 7
95+01880 FCB MFORE
96+01890 FDB HEX-CFAOFF
97+01900 FDB BIF+2
98+01910 FDB DAD-CFAOFF
99+01920 FDB DEFS-CFAOFF
100+01930 DEC LDB #10
101+01940 BRA HEX+2
102+01950 *
103+01960 FCC 'OCTAL'
104+01970 FCB 5
105+01980 FCB MFORE
106+01990 FDB DEC-CFAOFF
107+02000 FDB BIF+2
108+02010 FDB 0
109+02020 FDB OFFSET-CFAOFF
110+02030 OCT LDB #8
111+02040 BRA HEX+2
112+02050 *
113+02060 FCC 'FILL'
114+02070 FCB 4
115+02080 FCB MFORE
116+02090 FDB OCT-CFAOFF
117+02100 FDB BIF+2
118+02110 FDB FENCE-CFAOFF
119+02120 FDB FILLIN-CFAOFF
120+02130 FILL PSHS Y
121+02140 PULU D,X,Y
122+02150 STB ,Y+
123+02160 LEAX -1,X
124+02170 BNE *-4
125+02180 PULS Y
126+02190 NEXT
127+02200 *
128+02210 FCC 'ERASE'
129+02220 FCB 5
130+02230 FCB MFORE
131+02240 FDB FILL-CFAOFF
132+02250 FDB BIF+2
133+02260 FDB 0
134+02270 FDB 0
135+02280 ERASE LDB #0
136+02290 PSHU D
137+02300 BRA FILL
138+02310 *
139+02320 FCC 'BLANKS'
140+02330 FCB 6
141+02340 FCB MFORE
142+02350 FDB ERASE-CFAOFF
143+02360 FDB BIF+2
144+02370 FDB BL-CFAOFF
145+02380 FDB 0
146+02390 BLANKS LDB #$20 ascii SP
147+02400 PSHU D
148+02410 BRA FILL
149+02420 *
150+02430 FCC 'HOLD'
151+02440 FCB 4
152+02450 FCB MFORE
153+02460 FDB BLANKS-CFAOFF
154+02470 FDB BIF+2
155+02480 FDB 0
156+02490 FDB 0
157+02500 HOLD PULU D CH
158+02510 PSHS Y
159+02520 LDY <UP
160+02530 LDX UHLD,Y
161+02540 STB ,-X
162+02550 STX UHLD,Y
163+02555 PULS Y
164+02560 NEXT
165+02570 *
166+02580 FCC 'PAD'
167+02590 FCB 3
168+02600 FCB MFORE
169+02610 FDB HOLD-CFAOFF
170+02620 FDB BIF+2
171+02630 FDB 0
172+02640 FDB 0
173+02650 PAD DOUCON moved!
174+02660 FCB UPAD
175+02700 *
176+02710 FCC 'S->D'
177+02720 FCB 4
178+02730 FCB MFORE
179+02740 FDB PAD-CFAOFF
180+02750 FDB BIF+2
181+02760 FDB RPSTO-CFAOFF
182+02770 FDB SIGN-CFAOFF
183+02780 STOD LEAU -2,U
184+02790 LDD 2,U
185+02795 LBRA ZLESS+2
186+02800 *
187+02810 FCC '+-'
188+02820 FCB 2
189+02830 FCB MFORE
190+02840 FDB STOD-CFAOFF
191+02850 FDB BIF+2
192+02860 FDB ADDSTO-CFAOFF
193+02870 FDB ADDBUF-CFAOFF
194+02880 CHS LDD ,U++
195+02890 LBMI MINUS
196+02895 NEXT
197+02900 *
198+02910 FCC 'D+-'
199+02920 FCB 3
200+02930 FCB MFORE
201+02940 FDB STOD-CFAOFF
202+02950 FDB BIF+2
203+02960 FDB 0
204+02970 FDB 0
205+02980 DCHS LDD ,U++
206+02990 LBMI DMINUS
207+02995 NEXT
208+03000 *
209+03010 FCC 'ABS'
210+03020 FCB 3
211+03030 FCB MFORE
212+03040 FDB DCHS-CFAOFF
213+03050 FDB BIF+2
214+03060 FDB ABORT-CFAOFF
215+03070 FDB ALLOT-CFAOFF
216+03080 ABS LDD ,U
217+03090 LBMI MINUS
218+03095 NEXT
219+03100 *
220+03110 FCC 'DABS'
221+03120 FCB 4
222+03130 FCB MFORE
223+03140 FDB ABS-CFAOFF
224+03150 FDB BIF+2
225+03160 FDB DSUB-CFAOFF
226+03170 FDB DIGIT-CFAOFF
227+03180 DABS LDD ,U
228+03190 LBMI DMINUS
229+03195 NEXT
230+03200 *
231+03210 FCC 'MIN'
232+03220 FCB 3
233+03230 FCB MFORE
234+03240 FDB DABS-CFAOFF
235+03250 FDB BIF+2
236+03260 FDB MSMOD-CFAOFF
237+03270 FDB MOVE-CFAOFF
238+03280 MIN PULU D
239+03284 CMPD ,U
240+03288 BGE *+4
241+03290 STD ,U
242+03295 NEXT
243+03300 *
244+03310 FCC 'MAX'
245+03320 FCB 3
246+03330 FCB MFORE
247+03340 FDB MIN-CFAOFF
248+03350 FDB BIF+2
249+03360 FDB 0
250+03370 FDB 0
251+03380 MAX PULU D
252+03384 CMPD ,U
253+03388 BLE *+4
254+03390 STD ,U
255+03395 NEXT
256+03400 *
257+03410 FCC '['
258+03412 FCB MIMM|1
259+03414 FCB MFORE
260+03416 FDB MAX-CFAOFF
261+03418 FDB BIF+2
262+03420 FDB XOR-CFAOFF
263+03422 FDB 0
264+03430 LBRAK LDB #.NOT.SCOMP
265+03435 LDX <UP
266+03440 ANDB USTATE+1,X
267+03445 STB USTATE+1,X
268+03450 NEXT
269+03500 *
270+03510 FCC ']'
271+03512 FCB 1
272+03514 FCB MFORE
273+03516 FDB LBRAK-CFAOFF
274+03518 FDB BIF+2
275+03520 FDB 0
276+03522 FDB 0
277+03530 RBRAK LDB #SCOMP
278+03535 LDX <UP
279+03540 ORB USTATE+1,X
280+03545 STB USTATE+1,X
281+03550 NEXT
282+03555 *
283+03560 FCC 'IMMEDIATE'
284+03562 FCB 9
285+03564 FCB MFORE
286+03566 FDB RBRAK-CFAOFF
287+03568 FDB BIF+2
288+03570 FDB 0
289+03572 FDB 0
290+03580 IMMED LDB #MIMM
291+03585 BRA SMUDGE+2
292+03600 *
293+03610 FCC 'SMUDGE'
294+03612 FCB 6
295+03614 FCB MFORE
296+03616 FDB IMMED-CFAOFF
297+03618 FDB BIF+2
298+03620 FDB STOD-CFAOFF
299+03622 FDB SPACE-CFAOFF
300+03630 SMUDGE LDB #MHID
301+03635 LDX <UP
302+03645 EORB [UCURR,X]
303+03650 STB [UCURR,X]
304+03655 NEXT
305+03657 *
306+03660 FCC 'COMPILE-ONLY'
307+03662 FCB 12
308+03664 FCB MFORE
309+03666 FDB SMUDGE-CFAOFF
310+03668 FDB BIF+2
311+03670 FDB 0
312+03672 FDB 0
313+03680 COMPO LDB #MCOMP
314+03685 BRA SMUDGE+2
315+03800 *
316+03810 FCC 'COUNT'
317+03812 FCB 5
318+03814 FCB MFORE
319+03816 FDB COMPO-CFAOFF
320+03818 FDB BIF+2
321+03820 FDB 0
322+03822 FDB 0
323+03830 COUNT LDX ,U CT OF STR
324+03835 LDB ,X+
325+03840 STX ,U STRING
326+03845 CLRA
327+03850 PSHU D COUNT
328+03855 NEXT
329+03900 *
330+03910 FCC '-TRAILING'
331+03912 FCB 9
332+03914 FCB MFORE
333+03916 FDB COUNT-CFAOFF
334+03918 FDB BIF+2
335+03920 FDB DIFIND-CFAOFF
336+03922 FDB 0
337+03930 DTRAIL LDD ,U
338+03935 LDX 2,U
339+03940 LEAX D,X END
340+03945 LDA #$20 ascii SP
341+03950 DTRAL CMPA ,-X
342+03955 BNE DTRAD
343+03960 CMPX 2,U
344+03965 BHS DTRAL
345+03970 DTRAD TFR X,D
346+03975 SUBD 2,U
347+03980 ADDD #1
348+03985 STD ,U
349+03990 NEXT
350+04000 *
351+04010 FCC '(MACHINE)'
352+04012 FCB MCOMP|9
353+04014 FCB MFORE
354+04016 FDB DTRAIL-CFAOFF
355+04018 FDB BIF+2
356+04020 FDB XLINE-CFAOFF
357+04022 FDB INUMB-CFAOFF
358+04030 XMACH TFR Y,X
359+04040 PULS Y UN-NEST
360+04050 JMP ,X IN LINE MACHINE CODE
361+04100 *
--- a/cross_v/BIF3B.ASM
+++ b/cross_v/BIF3B.ASM
@@ -1 +1,172 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 04110 FCC 'TYPE' 04112 FCB 4 04114 FCB MFORE 04116 FDB XMACH-CFAOFF 04118 FDB BIF+2 04120 FDB 0 04122 FDB 0 04130 TYPE LDD ,U 04132 BEQ TYPEQ 04135 ADDD 2,U 04140 STD ,U for compare 04145 LDX 2,U 04150 TYPEL LDB ,X+ 04155 STX 2,U 04160 CLRA 04165 PSHU D 04170 DOCOL 04175 FDB EMIT 04180 FDB XMACH 04185 LDX 2,U 04190 CMPX ,U 04195 BLO TYPEL 04197 TYPEQ LEAU 4,U 04200 NEXT 04205 * 04210 FCC '(.")' 04212 FCB MCOMP.OR.4 04214 FCB MFORE 04216 FDB TYPE-CFAOFF 04218 FDB BIF+2 04220 FDB XPLOOP-CFAOFF 04222 FDB XSCODE-CFAOFF 04230 XDOTQ LDB ,Y+ count 04235 CLRA 04240 TFR Y,X string 04245 LEAY D,Y past it 04250 PSHU D,X 04255 BRA TYPE 04300 * 04310 FCC 'ID.' 04312 FCB 3 04314 FCB MFORE 04316 FDB XDOTQ-CFAOFF 04318 FDB BIF+2 04320 FDB 0 04322 FDB 0 04330 IDDOT PULU X nfa 04335 LDB ,X 04340 ANDB #NLMASK 04350 NEGB 04360 LEAX B,X past it 04370 NEGB 04380 CLRA 04390 PSHU D,X 04400 BRA TYPE 04410 * 04510 FCC 'FILL-IN' 04512 FCB MCOMP.OR.7 04514 FCB MFORE 04516 FDB IDDOT-CFAOFF 04518 FDB BIF+2 04520 FDB 0 04522 FDB 0 04530 FILLIN LDX <UP 04540 LDD UDP,X 04550 SUBD ,U adr 04555 SUBD #2 past 04560 STD [,U++] 04570 NEXT 04590 * 04610 FCC 'BEGIN' 04612 FCB MCOMP.OR.MIMM.OR.5 04614 FCB MFORE 04616 FDB FILLIN-CFAOFF 04618 FDB BIF+2 04620 FDB BASE-CFAOFF 04622 FDB 0 04630 BEGIN DOCOL see fig-FORTH model 04640 FDB QCOMP 04650 FDB HERE target 04660 FDB LIT 04670 FDB ('B)*256+'E 04680 FDB SEMIS 04690 * 04710 FCC 'AGAIN' 04712 FCB MCOMP.OR.MIMM.OR.5 04714 FCB MFORE 04716 FDB BEGIN-CFAOFF 04718 FDB BIF+2 04720 FDB 0 04722 FDB 0 04730 AGAIN DOCOL see fig-FORTH model 04740 FDB LIT 04750 FDB ('B)*256+'E 04760 FDB QPAIRS 04765 FDB COMP 04770 FDB BRANCH 04775 FDB BACK 04780 FDB SEMIS 04790 * 04810 FCC 'UNTIL' 04812 FCB MCOMP.OR.MIMM.OR.5 04814 FCB MFORE 04816 FDB AGAIN-CFAOFF 04818 FDB BIF+2 04820 FDB USLASH-CFAOFF 04822 FDB 0 04830 UNTIL DOCOL see fig-FORTH model 04840 FDB LIT 04850 FDB ('B)*256+'E 04860 FDB QPAIRS 04865 FDB COMP 04870 FDB ZBR 04875 FDB BACK 04880 FDB SEMIS 04890 * 04910 FCC 'WHILE' 04912 FCB MCOMP.OR.MIMM.OR.5 04914 FCB MFORE 04916 FDB UNTIL-CFAOFF 04918 FDB BIF+2 04920 FDB WARM-CFAOFF 04922 FDB WORDPD-CFAOFF 04930 WHILE DOCOL 04940 FDB DUP 04950 FDB LIT 04960 FDB ('B)*256+'E 04970 FDB QPAIRS 04980 FDB COMP 04990 FDB ZBR 05000 FDB HERE adr 05010 FDB ZERO 05020 FDB COMMA 05030 FDB LIT 05040 FDB ('W)*256+'H 05050 FDB SEMIS 05090 * 05110 FCC 'REPEAT' 05112 FCB MCOMP.OR.MIMM.OR.6 05114 FCB MFORE 05116 FDB WHILE-CFAOFF 05118 FDB BIF+2 05120 FDB REPEAL-CFAOFF 05122 FDB ROOT-CFAOFF 05130 REPEAT DOCOL 05140 FDB LIT 05150 FDB ('W)*256+'H 05160 FDB QPAIRS 05170 FDB TOR 05180 FDB AGAIN 05190 FDB RFROM 05200 FDB FILLIN 05210 FDB SEMIS 05290 * 05310 FCC 'DO' 05312 FCB MCOMP.OR.MIMM.OR.2 05314 FCB MFORE 05316 FDB WHILE-CFAOFF 05318 FDB BIF+2 05320 FDB CFEH-CFAOFF 05322 FDB ENDIF-CFAOFF 05330 DO DOCOL see fig-FORTH model 05340 FDB COMP 05350 FDB XDO 05360 FDB HERE 05370 FDB LIT 05380 FDB ('D)*256+'O 05390 FDB SEMIS 05400 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+04110 FCC 'TYPE'
5+04112 FCB 4
6+04114 FCB MFORE
7+04116 FDB XMACH-CFAOFF
8+04118 FDB BIF+2
9+04120 FDB 0
10+04122 FDB 0
11+04130 TYPE LDD ,U
12+04132 BEQ TYPEQ
13+04135 ADDD 2,U
14+04140 STD ,U for compare
15+04145 LDX 2,U
16+04150 TYPEL LDB ,X+
17+04155 STX 2,U
18+04160 CLRA
19+04165 PSHU D
20+04170 DOCOL
21+04175 FDB EMIT
22+04180 FDB XMACH
23+04185 LDX 2,U
24+04190 CMPX ,U
25+04195 BLO TYPEL
26+04197 TYPEQ LEAU 4,U
27+04200 NEXT
28+04205 *
29+04210 FCC '(.")'
30+04212 FCB MCOMP.OR.4
31+04214 FCB MFORE
32+04216 FDB TYPE-CFAOFF
33+04218 FDB BIF+2
34+04220 FDB XPLOOP-CFAOFF
35+04222 FDB XSCODE-CFAOFF
36+04230 XDOTQ LDB ,Y+ count
37+04235 CLRA
38+04240 TFR Y,X string
39+04245 LEAY D,Y past it
40+04250 PSHU D,X
41+04255 BRA TYPE
42+04300 *
43+04310 FCC 'ID.'
44+04312 FCB 3
45+04314 FCB MFORE
46+04316 FDB XDOTQ-CFAOFF
47+04318 FDB BIF+2
48+04320 FDB 0
49+04322 FDB 0
50+04330 IDDOT PULU X nfa
51+04335 LDB ,X
52+04340 ANDB #NLMASK
53+04350 NEGB
54+04360 LEAX B,X past it
55+04370 NEGB
56+04380 CLRA
57+04390 PSHU D,X
58+04400 BRA TYPE
59+04410 *
60+04510 FCC 'FILL-IN'
61+04512 FCB MCOMP.OR.7
62+04514 FCB MFORE
63+04516 FDB IDDOT-CFAOFF
64+04518 FDB BIF+2
65+04520 FDB 0
66+04522 FDB 0
67+04530 FILLIN LDX <UP
68+04540 LDD UDP,X
69+04550 SUBD ,U adr
70+04555 SUBD #2 past
71+04560 STD [,U++]
72+04570 NEXT
73+04590 *
74+04610 FCC 'BEGIN'
75+04612 FCB MCOMP.OR.MIMM.OR.5
76+04614 FCB MFORE
77+04616 FDB FILLIN-CFAOFF
78+04618 FDB BIF+2
79+04620 FDB BASE-CFAOFF
80+04622 FDB 0
81+04630 BEGIN DOCOL see fig-FORTH model
82+04640 FDB QCOMP
83+04650 FDB HERE target
84+04660 FDB LIT
85+04670 FDB ('B)*256+'E
86+04680 FDB SEMIS
87+04690 *
88+04710 FCC 'AGAIN'
89+04712 FCB MCOMP.OR.MIMM.OR.5
90+04714 FCB MFORE
91+04716 FDB BEGIN-CFAOFF
92+04718 FDB BIF+2
93+04720 FDB 0
94+04722 FDB 0
95+04730 AGAIN DOCOL see fig-FORTH model
96+04740 FDB LIT
97+04750 FDB ('B)*256+'E
98+04760 FDB QPAIRS
99+04765 FDB COMP
100+04770 FDB BRANCH
101+04775 FDB BACK
102+04780 FDB SEMIS
103+04790 *
104+04810 FCC 'UNTIL'
105+04812 FCB MCOMP.OR.MIMM.OR.5
106+04814 FCB MFORE
107+04816 FDB AGAIN-CFAOFF
108+04818 FDB BIF+2
109+04820 FDB USLASH-CFAOFF
110+04822 FDB 0
111+04830 UNTIL DOCOL see fig-FORTH model
112+04840 FDB LIT
113+04850 FDB ('B)*256+'E
114+04860 FDB QPAIRS
115+04865 FDB COMP
116+04870 FDB ZBR
117+04875 FDB BACK
118+04880 FDB SEMIS
119+04890 *
120+04910 FCC 'WHILE'
121+04912 FCB MCOMP.OR.MIMM.OR.5
122+04914 FCB MFORE
123+04916 FDB UNTIL-CFAOFF
124+04918 FDB BIF+2
125+04920 FDB WARM-CFAOFF
126+04922 FDB WORDPD-CFAOFF
127+04930 WHILE DOCOL
128+04940 FDB DUP
129+04950 FDB LIT
130+04960 FDB ('B)*256+'E
131+04970 FDB QPAIRS
132+04980 FDB COMP
133+04990 FDB ZBR
134+05000 FDB HERE adr
135+05010 FDB ZERO
136+05020 FDB COMMA
137+05030 FDB LIT
138+05040 FDB ('W)*256+'H
139+05050 FDB SEMIS
140+05090 *
141+05110 FCC 'REPEAT'
142+05112 FCB MCOMP.OR.MIMM.OR.6
143+05114 FCB MFORE
144+05116 FDB WHILE-CFAOFF
145+05118 FDB BIF+2
146+05120 FDB REPEAL-CFAOFF
147+05122 FDB ROOT-CFAOFF
148+05130 REPEAT DOCOL
149+05140 FDB LIT
150+05150 FDB ('W)*256+'H
151+05160 FDB QPAIRS
152+05170 FDB TOR
153+05180 FDB AGAIN
154+05190 FDB RFROM
155+05200 FDB FILLIN
156+05210 FDB SEMIS
157+05290 *
158+05310 FCC 'DO'
159+05312 FCB MCOMP.OR.MIMM.OR.2
160+05314 FCB MFORE
161+05316 FDB WHILE-CFAOFF
162+05318 FDB BIF+2
163+05320 FDB CFEH-CFAOFF
164+05322 FDB ENDIF-CFAOFF
165+05330 DO DOCOL see fig-FORTH model
166+05340 FDB COMP
167+05350 FDB XDO
168+05360 FDB HERE
169+05370 FDB LIT
170+05380 FDB ('D)*256+'O
171+05390 FDB SEMIS
172+05400 *
--- a/cross_v/BIF4.ASM
+++ b/cross_v/BIF4.ASM
@@ -1 +1,301 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 01000 FCC 'M*' 01010 FCB 2 01020 FCB MFORE 01030 FDB DO-CFAOFF 01040 FDB BIF+2 01050 FDB 0 01060 FDB MSLASH-CFAOFF 01070 MSTAR LDD ,U see fig-FORTH model 01080 EORA 2,U n bit 01090 PSHS D 01100 DOCOL 01110 FDB ABS 01120 FDB SWAP 01130 FDB ABS 01140 FDB USTAR 01150 FDB XMACH 01160 LDD ,S++ 01170 LBMI DMINUS 01180 NEXT 01190 * 01200 FCC 'M/' 01210 FCB 2 01220 FCB MFORE 01230 FDB MSTAR-CFAOFF 01240 FDB BIF+2 01250 FDB 0 01260 FDB 0 01270 MSLASH DOCOL see fig-FORTH model 01280 FDB OVER 01290 FDB TOR signs: dividend 01300 FDB TOR & divisor 01310 FDB DABS 01320 FDB R divisor 01330 FDB ABS 01340 FDB USLASH 01350 FDB RFROM divisor 01360 FDB R 01370 FDB XOR quotient sign 01380 FDB CHS 01390 FDB SWAP remainder 01400 FDB RFROM dividend sign 01410 FDB CHS 01420 FDB SWAP 01430 FDB SEMIS 01500 * 01510 FCC '*' 01520 FCB 1 01530 FCB MFORE 01540 FDB MSLASH-CFAOFF 01550 FDB BIF+2 01560 FDB PFIND-CFAOFF 01570 FDB SSMOD-CFAOFF 01580 STAR DOCOL see fig-FORTH model 01590 FDB USTAR 01600 FDB DROP 01610 FDB SEMIS 01700 * 01710 FCC '/MOD' 01720 FCB 4 01730 FCB MFORE 01740 FDB STAR-CFAOFF 01750 FDB BIF+2 01760 FDB 0 01770 FDB 0 01780 SLAMOD LDD ,U 01790 PSHU D 01800 LDD #-1 01810 TST 4,U sign extend 01820 BMI *+5 01830 ADDD #1 01840 STD 2,U 01850 LBRA MSLASH 01900 * 01910 FCC '/' 01920 FCB 1 01930 FCB MFORE 01940 FDB SLAMOD-CFAOFF 01950 FDB BIF+2 01960 FDB NEXSCR-CFAOFF 01970 FDB ADD1-CFAOFF 01980 SLASH DOCOL see fig-FORTH model 01990 FDB SLAMOD 02000 FDB SWAP 02010 FDB DROP 02020 FDB SEMIS 02100 * 02110 FCC 'MOD' 02120 FCB 3 02130 FCB MFORE 02140 FDB SLASH-CFAOFF 02150 FDB BIF+2 02160 FDB 0 02170 FDB 0 02180 MOD DOCOL see fig-FORTH model 02190 FDB SLAMOD 02210 FDB DROP 02220 FDB SEMIS 02300 * 02310 FCC '*/MOD' 02320 FCB 5 02330 FCB MFORE 02340 FDB MOD-CFAOFF 02350 FDB BIF+2 02360 FDB STARSL-CFAOFF 02370 FDB 0 02380 SSMOD DOCOL see fig-FORTH model 02390 FDB TOR 02400 FDB MSTAR 02410 FDB RFROM 02420 FDB MSLASH 02430 FDB SEMIS 02500 * 02510 FCC '*/' 02520 FCB 2 02530 FCB MFORE 02540 FDB SSMOD-CFAOFF 02550 FDB BIF+2 02560 FDB 0 02570 FDB 0 02580 STARSL DOCOL see fig-FORTH model 02590 FDB SSMOD 02600 FDB SWAP 02610 FDB DROP 02630 FDB SEMIS 02700 * 02710 FCC 'M/MOD' 02720 FCB 5 02730 FCB MFORE 02740 FDB STARSL-CFAOFF 02750 FDB BIF+2 02760 FDB MSTAR-CFAOFF 02770 FDB MESS-CFAOFF 02780 MSMOD DOCOL see fig-FORTH model 02790 FDB TOR 02800 FDB ZERO 02810 FDB R 02820 FDB USLASH ms word 02830 FDB RFROM 02840 FDB SWAP 02850 FDB TOR save high q 02860 FDB USLASH ls word 02870 FDB RFROM double q 02880 FDB SEMIS 02900 * 02910 FCC '+BUF' 02920 FCB 4 02930 FCB MFORE 02940 FDB MSMOD-CFAOFF 02950 FDB BIF+2 02960 FDB 0 02970 FDB 0 02980 ADDBUF LDX <UP 02990 LDD BPBUF+2 02995 ADDD #4 03000 ADDD ,U 03010 CMPD ULIMIT,X 03020 BLO ADDBN 03025 LDD UFIRST,X 03030 ADDBN STD ,U 03040 CMPD UPREV,X 03050 BEQ *+7 03060 LDD #-1 03065 BRA *+5 03070 LDD #0 03080 PSHU D 03090 NEXT 03100 * 03110 FCC 'UPDATE' 03120 FCB 6 03130 FCB MFORE 03140 FDB ADDBUF-CFAOFF 03150 FDB BIF+2 03160 FDB UNTIL-CFAOFF 03170 FDB USER-CFAOFF 03180 UPDATE LDX <UP 03190 LDD [UPREV,X] 03200 ORA #$80 03210 STD [UPREV,X] 03220 NEXT 03300 * 03310 FCC 'EMPTY-BUFFERS' 03320 FCB 13 03330 FCB MFORE 03340 FDB UPDATE-CFAOFF 03350 FDB BIF+2 03360 FDB 0 03370 FDB 0 03380 EMTBUF LDX <UP 03390 LDD ULIMIT,X 03395 SUBD #1 catch odd 03400 PSHS D,Y 03410 LDX UFIRST,X 03420 LDY #0 03430 LDD BPBUF+2 03440 EMTBL CMPX ,S 03445 BHS EMTBE 03450 STY ,X++ update bit 03455 LEAX D,X 03460 CMPX ,S 03465 BHS EMTBE 03470 STY ,X++ term NUL 03475 BRA EMTBL 03480 EMTBE PULS D,Y 03490 NEXT 03500 * 03510 FCC 'DRIVE-OFFSET' 03520 FCB 12 03530 FCB MFORE 03540 FDB EMTBUF-CFAOFF 03550 FDB BIF+2 03560 FDB DRIVE-CFAOFF 03570 FDB DROOT-CFAOFF 03580 DROFFS DO1ARR 03590 FDB 0 low 03600 FDB 4 width 03610 FCB 2 element size 03620 FDB 18*35 drive 0 03630 FDB 18*35 03640 FDB $8000 8 Meg max 03650 FDB $8000 03660 FDB $8000 never a drive 5! 03700 * 03710 FCC 'DRIVE' 03720 FCB 5 03730 FCB MFORE 03740 FDB DROFFS-CFAOFF 03750 FDB BIF+2 03760 FDB 0 03770 FDB 0 03780 DRIVE LDX #DROFFS+7 03800 LDD #0 03810 DRIVL ADDD ,X++ 03820 BMI DRIVX table end? 03830 DEC 1,U 03840 BPL DRIVL 03850 SUBD -2,X back one 03860 DRIVX LDX <UP 03870 STD UOFFS,X 03890 LEAU 2,U 03900 NEXT 04000 * 04000 FCC 'R/W' 04010 FCB 3 04020 FCB MFORE 04030 FDB DRIVE-CFAOFF 04040 FDB BIF+2 04050 FDB 0 04060 FDB 0 04070 RW PSHS Y,U,DP 04080 LDY $C006 control table 04090 LDX #DROFFS+7 04100 LDD 2,U 04110 RWD SUBD ,X++ sectors 04120 BHS RWD 04130 BVC RWR table end? 04140 LDD #6 04150 PSHU D 04160 JMP ERROR 04170 RWR ADDD ,--X back one 04175 PSHS X 04180 PSHU D 04190 LDD #18 sectors/track 04200 PSHU D 04210 DOCOL 04220 FDB SLAMOD 04230 FDB XMACH 04240 PULU D 04250 STB 2,Y track 04260 PULU D 04265 INCB 04270 STB 3,Y sector 04280 PULS D table entry 04290 SUBD #DROFFS+7 04300 ASRB drive # 04310 STB 1,Y 04320 LDD 4,U buffer 04330 STD 4,Y 04340 LDB #2 coco READ 04350 LDX ,U 0? 04360 BNE *+3 04370 INCB coco WRITE 04380 STB ,Y op code 04384 CLRA 04386 TFR A,DP 04390 JSR [$C004] ROM handles timeout 04400 PULS Y,U,DP if IRQ enabled 04420 LEAU 6,U 04430 LDX $C006 04440 LDB 6,X coco status 04450 BEQ RWE 04460 LDX <UP 04470 LDD #0 no disc 04480 STD UWARN,X 04490 LDD #8 04500 PSHU D 04510 JMP ERROR 04520 RWE NEXT 05000 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+01000 FCC 'M*'
5+01010 FCB 2
6+01020 FCB MFORE
7+01030 FDB DO-CFAOFF
8+01040 FDB BIF+2
9+01050 FDB 0
10+01060 FDB MSLASH-CFAOFF
11+01070 MSTAR LDD ,U see fig-FORTH model
12+01080 EORA 2,U n bit
13+01090 PSHS D
14+01100 DOCOL
15+01110 FDB ABS
16+01120 FDB SWAP
17+01130 FDB ABS
18+01140 FDB USTAR
19+01150 FDB XMACH
20+01160 LDD ,S++
21+01170 LBMI DMINUS
22+01180 NEXT
23+01190 *
24+01200 FCC 'M/'
25+01210 FCB 2
26+01220 FCB MFORE
27+01230 FDB MSTAR-CFAOFF
28+01240 FDB BIF+2
29+01250 FDB 0
30+01260 FDB 0
31+01270 MSLASH DOCOL see fig-FORTH model
32+01280 FDB OVER
33+01290 FDB TOR signs: dividend
34+01300 FDB TOR & divisor
35+01310 FDB DABS
36+01320 FDB R divisor
37+01330 FDB ABS
38+01340 FDB USLASH
39+01350 FDB RFROM divisor
40+01360 FDB R
41+01370 FDB XOR quotient sign
42+01380 FDB CHS
43+01390 FDB SWAP remainder
44+01400 FDB RFROM dividend sign
45+01410 FDB CHS
46+01420 FDB SWAP
47+01430 FDB SEMIS
48+01500 *
49+01510 FCC '*'
50+01520 FCB 1
51+01530 FCB MFORE
52+01540 FDB MSLASH-CFAOFF
53+01550 FDB BIF+2
54+01560 FDB PFIND-CFAOFF
55+01570 FDB SSMOD-CFAOFF
56+01580 STAR DOCOL see fig-FORTH model
57+01590 FDB USTAR
58+01600 FDB DROP
59+01610 FDB SEMIS
60+01700 *
61+01710 FCC '/MOD'
62+01720 FCB 4
63+01730 FCB MFORE
64+01740 FDB STAR-CFAOFF
65+01750 FDB BIF+2
66+01760 FDB 0
67+01770 FDB 0
68+01780 SLAMOD LDD ,U
69+01790 PSHU D
70+01800 LDD #-1
71+01810 TST 4,U sign extend
72+01820 BMI *+5
73+01830 ADDD #1
74+01840 STD 2,U
75+01850 LBRA MSLASH
76+01900 *
77+01910 FCC '/'
78+01920 FCB 1
79+01930 FCB MFORE
80+01940 FDB SLAMOD-CFAOFF
81+01950 FDB BIF+2
82+01960 FDB NEXSCR-CFAOFF
83+01970 FDB ADD1-CFAOFF
84+01980 SLASH DOCOL see fig-FORTH model
85+01990 FDB SLAMOD
86+02000 FDB SWAP
87+02010 FDB DROP
88+02020 FDB SEMIS
89+02100 *
90+02110 FCC 'MOD'
91+02120 FCB 3
92+02130 FCB MFORE
93+02140 FDB SLASH-CFAOFF
94+02150 FDB BIF+2
95+02160 FDB 0
96+02170 FDB 0
97+02180 MOD DOCOL see fig-FORTH model
98+02190 FDB SLAMOD
99+02210 FDB DROP
100+02220 FDB SEMIS
101+02300 *
102+02310 FCC '*/MOD'
103+02320 FCB 5
104+02330 FCB MFORE
105+02340 FDB MOD-CFAOFF
106+02350 FDB BIF+2
107+02360 FDB STARSL-CFAOFF
108+02370 FDB 0
109+02380 SSMOD DOCOL see fig-FORTH model
110+02390 FDB TOR
111+02400 FDB MSTAR
112+02410 FDB RFROM
113+02420 FDB MSLASH
114+02430 FDB SEMIS
115+02500 *
116+02510 FCC '*/'
117+02520 FCB 2
118+02530 FCB MFORE
119+02540 FDB SSMOD-CFAOFF
120+02550 FDB BIF+2
121+02560 FDB 0
122+02570 FDB 0
123+02580 STARSL DOCOL see fig-FORTH model
124+02590 FDB SSMOD
125+02600 FDB SWAP
126+02610 FDB DROP
127+02630 FDB SEMIS
128+02700 *
129+02710 FCC 'M/MOD'
130+02720 FCB 5
131+02730 FCB MFORE
132+02740 FDB STARSL-CFAOFF
133+02750 FDB BIF+2
134+02760 FDB MSTAR-CFAOFF
135+02770 FDB MESS-CFAOFF
136+02780 MSMOD DOCOL see fig-FORTH model
137+02790 FDB TOR
138+02800 FDB ZERO
139+02810 FDB R
140+02820 FDB USLASH ms word
141+02830 FDB RFROM
142+02840 FDB SWAP
143+02850 FDB TOR save high q
144+02860 FDB USLASH ls word
145+02870 FDB RFROM double q
146+02880 FDB SEMIS
147+02900 *
148+02910 FCC '+BUF'
149+02920 FCB 4
150+02930 FCB MFORE
151+02940 FDB MSMOD-CFAOFF
152+02950 FDB BIF+2
153+02960 FDB 0
154+02970 FDB 0
155+02980 ADDBUF LDX <UP
156+02990 LDD BPBUF+2
157+02995 ADDD #4
158+03000 ADDD ,U
159+03010 CMPD ULIMIT,X
160+03020 BLO ADDBN
161+03025 LDD UFIRST,X
162+03030 ADDBN STD ,U
163+03040 CMPD UPREV,X
164+03050 BEQ *+7
165+03060 LDD #-1
166+03065 BRA *+5
167+03070 LDD #0
168+03080 PSHU D
169+03090 NEXT
170+03100 *
171+03110 FCC 'UPDATE'
172+03120 FCB 6
173+03130 FCB MFORE
174+03140 FDB ADDBUF-CFAOFF
175+03150 FDB BIF+2
176+03160 FDB UNTIL-CFAOFF
177+03170 FDB USER-CFAOFF
178+03180 UPDATE LDX <UP
179+03190 LDD [UPREV,X]
180+03200 ORA #$80
181+03210 STD [UPREV,X]
182+03220 NEXT
183+03300 *
184+03310 FCC 'EMPTY-BUFFERS'
185+03320 FCB 13
186+03330 FCB MFORE
187+03340 FDB UPDATE-CFAOFF
188+03350 FDB BIF+2
189+03360 FDB 0
190+03370 FDB 0
191+03380 EMTBUF LDX <UP
192+03390 LDD ULIMIT,X
193+03395 SUBD #1 catch odd
194+03400 PSHS D,Y
195+03410 LDX UFIRST,X
196+03420 LDY #0
197+03430 LDD BPBUF+2
198+03440 EMTBL CMPX ,S
199+03445 BHS EMTBE
200+03450 STY ,X++ update bit
201+03455 LEAX D,X
202+03460 CMPX ,S
203+03465 BHS EMTBE
204+03470 STY ,X++ term NUL
205+03475 BRA EMTBL
206+03480 EMTBE PULS D,Y
207+03490 NEXT
208+03500 *
209+03510 FCC 'DRIVE-OFFSET'
210+03520 FCB 12
211+03530 FCB MFORE
212+03540 FDB EMTBUF-CFAOFF
213+03550 FDB BIF+2
214+03560 FDB DRIVE-CFAOFF
215+03570 FDB DROOT-CFAOFF
216+03580 DROFFS DO1ARR
217+03590 FDB 0 low
218+03600 FDB 4 width
219+03610 FCB 2 element size
220+03620 FDB 18*35 drive 0
221+03630 FDB 18*35
222+03640 FDB $8000 8 Meg max
223+03650 FDB $8000
224+03660 FDB $8000 never a drive 5!
225+03700 *
226+03710 FCC 'DRIVE'
227+03720 FCB 5
228+03730 FCB MFORE
229+03740 FDB DROFFS-CFAOFF
230+03750 FDB BIF+2
231+03760 FDB 0
232+03770 FDB 0
233+03780 DRIVE LDX #DROFFS+7
234+03800 LDD #0
235+03810 DRIVL ADDD ,X++
236+03820 BMI DRIVX table end?
237+03830 DEC 1,U
238+03840 BPL DRIVL
239+03850 SUBD -2,X back one
240+03860 DRIVX LDX <UP
241+03870 STD UOFFS,X
242+03890 LEAU 2,U
243+03900 NEXT
244+04000 *
245+04000 FCC 'R/W'
246+04010 FCB 3
247+04020 FCB MFORE
248+04030 FDB DRIVE-CFAOFF
249+04040 FDB BIF+2
250+04050 FDB 0
251+04060 FDB 0
252+04070 RW PSHS Y,U,DP
253+04080 LDY $C006 control table
254+04090 LDX #DROFFS+7
255+04100 LDD 2,U
256+04110 RWD SUBD ,X++ sectors
257+04120 BHS RWD
258+04130 BVC RWR table end?
259+04140 LDD #6
260+04150 PSHU D
261+04160 JMP ERROR
262+04170 RWR ADDD ,--X back one
263+04175 PSHS X
264+04180 PSHU D
265+04190 LDD #18 sectors/track
266+04200 PSHU D
267+04210 DOCOL
268+04220 FDB SLAMOD
269+04230 FDB XMACH
270+04240 PULU D
271+04250 STB 2,Y track
272+04260 PULU D
273+04265 INCB
274+04270 STB 3,Y sector
275+04280 PULS D table entry
276+04290 SUBD #DROFFS+7
277+04300 ASRB drive #
278+04310 STB 1,Y
279+04320 LDD 4,U buffer
280+04330 STD 4,Y
281+04340 LDB #2 coco READ
282+04350 LDX ,U 0?
283+04360 BNE *+3
284+04370 INCB coco WRITE
285+04380 STB ,Y op code
286+04384 CLRA
287+04386 TFR A,DP
288+04390 JSR [$C004] ROM handles timeout
289+04400 PULS Y,U,DP if IRQ enabled
290+04420 LEAU 6,U
291+04430 LDX $C006
292+04440 LDB 6,X coco status
293+04450 BEQ RWE
294+04460 LDX <UP
295+04470 LDD #0 no disc
296+04480 STD UWARN,X
297+04490 LDD #8
298+04500 PSHU D
299+04510 JMP ERROR
300+04520 RWE NEXT
301+05000 *
--- a/cross_v/BIF4B.ASM
+++ b/cross_v/BIF4B.ASM
@@ -1 +1,204 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 05010 FCC '?ERROR' 05020 FCB 6 05030 FCB MFORE 05040 FDB RW-CFAOFF 05050 FDB BIF+2 05060 FDB 0 05070 FDB 0 05080 QERR PULU X 05090 LDD ,U++ 05100 BNE *+4 05110 NEXT 05120 PSHU X 05130 JMP ERROR 05200 * 05210 FCC '?COMP' 05220 FCB 5 05230 FCB MFORE 05240 FDB QERR-CFAOFF 05250 FDB BIF+2 05260 FDB TOR-CFAOFF 05270 FDB QEXEC-CFAOFF 05280 QCOMP LDX <UP 05290 LDB USTATE+1,X 05300 ANDB #SCOMP 05310 BNE QPAIRN 05320 LDD #$11 05330 BRA QPAIRE 05400 * 05410 FCC '?EXEC' 05420 FCB 5 05430 FCB MFORE 05440 FDB QCOMP-CFAOFF 05450 FDB BIF+2 05460 FDB QCST-CFAOFF 05470 FDB QPAIRS-CFAOFF 05480 QEXEC LDX <UP 05490 LDB USTATE+1,X 05500 BEQ QPAIRN 05510 LDD #$12 05520 BRA QPAIRE 05600 * 05610 FCC '?PAIRS' 05620 FCB 6 05630 FCB MFORE 05640 FDB QEXEC-CFAOFF 05650 FDB BIF+2 05660 FDB QLOAD-CFAOFF 05670 FDB QTERM-CFAOFF 05680 QPAIRS PULU D 05690 SUBD ,U++ 05700 BEQ QPAIRN 05710 LDD #$13 05720 QPAIRE PSHU D robbed 05730 JMP ERROR 05740 QPAIRN NEXT robbed 05800 * 05810 FCC '?CSP' 05820 FCB 4 05830 FCB MFORE 05840 FDB QPAIRS-CFAOFF 05850 FDB BIF+2 05860 FDB 0 05870 FDB 0 05880 QCSP LDX <UP 05890 TFR U,D 05900 SUBD UCSP,X 05910 BEQ QPAIRN 05920 LDD #$14 05930 BRA QPAIRE 06000 * 06010 FCC '?LOADING' 06020 FCB 8 06030 FCB MFORE 06040 FDB QCSP-CFAOFF 06050 FDB BIF+2 06060 FDB 0 06070 FDB 0 06080 QLOAD LDX <UP 06090 LDD UBLK,X 06100 BNE QPAIRN 06110 LDD #$16 06120 BRA QPAIRE 06200 * 06210 FCC 'COMPILE' 06220 FCB 7 06230 FCB MFORE 06240 FDB QLOAD-CFAOFF 06250 FDB BIF+2 06260 FDB COLD-CFAOFF 06270 FDB COMPO-CFAOFF 06280 COMP DOCOL 06290 FDB QCOMP 06300 FDB XMACH 06310 COMPIP LDD ,Y++ robbed by IP, 06320 PSHU D 06330 JMP COMMA 06390 * 06410 FCC 'LOOP' 06420 FCB MIMM.OR.MCOMP.OR.4 06430 FCB MFORE 06440 FDB COMP-CFAOFF 06450 FDB BIF+2 06460 FDB KEY-CFAOFF 06470 FDB NUMBER-CFAOFF 06480 LOOP DOCOL see fig-FORTH model 06490 FDB LIT 06500 FDB ('D)*256+'O 06510 FDB QPAIRS 06520 FDB COMP 06530 FDB XLOOP 06540 FDB BACK 06550 FDB SEMIS 06590 * 06610 FCC '+LOOP' 06620 FCB MIMM.OR.MCOMP.OR.5 06630 FCB MFORE 06640 FDB LOOP-CFAOFF 06650 FDB BIF+2 06660 FDB CHS-CFAOFF 06670 FDB COMMA-CFAOFF 06680 PLOOP DOCOL see fig-FORTH model 06690 FDB LIT 06700 FDB ('D)*256+'O 06710 FDB QPAIRS 06720 FDB COMP 06730 FDB XPLOOP 06740 FDB BACK 06750 FDB SEMIS 06790 * 06809 FCC 'LOAD' 06820 FCB 4 06830 FCB MFORE 06840 FDB PLOOP-CFAOFF 06850 FDB BIF+2 06860 FDB 0 06870 FDB 0 06880 LOAD PSHS Y see fig-FORTH model 06890 LDY <UP 06900 LDD UIN,Y 06910 LDX UBLK,Y 06920 PSHS X,D 06930 LDD #0 06940 STD UIN,Y 06950 DOCOL 06960 FDB BPSCR 06970 FDB STAR 06980 FDB BLK 06990 FDB STORE 07000 FDB INTERP 07010 FDB XMACH 07020 PULS D,X 07030 STD UIN,Y 07040 STX UBLK,Y 07050 PULS Y 07060 NEXT 07090 * 07110 FCC '<BUILDS' 07120 FCB MCOMP.OR.7 07130 FCB MFORE 07140 FDB LOAD-CFAOFF 07150 FDB BIF+2 07160 FDB 0 07170 FDB 0 07180 BUILDS DOCOL see fig-FORTH model 07190 FDB ZERO 07200 FDB CONST 07210 FDB SEMIS 07290 * 07310 FCC 'DOES>' 07320 FCB MCOMP.OR.5 07330 FCB MFORE 07340 FDB BUILDS-CFAOFF 07350 FDB BIF+2 07360 FDB 0 07370 FDB 0 07380 DOES LDX <UP 07430 LDX UCURR,X 07440 LDD ADOES,PCR 07450 STD CFAOFF,X 07460 STY PFAOFF,X 07470 PULS Y 07480 NEXT 07490 ADOES JSR <XDOES 07790 * 07810 FCC ';CODE' 07820 FCB MCOMP.OR.MIMM.OR.5 07830 FCB MFORE 07840 FDB DOES-CFAOFF 07850 FDB BIF+2 07860 FDB SEMI-CFAOFF 07870 FDB SEMIS-CFAOFF 07880 SCODE DOCOL not fig 07890 FDB QCSP 07900 FDB COMP 07910 FDB XSCODE 07915 FDB LBRAK 07920 FDB ASMBLR 07930 FDB STOCSP to check later 07940 FDB SEMIS 07950 * something else must SMUDGE 07960 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+05010 FCC '?ERROR'
5+05020 FCB 6
6+05030 FCB MFORE
7+05040 FDB RW-CFAOFF
8+05050 FDB BIF+2
9+05060 FDB 0
10+05070 FDB 0
11+05080 QERR PULU X
12+05090 LDD ,U++
13+05100 BNE *+4
14+05110 NEXT
15+05120 PSHU X
16+05130 JMP ERROR
17+05200 *
18+05210 FCC '?COMP'
19+05220 FCB 5
20+05230 FCB MFORE
21+05240 FDB QERR-CFAOFF
22+05250 FDB BIF+2
23+05260 FDB TOR-CFAOFF
24+05270 FDB QEXEC-CFAOFF
25+05280 QCOMP LDX <UP
26+05290 LDB USTATE+1,X
27+05300 ANDB #SCOMP
28+05310 BNE QPAIRN
29+05320 LDD #$11
30+05330 BRA QPAIRE
31+05400 *
32+05410 FCC '?EXEC'
33+05420 FCB 5
34+05430 FCB MFORE
35+05440 FDB QCOMP-CFAOFF
36+05450 FDB BIF+2
37+05460 FDB QCST-CFAOFF
38+05470 FDB QPAIRS-CFAOFF
39+05480 QEXEC LDX <UP
40+05490 LDB USTATE+1,X
41+05500 BEQ QPAIRN
42+05510 LDD #$12
43+05520 BRA QPAIRE
44+05600 *
45+05610 FCC '?PAIRS'
46+05620 FCB 6
47+05630 FCB MFORE
48+05640 FDB QEXEC-CFAOFF
49+05650 FDB BIF+2
50+05660 FDB QLOAD-CFAOFF
51+05670 FDB QTERM-CFAOFF
52+05680 QPAIRS PULU D
53+05690 SUBD ,U++
54+05700 BEQ QPAIRN
55+05710 LDD #$13
56+05720 QPAIRE PSHU D robbed
57+05730 JMP ERROR
58+05740 QPAIRN NEXT robbed
59+05800 *
60+05810 FCC '?CSP'
61+05820 FCB 4
62+05830 FCB MFORE
63+05840 FDB QPAIRS-CFAOFF
64+05850 FDB BIF+2
65+05860 FDB 0
66+05870 FDB 0
67+05880 QCSP LDX <UP
68+05890 TFR U,D
69+05900 SUBD UCSP,X
70+05910 BEQ QPAIRN
71+05920 LDD #$14
72+05930 BRA QPAIRE
73+06000 *
74+06010 FCC '?LOADING'
75+06020 FCB 8
76+06030 FCB MFORE
77+06040 FDB QCSP-CFAOFF
78+06050 FDB BIF+2
79+06060 FDB 0
80+06070 FDB 0
81+06080 QLOAD LDX <UP
82+06090 LDD UBLK,X
83+06100 BNE QPAIRN
84+06110 LDD #$16
85+06120 BRA QPAIRE
86+06200 *
87+06210 FCC 'COMPILE'
88+06220 FCB 7
89+06230 FCB MFORE
90+06240 FDB QLOAD-CFAOFF
91+06250 FDB BIF+2
92+06260 FDB COLD-CFAOFF
93+06270 FDB COMPO-CFAOFF
94+06280 COMP DOCOL
95+06290 FDB QCOMP
96+06300 FDB XMACH
97+06310 COMPIP LDD ,Y++ robbed by IP,
98+06320 PSHU D
99+06330 JMP COMMA
100+06390 *
101+06410 FCC 'LOOP'
102+06420 FCB MIMM.OR.MCOMP.OR.4
103+06430 FCB MFORE
104+06440 FDB COMP-CFAOFF
105+06450 FDB BIF+2
106+06460 FDB KEY-CFAOFF
107+06470 FDB NUMBER-CFAOFF
108+06480 LOOP DOCOL see fig-FORTH model
109+06490 FDB LIT
110+06500 FDB ('D)*256+'O
111+06510 FDB QPAIRS
112+06520 FDB COMP
113+06530 FDB XLOOP
114+06540 FDB BACK
115+06550 FDB SEMIS
116+06590 *
117+06610 FCC '+LOOP'
118+06620 FCB MIMM.OR.MCOMP.OR.5
119+06630 FCB MFORE
120+06640 FDB LOOP-CFAOFF
121+06650 FDB BIF+2
122+06660 FDB CHS-CFAOFF
123+06670 FDB COMMA-CFAOFF
124+06680 PLOOP DOCOL see fig-FORTH model
125+06690 FDB LIT
126+06700 FDB ('D)*256+'O
127+06710 FDB QPAIRS
128+06720 FDB COMP
129+06730 FDB XPLOOP
130+06740 FDB BACK
131+06750 FDB SEMIS
132+06790 *
133+06809 FCC 'LOAD'
134+06820 FCB 4
135+06830 FCB MFORE
136+06840 FDB PLOOP-CFAOFF
137+06850 FDB BIF+2
138+06860 FDB 0
139+06870 FDB 0
140+06880 LOAD PSHS Y see fig-FORTH model
141+06890 LDY <UP
142+06900 LDD UIN,Y
143+06910 LDX UBLK,Y
144+06920 PSHS X,D
145+06930 LDD #0
146+06940 STD UIN,Y
147+06950 DOCOL
148+06960 FDB BPSCR
149+06970 FDB STAR
150+06980 FDB BLK
151+06990 FDB STORE
152+07000 FDB INTERP
153+07010 FDB XMACH
154+07020 PULS D,X
155+07030 STD UIN,Y
156+07040 STX UBLK,Y
157+07050 PULS Y
158+07060 NEXT
159+07090 *
160+07110 FCC '<BUILDS'
161+07120 FCB MCOMP.OR.7
162+07130 FCB MFORE
163+07140 FDB LOAD-CFAOFF
164+07150 FDB BIF+2
165+07160 FDB 0
166+07170 FDB 0
167+07180 BUILDS DOCOL see fig-FORTH model
168+07190 FDB ZERO
169+07200 FDB CONST
170+07210 FDB SEMIS
171+07290 *
172+07310 FCC 'DOES>'
173+07320 FCB MCOMP.OR.5
174+07330 FCB MFORE
175+07340 FDB BUILDS-CFAOFF
176+07350 FDB BIF+2
177+07360 FDB 0
178+07370 FDB 0
179+07380 DOES LDX <UP
180+07430 LDX UCURR,X
181+07440 LDD ADOES,PCR
182+07450 STD CFAOFF,X
183+07460 STY PFAOFF,X
184+07470 PULS Y
185+07480 NEXT
186+07490 ADOES JSR <XDOES
187+07790 *
188+07810 FCC ';CODE'
189+07820 FCB MCOMP.OR.MIMM.OR.5
190+07830 FCB MFORE
191+07840 FDB DOES-CFAOFF
192+07850 FDB BIF+2
193+07860 FDB SEMI-CFAOFF
194+07870 FDB SEMIS-CFAOFF
195+07880 SCODE DOCOL not fig
196+07890 FDB QCSP
197+07900 FDB COMP
198+07910 FDB XSCODE
199+07915 FDB LBRAK
200+07920 FDB ASMBLR
201+07930 FDB STOCSP to check later
202+07940 FDB SEMIS
203+07950 * something else must SMUDGE
204+07960 *
--- a/cross_v/BIF5.ASM
+++ b/cross_v/BIF5.ASM
@@ -1 +1,368 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (See BIF/ASM) 00030 * 00900 FCC 'IP,' 00910 FCB MCOMP.OR.3 00920 FCB MFORE 00930 FDB SCODE-CFAOFF 00940 FDB BIF+2 00950 FDB 0 00960 FDB 0 00970 IPCOM JMP COMPIP 00980 * 01000 FCC '?STACK' 01010 FCB 6 01020 FCB MFORE 01030 FDB IPCOM-CFAOFF 01040 FDB BIF+2 01050 FDB 0 01060 FDB 0 01070 QSTACK LDX <UP 01080 CMPS UR0,X 01090 BLS *+6 01100 QSTACU LDB #$0A 01110 BRA QSTERR 01115 LDD [UR0,X] hole 01116 BNE QSTACU 01120 CMPS US0,X 01130 BHI *+6 01140 QSTACO LDB #$0B 01150 BRA QSTERR 01155 LDD [US0,X] hole 01156 BNE QSTACE 01160 CMPU US0,X 01170 BLS *+6 01180 QSTACE LDB #1 01190 BRA QSTERR 01240 CMPU UDP,X 01260 BLS *+4 01270 NEXT 01280 LDB #7 01290 QSTERR CLRA 01300 PSHU D 01310 JMP ERROR 01320 * 01400 FCC 'BUFFER' 01410 FCB 6 01420 FCB MFORE 01430 FDB QSTACK-CFAOFF 01440 FDB BIF+2 01450 FDB BLK-CFAOFF 01460 FDB CCOMMA-CFAOFF 01470 BUFFER PSHS Y 01480 LDY <UP 01490 LDD UUSE,Y 01495 PSHS D save it 01500 PSHU D 01510 DOCOL 01520 FDB ADDBUF 01530 FDB ZBR prev? 01540 FDB -6 01550 FDB XMACH 01560 PULU D 01570 STD UUSE,Y new use 01580 LDX ,S buffer 01590 LDD ,X block 01600 BPL BUFNW 01610 ANDA #$7F mask update 01620 LEAX 2,X data 01630 PSHU D,X 01640 LDD #0 write 01650 PSHU D 01660 DOCOL 01670 FDB RW 01680 FDB XMACH 01690 BUFNW PULU D new block 01700 PULS X 01710 STD ,X 01720 STX UPREV,Y 01730 LEAX 2,X data 01740 PSHU X 01750 PULS Y 01760 NEXT 01790 * 01800 FCC 'BLOCK' 01810 FCB 5 01820 FCB MFORE 01830 FDB BUFFER-CFAOFF 01840 FDB BIF+2 01850 FDB 0 01860 FDB BS-CFAOFF 01870 BLOCK PSHS Y 01880 LDY <UP 01890 LDD UOFFS,Y 01900 ADDD ,U 01910 STD ,U 01920 LDX UPREV,Y 01930 BLOKL LDD ,X block 01940 ANDA #$7F mask update 01950 CMPD ,U this buffer? 01960 BEQ BLOKFD 01970 PSHU X 01980 DOCOL 01990 FDB ADDBUF 02000 FDB TBR 02010 FDB BLOKLE-*-2 02020 FDB DROP buffer 02030 FDB DUP block 02040 FDB BUFFER lru 02050 FDB OVER 02060 FDB OVER 02070 FDB SWAP 02080 FDB MONE 02090 FDB RW get block 02100 FDB SUB2 02110 BLOKLE FDB XMACH 02120 PULU X buffer 02130 BRA BLOKL 02140 BLOKFD STX UPREV,Y 02150 LEAX 2,X data 02160 STX ,U 02165 PULS Y 02170 NEXT 02180 * 02200 FCC '(LINE)' 02210 FCB 6 02220 FCB MFORE 02230 FDB BLOCK-CFAOFF 02240 FDB BIF+2 02250 FDB PINSTA-CFAOFF 02260 FDB XLOOP-CFAOFF 02270 XLINE DOCOL see fig-FORTH model 02280 FDB TOR 02290 FDB CPERL line width 02300 FDB BPBUF 02310 FDB SSMOD byte in sector 02320 FDB RFROM 02330 FDB BPSCR 02340 FDB STAR base of screen 02350 FDB ADD 02360 FDB BLOCK 02370 FDB ADD byte of buffer 02380 FDB CPERL 02390 FDB SEMIS 02400 * 02500 FCC '.LINE' 02510 FCB 5 02520 FCB MFORE 02530 FDB XLINE-CFAOFF 02540 FDB BIF+2 02550 FDB DOTQ-CFAOFF 02560 FDB DOTR-CFAOFF 02570 DOTLIN DOCOL see fig-FORTH model 02580 FDB XLINE 02590 FDB DTRAIL 02600 FDB TYPE 02610 FDB SEMIS 02690 * 02700 FCC 'SPACES' 02710 FCB 6 02720 FCB MFORE 02730 FDB DOTLIN-CFAOFF 02740 FDB BIF+2 02750 FDB 0 02760 FDB 0 02770 SPACES LDD ,U see fig-FORTH model 02780 BGT SPACEY 02783 LEAU 2,U 02785 NEXT 02790 SPACEY DOCOL 02800 FDB ZERO 02810 FDB XDO 02820 FDB SPACE 02830 FDB XLOOP 02840 FDB -6 02850 FDB SEMIS 02890 * 02900 FCC '<#' 02910 FCB 2 02920 FCB MFORE 02930 FDB SPACES-CFAOFF 02940 FDB BIF+2 02950 FDB 0 02960 FDB BUILDS-CFAOFF 02970 BEGHSH LDX <UP 02980 LDD UPAD,X 02990 STD UHLD,X 03000 NEXT 03090 * 03100 FCC '#>' 03110 FCB 2 03120 FCB MFORE 03130 FDB BEGHSH-CFAOFF 03140 FDB BIF+2 03150 FDB STORE-CFAOFF 03160 FDB TICK-CFAOFF 03170 ENDHSH LDX <UP 03180 LDD UPAD,X 03190 SUBD UHLD,X 03200 STD ,U count 03210 LDD UHLD,X 03220 STD 2,U 03230 NEXT 03290 * 03300 FCC 'SIGN' 03310 FCB 4 03320 FCB MFORE 03330 FDB ENDHSH-CFAOFF 03340 FDB BIF+2 03350 FDB SCR-CFAOFF 03360 FDB 0 03370 SIGN DOCOL see fig-FORTH model 03380 FDB ROT 03390 FDB ZLESS 03400 FDB ZBR 03410 FDB SIGNP-*-2 03420 FDB LIT 03430 FDB $2D 03440 FDB HOLD 03450 SIGNP FDB SEMIS 03490 * 03500 FCC '#' 03510 FCB 1 03520 FCB MFORE 03530 FDB SIGN-CFAOFF 03540 FDB BIF+2 03550 FDB 0 03560 FDB 0 03570 HASH DOCOL see fig-FORTH model 03580 FDB BASE 03590 FDB FETCH 03600 FDB MSMOD 03610 FDB ROT 03620 FDB XMACH 03630 LDB 1,U 03640 CMPB #9 03650 BLS HASHX+4 03660 CMPB #'A-'Z+10 03670 BLS HASHX+2 03680 HASHX ADDB #'a-'Z-1 03690 ADDB #'A-'9-1 03700 ADDB #'0 03710 STB 1,U 03720 DOCOL 03730 FDB HOLD 03740 FDB SEMIS 03790 * 03800 FCC '#S' 03810 FCB 2 03820 FCB MFORE 03830 FDB HASH-CFAOFF 03840 FDB BIF+2 03850 FDB 0 03860 FDB 0 03870 HASHS DOCOL 03880 FDB HASH 03890 FDB XMACH 03900 LDD 2,U 03910 BNE HASHS 03920 LDD ,U 03930 BNE HASHS 03940 NEXT 03950 * 04000 FCC 'D.R' 04010 FCB 3 04020 FCB MFORE 04030 FDB HASHS-CFAOFF 04040 FDB BIF+2 04050 FDB 0 04060 FDB 0 04070 DDOTR DOCOL see fig-FORTH model 04080 FDB TOR 04090 FDB SWAP save sign 04100 FDB OVER 04110 FDB DABS 04120 FDB BEGHSH 04130 FDB HASHS 04140 FDB SIGN 04150 FDB ENDHSH 04160 FDB RFROM field width 04170 FDB OVER 04180 FDB SUB 04190 FDB SPACES <0 => no spaces 04200 FDB TYPE 04210 FDB SEMIS 04220 * 04230 FCC 'D.' 04240 FCB 2 04250 FCB MFORE 04260 FDB DDOTR-CFAOFF 04270 FDB BIF+2 04280 FDB 0 04290 FDB DDOTR-CFAOFF 04300 DDOT DOCOL see fig-FORTH model 04310 FDB ZERO 04320 FDB DDOTR 04330 FDB SPACE 04340 FDB SEMIS 04350 * 04360 FCC '.R' 04370 FCB 2 04380 FCB MFORE 04390 FDB DDOT-CFAOFF 04400 FDB BIF+2 04410 FDB 0 04420 FDB 0 04430 DOTR DOCOL see fig-FORTH model 04440 FDB TOR 04450 FDB STOD 04460 FDB RFROM 04470 FDB DDOTR 04480 FDB SEMIS 04490 * 04500 FCC '.' 04510 FCB 1 04520 FCB MFORE 04530 FDB DOTR-CFAOFF 04540 FDB BIF+2 04550 FDB DDUP-CFAOFF 04560 FDB DOTLIN-CFAOFF 04570 DOT DOCOL see fig-FORTH model 04580 FDB STOD 04590 FDB DDOT 04600 FDB SEMIS 04610 * 04620 FCC '?' 04630 FCB 1 04640 FCB MFORE 04650 FDB DOT-CFAOFF 04660 FDB BIF+2 04670 FDB TOVID-CFAOFF 04680 FDB TNULL-CFAOFF 04690 QDOT LDD [,U++] 04700 PSHU D 04710 BRA DOT 04720 * 04800 FCC 'MESSAGE' 04810 FCB 7 04820 FCB MFORE 04830 FDB DOTLIN-CFAOFF 04840 FDB BIF+2 04850 FDB MAX-CFAOFF 04860 FDB 0 04870 MESS DOCOL see fig-FORTH model 04880 FDB WARN 04890 FDB FETCH print text? 04893 FDB ONE 04896 FDB AND 04900 FDB ZBR 04910 FDB MESSN-*-2 04920 FDB DDUP not 0? 04930 FDB ZBR 04940 FDB MESSX-*-2 04950 FDB LIT 04960 FDB 4 04970 FDB OFFSET 04980 FDB FETCH 04990 FDB BPSCR 05000 FDB SLASH screen offset 05010 FDB SUB 05020 FDB DOTLIN 05030 FDB BRANCH 05040 FDB MESSX-*-2 05050 MESSN FDB XDOTQ 05060 FCB 6 05070 FCC 'MSG # ' 05080 FDB DOT 05090 MESSX FDB SEMIS 05190 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (See BIF/ASM)
3+00030 *
4+00900 FCC 'IP,'
5+00910 FCB MCOMP.OR.3
6+00920 FCB MFORE
7+00930 FDB SCODE-CFAOFF
8+00940 FDB BIF+2
9+00950 FDB 0
10+00960 FDB 0
11+00970 IPCOM JMP COMPIP
12+00980 *
13+01000 FCC '?STACK'
14+01010 FCB 6
15+01020 FCB MFORE
16+01030 FDB IPCOM-CFAOFF
17+01040 FDB BIF+2
18+01050 FDB 0
19+01060 FDB 0
20+01070 QSTACK LDX <UP
21+01080 CMPS UR0,X
22+01090 BLS *+6
23+01100 QSTACU LDB #$0A
24+01110 BRA QSTERR
25+01115 LDD [UR0,X] hole
26+01116 BNE QSTACU
27+01120 CMPS US0,X
28+01130 BHI *+6
29+01140 QSTACO LDB #$0B
30+01150 BRA QSTERR
31+01155 LDD [US0,X] hole
32+01156 BNE QSTACE
33+01160 CMPU US0,X
34+01170 BLS *+6
35+01180 QSTACE LDB #1
36+01190 BRA QSTERR
37+01240 CMPU UDP,X
38+01260 BLS *+4
39+01270 NEXT
40+01280 LDB #7
41+01290 QSTERR CLRA
42+01300 PSHU D
43+01310 JMP ERROR
44+01320 *
45+01400 FCC 'BUFFER'
46+01410 FCB 6
47+01420 FCB MFORE
48+01430 FDB QSTACK-CFAOFF
49+01440 FDB BIF+2
50+01450 FDB BLK-CFAOFF
51+01460 FDB CCOMMA-CFAOFF
52+01470 BUFFER PSHS Y
53+01480 LDY <UP
54+01490 LDD UUSE,Y
55+01495 PSHS D save it
56+01500 PSHU D
57+01510 DOCOL
58+01520 FDB ADDBUF
59+01530 FDB ZBR prev?
60+01540 FDB -6
61+01550 FDB XMACH
62+01560 PULU D
63+01570 STD UUSE,Y new use
64+01580 LDX ,S buffer
65+01590 LDD ,X block
66+01600 BPL BUFNW
67+01610 ANDA #$7F mask update
68+01620 LEAX 2,X data
69+01630 PSHU D,X
70+01640 LDD #0 write
71+01650 PSHU D
72+01660 DOCOL
73+01670 FDB RW
74+01680 FDB XMACH
75+01690 BUFNW PULU D new block
76+01700 PULS X
77+01710 STD ,X
78+01720 STX UPREV,Y
79+01730 LEAX 2,X data
80+01740 PSHU X
81+01750 PULS Y
82+01760 NEXT
83+01790 *
84+01800 FCC 'BLOCK'
85+01810 FCB 5
86+01820 FCB MFORE
87+01830 FDB BUFFER-CFAOFF
88+01840 FDB BIF+2
89+01850 FDB 0
90+01860 FDB BS-CFAOFF
91+01870 BLOCK PSHS Y
92+01880 LDY <UP
93+01890 LDD UOFFS,Y
94+01900 ADDD ,U
95+01910 STD ,U
96+01920 LDX UPREV,Y
97+01930 BLOKL LDD ,X block
98+01940 ANDA #$7F mask update
99+01950 CMPD ,U this buffer?
100+01960 BEQ BLOKFD
101+01970 PSHU X
102+01980 DOCOL
103+01990 FDB ADDBUF
104+02000 FDB TBR
105+02010 FDB BLOKLE-*-2
106+02020 FDB DROP buffer
107+02030 FDB DUP block
108+02040 FDB BUFFER lru
109+02050 FDB OVER
110+02060 FDB OVER
111+02070 FDB SWAP
112+02080 FDB MONE
113+02090 FDB RW get block
114+02100 FDB SUB2
115+02110 BLOKLE FDB XMACH
116+02120 PULU X buffer
117+02130 BRA BLOKL
118+02140 BLOKFD STX UPREV,Y
119+02150 LEAX 2,X data
120+02160 STX ,U
121+02165 PULS Y
122+02170 NEXT
123+02180 *
124+02200 FCC '(LINE)'
125+02210 FCB 6
126+02220 FCB MFORE
127+02230 FDB BLOCK-CFAOFF
128+02240 FDB BIF+2
129+02250 FDB PINSTA-CFAOFF
130+02260 FDB XLOOP-CFAOFF
131+02270 XLINE DOCOL see fig-FORTH model
132+02280 FDB TOR
133+02290 FDB CPERL line width
134+02300 FDB BPBUF
135+02310 FDB SSMOD byte in sector
136+02320 FDB RFROM
137+02330 FDB BPSCR
138+02340 FDB STAR base of screen
139+02350 FDB ADD
140+02360 FDB BLOCK
141+02370 FDB ADD byte of buffer
142+02380 FDB CPERL
143+02390 FDB SEMIS
144+02400 *
145+02500 FCC '.LINE'
146+02510 FCB 5
147+02520 FCB MFORE
148+02530 FDB XLINE-CFAOFF
149+02540 FDB BIF+2
150+02550 FDB DOTQ-CFAOFF
151+02560 FDB DOTR-CFAOFF
152+02570 DOTLIN DOCOL see fig-FORTH model
153+02580 FDB XLINE
154+02590 FDB DTRAIL
155+02600 FDB TYPE
156+02610 FDB SEMIS
157+02690 *
158+02700 FCC 'SPACES'
159+02710 FCB 6
160+02720 FCB MFORE
161+02730 FDB DOTLIN-CFAOFF
162+02740 FDB BIF+2
163+02750 FDB 0
164+02760 FDB 0
165+02770 SPACES LDD ,U see fig-FORTH model
166+02780 BGT SPACEY
167+02783 LEAU 2,U
168+02785 NEXT
169+02790 SPACEY DOCOL
170+02800 FDB ZERO
171+02810 FDB XDO
172+02820 FDB SPACE
173+02830 FDB XLOOP
174+02840 FDB -6
175+02850 FDB SEMIS
176+02890 *
177+02900 FCC '<#'
178+02910 FCB 2
179+02920 FCB MFORE
180+02930 FDB SPACES-CFAOFF
181+02940 FDB BIF+2
182+02950 FDB 0
183+02960 FDB BUILDS-CFAOFF
184+02970 BEGHSH LDX <UP
185+02980 LDD UPAD,X
186+02990 STD UHLD,X
187+03000 NEXT
188+03090 *
189+03100 FCC '#>'
190+03110 FCB 2
191+03120 FCB MFORE
192+03130 FDB BEGHSH-CFAOFF
193+03140 FDB BIF+2
194+03150 FDB STORE-CFAOFF
195+03160 FDB TICK-CFAOFF
196+03170 ENDHSH LDX <UP
197+03180 LDD UPAD,X
198+03190 SUBD UHLD,X
199+03200 STD ,U count
200+03210 LDD UHLD,X
201+03220 STD 2,U
202+03230 NEXT
203+03290 *
204+03300 FCC 'SIGN'
205+03310 FCB 4
206+03320 FCB MFORE
207+03330 FDB ENDHSH-CFAOFF
208+03340 FDB BIF+2
209+03350 FDB SCR-CFAOFF
210+03360 FDB 0
211+03370 SIGN DOCOL see fig-FORTH model
212+03380 FDB ROT
213+03390 FDB ZLESS
214+03400 FDB ZBR
215+03410 FDB SIGNP-*-2
216+03420 FDB LIT
217+03430 FDB $2D
218+03440 FDB HOLD
219+03450 SIGNP FDB SEMIS
220+03490 *
221+03500 FCC '#'
222+03510 FCB 1
223+03520 FCB MFORE
224+03530 FDB SIGN-CFAOFF
225+03540 FDB BIF+2
226+03550 FDB 0
227+03560 FDB 0
228+03570 HASH DOCOL see fig-FORTH model
229+03580 FDB BASE
230+03590 FDB FETCH
231+03600 FDB MSMOD
232+03610 FDB ROT
233+03620 FDB XMACH
234+03630 LDB 1,U
235+03640 CMPB #9
236+03650 BLS HASHX+4
237+03660 CMPB #'A-'Z+10
238+03670 BLS HASHX+2
239+03680 HASHX ADDB #'a-'Z-1
240+03690 ADDB #'A-'9-1
241+03700 ADDB #'0
242+03710 STB 1,U
243+03720 DOCOL
244+03730 FDB HOLD
245+03740 FDB SEMIS
246+03790 *
247+03800 FCC '#S'
248+03810 FCB 2
249+03820 FCB MFORE
250+03830 FDB HASH-CFAOFF
251+03840 FDB BIF+2
252+03850 FDB 0
253+03860 FDB 0
254+03870 HASHS DOCOL
255+03880 FDB HASH
256+03890 FDB XMACH
257+03900 LDD 2,U
258+03910 BNE HASHS
259+03920 LDD ,U
260+03930 BNE HASHS
261+03940 NEXT
262+03950 *
263+04000 FCC 'D.R'
264+04010 FCB 3
265+04020 FCB MFORE
266+04030 FDB HASHS-CFAOFF
267+04040 FDB BIF+2
268+04050 FDB 0
269+04060 FDB 0
270+04070 DDOTR DOCOL see fig-FORTH model
271+04080 FDB TOR
272+04090 FDB SWAP save sign
273+04100 FDB OVER
274+04110 FDB DABS
275+04120 FDB BEGHSH
276+04130 FDB HASHS
277+04140 FDB SIGN
278+04150 FDB ENDHSH
279+04160 FDB RFROM field width
280+04170 FDB OVER
281+04180 FDB SUB
282+04190 FDB SPACES <0 => no spaces
283+04200 FDB TYPE
284+04210 FDB SEMIS
285+04220 *
286+04230 FCC 'D.'
287+04240 FCB 2
288+04250 FCB MFORE
289+04260 FDB DDOTR-CFAOFF
290+04270 FDB BIF+2
291+04280 FDB 0
292+04290 FDB DDOTR-CFAOFF
293+04300 DDOT DOCOL see fig-FORTH model
294+04310 FDB ZERO
295+04320 FDB DDOTR
296+04330 FDB SPACE
297+04340 FDB SEMIS
298+04350 *
299+04360 FCC '.R'
300+04370 FCB 2
301+04380 FCB MFORE
302+04390 FDB DDOT-CFAOFF
303+04400 FDB BIF+2
304+04410 FDB 0
305+04420 FDB 0
306+04430 DOTR DOCOL see fig-FORTH model
307+04440 FDB TOR
308+04450 FDB STOD
309+04460 FDB RFROM
310+04470 FDB DDOTR
311+04480 FDB SEMIS
312+04490 *
313+04500 FCC '.'
314+04510 FCB 1
315+04520 FCB MFORE
316+04530 FDB DOTR-CFAOFF
317+04540 FDB BIF+2
318+04550 FDB DDUP-CFAOFF
319+04560 FDB DOTLIN-CFAOFF
320+04570 DOT DOCOL see fig-FORTH model
321+04580 FDB STOD
322+04590 FDB DDOT
323+04600 FDB SEMIS
324+04610 *
325+04620 FCC '?'
326+04630 FCB 1
327+04640 FCB MFORE
328+04650 FDB DOT-CFAOFF
329+04660 FDB BIF+2
330+04670 FDB TOVID-CFAOFF
331+04680 FDB TNULL-CFAOFF
332+04690 QDOT LDD [,U++]
333+04700 PSHU D
334+04710 BRA DOT
335+04720 *
336+04800 FCC 'MESSAGE'
337+04810 FCB 7
338+04820 FCB MFORE
339+04830 FDB DOTLIN-CFAOFF
340+04840 FDB BIF+2
341+04850 FDB MAX-CFAOFF
342+04860 FDB 0
343+04870 MESS DOCOL see fig-FORTH model
344+04880 FDB WARN
345+04890 FDB FETCH print text?
346+04893 FDB ONE
347+04896 FDB AND
348+04900 FDB ZBR
349+04910 FDB MESSN-*-2
350+04920 FDB DDUP not 0?
351+04930 FDB ZBR
352+04940 FDB MESSX-*-2
353+04950 FDB LIT
354+04960 FDB 4
355+04970 FDB OFFSET
356+04980 FDB FETCH
357+04990 FDB BPSCR
358+05000 FDB SLASH screen offset
359+05010 FDB SUB
360+05020 FDB DOTLIN
361+05030 FDB BRANCH
362+05040 FDB MESSX-*-2
363+05050 MESSN FDB XDOTQ
364+05060 FCB 6
365+05070 FCC 'MSG # '
366+05080 FDB DOT
367+05090 MESSX FDB SEMIS
368+05190 *
--- a/cross_v/BIF5B.ASM
+++ b/cross_v/BIF5B.ASM
@@ -1 +1,150 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (See BIF/ASM) 00030 * 05200 FCC '(ABORT)' 05210 FCB 7 05220 FCB MFORE 05230 FDB MESS-CFAOFF 05240 FDB BIF+2 05250 FDB XDOTQ-CFAOFF 05260 FDB XDO-CFAOFF 05270 IABORT DOCOL see fig-FORTH model 05280 FDB ABORT 05290 FDB SEMIS 05390 * 05400 FCC 'ERROR' 05410 FCB 5 05420 FCB MFORE 05430 FDB IABORT-CFAOFF 05440 FDB BIF+2 05450 FDB ERASE-CFAOFF 05460 FDB EXEC-CFAOFF 05470 ERROR DOCOL 05480 FDB WORDPD last WORD 05490 FDB COUNT 05500 FDB TYPE 05510 FDB XDOTQ 05520 FCB 3 05530 FCC ' ? ' 05540 FDB MESS 05550 FDB WARN 05560 FDB FETCH 05570 FDB ZLESS 05580 FDB ZBR 05590 FDB 2 05600 FDB IABORT 05610 FDB SPSTO 05620 FDB IN 05630 FDB FETCH 05640 FDB BLK 05650 FDB FETCH 05660 FDB QUIT 05670 FDB SEMIS 05680 * 05700 FCC 'EDITOR' 05710 FCB MIMM.OR.6 05720 FCB MFORE 05730 FDB ERROR-CFAOFF 05740 FDB BIF+2 parent voc 05750 FDB 0 05760 FDB 0 05770 EDITOR DOVOC 05780 FDB EBLK-CFAOFF (NFA) 05790 * 05800 FCC 'QSYNC' 05810 FCB 5 05820 FCB MFORE 05830 FDB EDITOR-CFAOFF 05840 FDB EDITOR+2 05850 FDB 0 05860 FDB 0 05870 QSYNC LDX <UP 05880 LDB URNUM+1,X 05890 LDA #4 05900 STD $88 05910 NEXT 05990 * 06000 FCC 'EBLK' 06010 FCB 4 06020 FCB MFORE 06030 FDB QSYNC-CFAOFF 06040 FDB EDITOR+2 06050 FDB CURSOR-CFAOFF 06060 FDB QDUMP-CFAOFF 06070 EBLK DOUSER 06080 FCB UEBLK 06090 * 06000 FCC 'CURSOR' 06010 FCB 6 06020 FCB MFORE 06030 FDB QSYNC-CFAOFF 06040 FDB EDITOR+2 06050 FDB 0 06060 FDB 0 06070 CURSOR DOCOL 06080 FDB EBLK 06090 FDB FETCH 06100 FDB BLOCK 06110 FDB RNUM 06120 FDB FETCH 06130 FDB ADD 06140 FDB SEMIS 06190 * 06200 FCC 'QDUMP' 06210 FCB 5 06220 FCB MFORE 06230 FDB CURSOR-CFAOFF 06240 FDB EDITOR+2 06250 FDB QARROW-CFAOFF 06260 FDB QUICK-CFAOFF 06270 QDUMP PSHS Y 06280 PULU Y 06290 LDX #$400 screen 06300 CLRA 06310 QDUMPL LDB ,Y+ 06320 STB ,X+ 06330 DECA 06340 BNE QDUMPL 06350 PULS Y 06360 NEXT 06390 * 06400 FCC 'QARROW' 06410 FCB 6 06420 FCB MFORE 06430 FDB QDUMP-CFAOFF 06440 FDB EDITOR+2 06450 FDB 0 06460 FDB 0 06470 QARROW LDB 1,U 06480 LDA #4 06490 LEAX QTBL,PCR 06500 QAROL CMPB ,X+ 06510 BEQ QARODO 06520 DECA 06530 BNE QAROL 06540 CMPB #21 shifted BS? 06550 BNE QAROX 06552 DOCOL 06554 FDB CURSOR 06556 FDB XMACH 06560 LDD #$2060 spaces 06565 STA [,U++] buffer 06570 STB [$88] video 06580 LDB #-1 06590 BRA *+4 06600 QARODO LDB 3,X 06610 LDX <UP 06620 ADDB URNUM+1,X 06630 STB URNUM+1,X 06650 LDD #0 06660 STD ,U 06670 QAROX NEXT 06700 QTBL FCB '^ up 06710 FCB 10 down 06720 FCB 8 back 06730 FCB 9 front 06740 FCB -32 offsets 06750 FCB 32 06760 FCB -1 06770 FCB 1 06790 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (See BIF/ASM)
3+00030 *
4+05200 FCC '(ABORT)'
5+05210 FCB 7
6+05220 FCB MFORE
7+05230 FDB MESS-CFAOFF
8+05240 FDB BIF+2
9+05250 FDB XDOTQ-CFAOFF
10+05260 FDB XDO-CFAOFF
11+05270 IABORT DOCOL see fig-FORTH model
12+05280 FDB ABORT
13+05290 FDB SEMIS
14+05390 *
15+05400 FCC 'ERROR'
16+05410 FCB 5
17+05420 FCB MFORE
18+05430 FDB IABORT-CFAOFF
19+05440 FDB BIF+2
20+05450 FDB ERASE-CFAOFF
21+05460 FDB EXEC-CFAOFF
22+05470 ERROR DOCOL
23+05480 FDB WORDPD last WORD
24+05490 FDB COUNT
25+05500 FDB TYPE
26+05510 FDB XDOTQ
27+05520 FCB 3
28+05530 FCC ' ? '
29+05540 FDB MESS
30+05550 FDB WARN
31+05560 FDB FETCH
32+05570 FDB ZLESS
33+05580 FDB ZBR
34+05590 FDB 2
35+05600 FDB IABORT
36+05610 FDB SPSTO
37+05620 FDB IN
38+05630 FDB FETCH
39+05640 FDB BLK
40+05650 FDB FETCH
41+05660 FDB QUIT
42+05670 FDB SEMIS
43+05680 *
44+05700 FCC 'EDITOR'
45+05710 FCB MIMM.OR.6
46+05720 FCB MFORE
47+05730 FDB ERROR-CFAOFF
48+05740 FDB BIF+2 parent voc
49+05750 FDB 0
50+05760 FDB 0
51+05770 EDITOR DOVOC
52+05780 FDB EBLK-CFAOFF (NFA)
53+05790 *
54+05800 FCC 'QSYNC'
55+05810 FCB 5
56+05820 FCB MFORE
57+05830 FDB EDITOR-CFAOFF
58+05840 FDB EDITOR+2
59+05850 FDB 0
60+05860 FDB 0
61+05870 QSYNC LDX <UP
62+05880 LDB URNUM+1,X
63+05890 LDA #4
64+05900 STD $88
65+05910 NEXT
66+05990 *
67+06000 FCC 'EBLK'
68+06010 FCB 4
69+06020 FCB MFORE
70+06030 FDB QSYNC-CFAOFF
71+06040 FDB EDITOR+2
72+06050 FDB CURSOR-CFAOFF
73+06060 FDB QDUMP-CFAOFF
74+06070 EBLK DOUSER
75+06080 FCB UEBLK
76+06090 *
77+06000 FCC 'CURSOR'
78+06010 FCB 6
79+06020 FCB MFORE
80+06030 FDB QSYNC-CFAOFF
81+06040 FDB EDITOR+2
82+06050 FDB 0
83+06060 FDB 0
84+06070 CURSOR DOCOL
85+06080 FDB EBLK
86+06090 FDB FETCH
87+06100 FDB BLOCK
88+06110 FDB RNUM
89+06120 FDB FETCH
90+06130 FDB ADD
91+06140 FDB SEMIS
92+06190 *
93+06200 FCC 'QDUMP'
94+06210 FCB 5
95+06220 FCB MFORE
96+06230 FDB CURSOR-CFAOFF
97+06240 FDB EDITOR+2
98+06250 FDB QARROW-CFAOFF
99+06260 FDB QUICK-CFAOFF
100+06270 QDUMP PSHS Y
101+06280 PULU Y
102+06290 LDX #$400 screen
103+06300 CLRA
104+06310 QDUMPL LDB ,Y+
105+06320 STB ,X+
106+06330 DECA
107+06340 BNE QDUMPL
108+06350 PULS Y
109+06360 NEXT
110+06390 *
111+06400 FCC 'QARROW'
112+06410 FCB 6
113+06420 FCB MFORE
114+06430 FDB QDUMP-CFAOFF
115+06440 FDB EDITOR+2
116+06450 FDB 0
117+06460 FDB 0
118+06470 QARROW LDB 1,U
119+06480 LDA #4
120+06490 LEAX QTBL,PCR
121+06500 QAROL CMPB ,X+
122+06510 BEQ QARODO
123+06520 DECA
124+06530 BNE QAROL
125+06540 CMPB #21 shifted BS?
126+06550 BNE QAROX
127+06552 DOCOL
128+06554 FDB CURSOR
129+06556 FDB XMACH
130+06560 LDD #$2060 spaces
131+06565 STA [,U++] buffer
132+06570 STB [$88] video
133+06580 LDB #-1
134+06590 BRA *+4
135+06600 QARODO LDB 3,X
136+06610 LDX <UP
137+06620 ADDB URNUM+1,X
138+06630 STB URNUM+1,X
139+06650 LDD #0
140+06660 STD ,U
141+06670 QAROX NEXT
142+06700 QTBL FCB '^ up
143+06710 FCB 10 down
144+06720 FCB 8 back
145+06730 FCB 9 front
146+06740 FCB -32 offsets
147+06750 FCB 32
148+06760 FCB -1
149+06770 FCB 1
150+06790 *
--- a/cross_v/BIF6.ASM
+++ b/cross_v/BIF6.ASM
@@ -1 +1,328 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 01000 FCC '(NUMBER)' 01010 FCB 8 01020 FCB MFORE 01030 FDB QARROW-CFAOFF 01040 FDB BIF+2 01050 FDB 0 01060 FDB PREF-CFAOFF 01070 INUMB PSHS Y see fig-FORTH model 01080 PULU Y adr 01085 LDX <UP 01090 INUMBL LDB ,Y+ ch 01092 CLRA 01094 PSHU D 01096 LDD UBASE,X 01100 PSHU D 01110 DOCOL 01120 FDB DIGIT 01130 FDB ZBR 01140 FDB INUMBE-*-2 01150 FDB SWAP accm ms word 01160 FDB BASE 01180 FDB FETCH 01190 FDB USTAR shift in base 01200 FDB DROP ls word is digit 01210 FDB ROT accm ls word 01220 FDB BASE 01230 FDB FETCH 01240 FDB USTAR shift in base 01250 FDB DADD accumulate 01260 FDB XMACH adjust dpl 01270 LDX <UP 01280 LDD UDPL,X 01290 BMI INUMBL 01300 ADDD #1 01310 STD UDPL,X 01320 BRA INUMBL 01330 INUMBE FDB XMACH 01340 LEAY -1,Y back up 01350 PSHU Y adr 01355 PULS Y 01360 NEXT 01390 * 01400 FCC 'NUMBER' 01410 FCB 6 01420 FCB MFORE 01430 FDB INUMB-CFAOFF 01440 FDB BIF+2 01450 FDB MIN-CFAOFF 01460 FDB OVER-CFAOFF 01470 NUMBER PULU X 01475 LEAX 1,X skip ct 01480 LDB ,X <0? 01490 SUBB #'- 01500 BNE *+4 01510 LEAX 1,X 01520 CLRA 01530 PSHU D 01540 CLRB 01550 PSHU D double 0 01560 PSHU D 01570 PSHU X adr 01580 LDD #-1 clear DPL 01590 NUMBA LDX <UP 01600 STD UDPL,X 01610 DOCOL 01620 FDB INUMB 01630 FDB XMACH 01640 LDX ,U end ch 01650 LDB ,X ascii NUL? 01660 BEQ NUMBQ 01670 CMPB #': double? 01680 BEQ NUMBD 01690 CMPB #'- 01700 BLO NUMBE 01710 CMPB #'/ 01720 BHI NUMBE 01730 NUMBD LEAX 1,X past dec pt 01740 STX ,U 01750 LDD #0 set DPL 01760 BRA NUMBA 01770 NUMBE LDD #0 01780 PSHU D 01790 JMP ERROR 01800 NUMBQ LEAU 2,U valid, drop 01810 DOCOL 01830 FDB ROT <0? 01840 FDB TBR 01850 FDB 2 01860 FDB DMINUS 01870 FDB SEMIS 01890 * 01900 FCC 'WORDPAD' 01910 FCB 7 01920 FCB MFORE 01930 FDB NUMBER-CFAOFF 01940 FDB BIF+2 01950 FDB 0 01960 FDB 0 01970 WORDPD DOUCON 01980 FCB UWP 01990 * 02000 FCC 'WORD' 02010 FCB 4 02020 FCB MFORE 02030 FDB WORDPD-CFAOFF 02040 FDB BIF+2 02050 FDB WHILE-CFAOFF 02060 FDB BCOMP-CFAOFF 02070 WORD PSHS Y 02075 LDY <UP 02080 LDD UBLK,Y terminal? 02090 BEQ WORDK buffer 02100 PSHU D 02110 DOCOL 02120 FDB BLOCK 02130 FDB XMACH 02140 PULU D 02150 BRA *+4 UTIB < 16! 02160 WORDK LDD UTIB,Y 02170 ADDD UIN,Y parse at 02180 PULU X ch 02190 TFR D,Y save 02200 PSHU X,Y (swap) 02205 DOCOL 02210 FDB ENCLOS 02215 FDB XMACH 02220 PSHS Y start at 02221 LDD 2,U symbol at 02222 SUBD ,S++ delimiter count 02223 ADDD ,U length 02225 LDX <UP 02226 ADDD UIN,X 02227 STD UIN,X update 02230 PULU D length 02240 CMPD #NLMASK 02250 BLS *+5 clip 02260 LDD #NLMASK 02270 LDY UWP,X 02280 STB ,Y+ count 02290 CLR B,Y trailing NUL 02300 PSHU D,Y dest & ct 02330 PULS Y 02340 DOCOL 02350 FDB CMOVE copy 02360 FDB SEMIS 02490 * 02500 FCC 'BS' 02510 FCB 2 02520 FCB MFORE 02530 FDB WORD-CFAOFF 02540 FDB BIF+2 02550 FDB BRANCH-CFAOFF 02560 FDB 0 02570 BS DOUCON 02580 FCB UBS 02590 * 02600 FCC 'EXPECT' 02610 FCB 6 02620 FCB MFORE 02630 FDB BS-CFAOFF 02640 FDB BIF+2 02650 FDB ERROR-CFAOFF 02660 FDB FILL-CFAOFF 02670 EXPECT PSHS Y 02680 LDD ,U count 02690 LDY 2,U buffer 02700 SUBD #1 for NUL 02710 BLT EXPE0+2 02720 BEQ EXPE0 02730 LEAX D,Y 02740 STX ,U limit 02750 EXPEL DOCOL 02760 FDB KEY 02770 FDB XMACH 02780 LDB 1,U 02790 LDX <UP 02800 CMPB UBS+1,X 02810 BNE EXPECR 02820 CMPY 4,U beginning? 02830 BLS EXPEM0 02840 LEAY -1,Y 02850 BRA EXPEM 02860 EXPEM0 CLR 1,U to emit 02870 BRA EXPEM 02880 EXPECR CMPB #$0D 02890 BNE EXPEPT 02900 STY 2,U terminate 02910 BRA EXPEM 02913 EXPEPT CMPB #$20 printable? 02916 BLO EXPEM0 02920 STB ,Y+ store ch 02930 EXPEM DOCOL 02940 FDB EMIT 02950 FDB XMACH 02960 CMPY ,U 02970 BLO EXPEL 02980 EXPE0 CLR ,Y NUL term 02990 LEAU 4,U 03000 PULS Y 03010 NEXT 03090 * 03600 TWID EQU 128 width of a terminal line 03605 FCC 'QUERY' 03610 FCB 5 03620 FCB MFORE 03630 FDB EXPECT-CFAOFF 03640 FDB BIF+2 03650 FDB LOOP-CFAOFF 03660 FDB SWAP-CFAOFF 03670 QUERY LDX <UP 03680 LDD #0 03690 STD UIN,X 03700 LDD #TWID 03710 LDX UTIB,X 03720 PSHU D,X 03730 DOCOL 03740 FDB EXPECT 03750 FDB SEMIS 03790 * 03795 FCB 0 ; NEEDED 03800 FCB MIMM|0 03810 FCB MFORE 03820 FDB QUERY-CFAOFF 03830 FDB BIF+2 03840 FDB 0 03850 FDB 0 03860 NUBLK LDX <UP 03870 LDD UBLK,X 03880 BEQ NUBLT 03890 ADDD #1 03900 STD UBLK,X 03910 LDD #0 03920 STD UIN,X 03930 LDD BPSCR+2 2^n 03940 DECB 03950 ANDB UBLK+1,X end of screen? 03960 BNE NUBLT+2 03970 DOCOL 03980 FDB QEXEC 03990 FDB XMACH 04000 NUBLT PULS Y end interp 04010 NEXT 04090 * 04100 FCC 'FIND' 04110 FCB 4 04120 FCB MFORE 04130 FDB NUBLK-CFAOFF 04140 FDB BIF+2 04150 FDB EXPECT-CFAOFF 04160 FDB HERE-CFAOFF 04170 FIND LDD 2,U 04180 ADDD #1 past ct 04190 STD 2,U 04200 LDD ,U 04210 FINDL LDX 2,U 04220 PSHU D,X 04230 DOCOL 04240 FDB PFIND 04250 FDB XMACH 04260 LDD ,U flag 04270 BNE FINDF 04290 LDX 4,U vocabulary 04300 LDD GFAOFF-PFAOFF,X parent 04305 CMPD 4,U root voc? 04310 BEQ FINDF 04315 LEAU 4,U 04320 STD ,U 04330 BRA FINDL 04360 FINDF LDD [2,U] 04365 LEAU 4,U entry 04370 STD 2,U 04380 NEXT 04390 * 04400 FCC '-DFIND' 04410 FCB 6 04420 FCB MFORE 04430 FDB FIND-CFAOFF 04440 FDB BIF+2 04450 FDB 0 04460 FDB 0 04470 DDFIND DOCOL 04480 FDB DROOT defs first 04490 FDB ROOT context next 04500 DFIND1 FDB BL 04510 FDB WORD name in buf 04520 FDB FETCH vocab2 04530 FDB SWAP 04540 FDB FETCH vocab1 04550 FDB OVER 04560 FDB OVER 04570 FDB EQ same? 04580 FDB ZBR 04590 FDB 6 04600 FDB DROP 04610 FDB BRANCH 04620 FDB DFIND2-*-2 04630 FDB WORDPD buf 04640 FDB SWAP 04650 FDB FIND 1st 04660 FDB OVER 04670 FDB ZBR 04680 FDB 6 04690 FDB ROT 04700 FDB DROP 04710 FDB SEMIS 04720 FDB DROP 04730 FDB DROP 04740 DFIND2 FDB WORDPD 04750 FDB SWAP 04760 FDB FIND 2nd 04770 FDB SEMIS 04790 * 04800 FCC '-IFIND' 04810 FCB 6 04820 FCB MFORE 04830 FDB DDFIND-CFAOFF 04840 FDB BIF+2 04850 FDB 0 04860 FDB 0 04870 DIFIND DOCOL 04880 FDB ROOT context first 04890 FDB DROOT defs next 04900 FDB BRANCH 04910 FDB DFIND1-*-2 05190 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+01000 FCC '(NUMBER)'
5+01010 FCB 8
6+01020 FCB MFORE
7+01030 FDB QARROW-CFAOFF
8+01040 FDB BIF+2
9+01050 FDB 0
10+01060 FDB PREF-CFAOFF
11+01070 INUMB PSHS Y see fig-FORTH model
12+01080 PULU Y adr
13+01085 LDX <UP
14+01090 INUMBL LDB ,Y+ ch
15+01092 CLRA
16+01094 PSHU D
17+01096 LDD UBASE,X
18+01100 PSHU D
19+01110 DOCOL
20+01120 FDB DIGIT
21+01130 FDB ZBR
22+01140 FDB INUMBE-*-2
23+01150 FDB SWAP accm ms word
24+01160 FDB BASE
25+01180 FDB FETCH
26+01190 FDB USTAR shift in base
27+01200 FDB DROP ls word is digit
28+01210 FDB ROT accm ls word
29+01220 FDB BASE
30+01230 FDB FETCH
31+01240 FDB USTAR shift in base
32+01250 FDB DADD accumulate
33+01260 FDB XMACH adjust dpl
34+01270 LDX <UP
35+01280 LDD UDPL,X
36+01290 BMI INUMBL
37+01300 ADDD #1
38+01310 STD UDPL,X
39+01320 BRA INUMBL
40+01330 INUMBE FDB XMACH
41+01340 LEAY -1,Y back up
42+01350 PSHU Y adr
43+01355 PULS Y
44+01360 NEXT
45+01390 *
46+01400 FCC 'NUMBER'
47+01410 FCB 6
48+01420 FCB MFORE
49+01430 FDB INUMB-CFAOFF
50+01440 FDB BIF+2
51+01450 FDB MIN-CFAOFF
52+01460 FDB OVER-CFAOFF
53+01470 NUMBER PULU X
54+01475 LEAX 1,X skip ct
55+01480 LDB ,X <0?
56+01490 SUBB #'-
57+01500 BNE *+4
58+01510 LEAX 1,X
59+01520 CLRA
60+01530 PSHU D
61+01540 CLRB
62+01550 PSHU D double 0
63+01560 PSHU D
64+01570 PSHU X adr
65+01580 LDD #-1 clear DPL
66+01590 NUMBA LDX <UP
67+01600 STD UDPL,X
68+01610 DOCOL
69+01620 FDB INUMB
70+01630 FDB XMACH
71+01640 LDX ,U end ch
72+01650 LDB ,X ascii NUL?
73+01660 BEQ NUMBQ
74+01670 CMPB #': double?
75+01680 BEQ NUMBD
76+01690 CMPB #'-
77+01700 BLO NUMBE
78+01710 CMPB #'/
79+01720 BHI NUMBE
80+01730 NUMBD LEAX 1,X past dec pt
81+01740 STX ,U
82+01750 LDD #0 set DPL
83+01760 BRA NUMBA
84+01770 NUMBE LDD #0
85+01780 PSHU D
86+01790 JMP ERROR
87+01800 NUMBQ LEAU 2,U valid, drop
88+01810 DOCOL
89+01830 FDB ROT <0?
90+01840 FDB TBR
91+01850 FDB 2
92+01860 FDB DMINUS
93+01870 FDB SEMIS
94+01890 *
95+01900 FCC 'WORDPAD'
96+01910 FCB 7
97+01920 FCB MFORE
98+01930 FDB NUMBER-CFAOFF
99+01940 FDB BIF+2
100+01950 FDB 0
101+01960 FDB 0
102+01970 WORDPD DOUCON
103+01980 FCB UWP
104+01990 *
105+02000 FCC 'WORD'
106+02010 FCB 4
107+02020 FCB MFORE
108+02030 FDB WORDPD-CFAOFF
109+02040 FDB BIF+2
110+02050 FDB WHILE-CFAOFF
111+02060 FDB BCOMP-CFAOFF
112+02070 WORD PSHS Y
113+02075 LDY <UP
114+02080 LDD UBLK,Y terminal?
115+02090 BEQ WORDK buffer
116+02100 PSHU D
117+02110 DOCOL
118+02120 FDB BLOCK
119+02130 FDB XMACH
120+02140 PULU D
121+02150 BRA *+4 UTIB < 16!
122+02160 WORDK LDD UTIB,Y
123+02170 ADDD UIN,Y parse at
124+02180 PULU X ch
125+02190 TFR D,Y save
126+02200 PSHU X,Y (swap)
127+02205 DOCOL
128+02210 FDB ENCLOS
129+02215 FDB XMACH
130+02220 PSHS Y start at
131+02221 LDD 2,U symbol at
132+02222 SUBD ,S++ delimiter count
133+02223 ADDD ,U length
134+02225 LDX <UP
135+02226 ADDD UIN,X
136+02227 STD UIN,X update
137+02230 PULU D length
138+02240 CMPD #NLMASK
139+02250 BLS *+5 clip
140+02260 LDD #NLMASK
141+02270 LDY UWP,X
142+02280 STB ,Y+ count
143+02290 CLR B,Y trailing NUL
144+02300 PSHU D,Y dest & ct
145+02330 PULS Y
146+02340 DOCOL
147+02350 FDB CMOVE copy
148+02360 FDB SEMIS
149+02490 *
150+02500 FCC 'BS'
151+02510 FCB 2
152+02520 FCB MFORE
153+02530 FDB WORD-CFAOFF
154+02540 FDB BIF+2
155+02550 FDB BRANCH-CFAOFF
156+02560 FDB 0
157+02570 BS DOUCON
158+02580 FCB UBS
159+02590 *
160+02600 FCC 'EXPECT'
161+02610 FCB 6
162+02620 FCB MFORE
163+02630 FDB BS-CFAOFF
164+02640 FDB BIF+2
165+02650 FDB ERROR-CFAOFF
166+02660 FDB FILL-CFAOFF
167+02670 EXPECT PSHS Y
168+02680 LDD ,U count
169+02690 LDY 2,U buffer
170+02700 SUBD #1 for NUL
171+02710 BLT EXPE0+2
172+02720 BEQ EXPE0
173+02730 LEAX D,Y
174+02740 STX ,U limit
175+02750 EXPEL DOCOL
176+02760 FDB KEY
177+02770 FDB XMACH
178+02780 LDB 1,U
179+02790 LDX <UP
180+02800 CMPB UBS+1,X
181+02810 BNE EXPECR
182+02820 CMPY 4,U beginning?
183+02830 BLS EXPEM0
184+02840 LEAY -1,Y
185+02850 BRA EXPEM
186+02860 EXPEM0 CLR 1,U to emit
187+02870 BRA EXPEM
188+02880 EXPECR CMPB #$0D
189+02890 BNE EXPEPT
190+02900 STY 2,U terminate
191+02910 BRA EXPEM
192+02913 EXPEPT CMPB #$20 printable?
193+02916 BLO EXPEM0
194+02920 STB ,Y+ store ch
195+02930 EXPEM DOCOL
196+02940 FDB EMIT
197+02950 FDB XMACH
198+02960 CMPY ,U
199+02970 BLO EXPEL
200+02980 EXPE0 CLR ,Y NUL term
201+02990 LEAU 4,U
202+03000 PULS Y
203+03010 NEXT
204+03090 *
205+03600 TWID EQU 128 width of a terminal line
206+03605 FCC 'QUERY'
207+03610 FCB 5
208+03620 FCB MFORE
209+03630 FDB EXPECT-CFAOFF
210+03640 FDB BIF+2
211+03650 FDB LOOP-CFAOFF
212+03660 FDB SWAP-CFAOFF
213+03670 QUERY LDX <UP
214+03680 LDD #0
215+03690 STD UIN,X
216+03700 LDD #TWID
217+03710 LDX UTIB,X
218+03720 PSHU D,X
219+03730 DOCOL
220+03740 FDB EXPECT
221+03750 FDB SEMIS
222+03790 *
223+03795 FCB 0 ; NEEDED
224+03800 FCB MIMM|0
225+03810 FCB MFORE
226+03820 FDB QUERY-CFAOFF
227+03830 FDB BIF+2
228+03840 FDB 0
229+03850 FDB 0
230+03860 NUBLK LDX <UP
231+03870 LDD UBLK,X
232+03880 BEQ NUBLT
233+03890 ADDD #1
234+03900 STD UBLK,X
235+03910 LDD #0
236+03920 STD UIN,X
237+03930 LDD BPSCR+2 2^n
238+03940 DECB
239+03950 ANDB UBLK+1,X end of screen?
240+03960 BNE NUBLT+2
241+03970 DOCOL
242+03980 FDB QEXEC
243+03990 FDB XMACH
244+04000 NUBLT PULS Y end interp
245+04010 NEXT
246+04090 *
247+04100 FCC 'FIND'
248+04110 FCB 4
249+04120 FCB MFORE
250+04130 FDB NUBLK-CFAOFF
251+04140 FDB BIF+2
252+04150 FDB EXPECT-CFAOFF
253+04160 FDB HERE-CFAOFF
254+04170 FIND LDD 2,U
255+04180 ADDD #1 past ct
256+04190 STD 2,U
257+04200 LDD ,U
258+04210 FINDL LDX 2,U
259+04220 PSHU D,X
260+04230 DOCOL
261+04240 FDB PFIND
262+04250 FDB XMACH
263+04260 LDD ,U flag
264+04270 BNE FINDF
265+04290 LDX 4,U vocabulary
266+04300 LDD GFAOFF-PFAOFF,X parent
267+04305 CMPD 4,U root voc?
268+04310 BEQ FINDF
269+04315 LEAU 4,U
270+04320 STD ,U
271+04330 BRA FINDL
272+04360 FINDF LDD [2,U]
273+04365 LEAU 4,U entry
274+04370 STD 2,U
275+04380 NEXT
276+04390 *
277+04400 FCC '-DFIND'
278+04410 FCB 6
279+04420 FCB MFORE
280+04430 FDB FIND-CFAOFF
281+04440 FDB BIF+2
282+04450 FDB 0
283+04460 FDB 0
284+04470 DDFIND DOCOL
285+04480 FDB DROOT defs first
286+04490 FDB ROOT context next
287+04500 DFIND1 FDB BL
288+04510 FDB WORD name in buf
289+04520 FDB FETCH vocab2
290+04530 FDB SWAP
291+04540 FDB FETCH vocab1
292+04550 FDB OVER
293+04560 FDB OVER
294+04570 FDB EQ same?
295+04580 FDB ZBR
296+04590 FDB 6
297+04600 FDB DROP
298+04610 FDB BRANCH
299+04620 FDB DFIND2-*-2
300+04630 FDB WORDPD buf
301+04640 FDB SWAP
302+04650 FDB FIND 1st
303+04660 FDB OVER
304+04670 FDB ZBR
305+04680 FDB 6
306+04690 FDB ROT
307+04700 FDB DROP
308+04710 FDB SEMIS
309+04720 FDB DROP
310+04730 FDB DROP
311+04740 DFIND2 FDB WORDPD
312+04750 FDB SWAP
313+04760 FDB FIND 2nd
314+04770 FDB SEMIS
315+04790 *
316+04800 FCC '-IFIND'
317+04810 FCB 6
318+04820 FCB MFORE
319+04830 FDB DDFIND-CFAOFF
320+04840 FDB BIF+2
321+04850 FDB 0
322+04860 FDB 0
323+04870 DIFIND DOCOL
324+04880 FDB ROOT context first
325+04890 FDB DROOT defs next
326+04900 FDB BRANCH
327+04910 FDB DFIND1-*-2
328+05190 *
--- a/cross_v/BIF6B.ASM
+++ b/cross_v/BIF6B.ASM
@@ -1 +1,273 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 05200 FCC 'NAME,' 05210 FCB 5 05220 FCB MFORE 05230 FDB DIFIND-CFAOFF 05240 FDB BIF+2 05250 FDB 0 05260 FDB 0 05270 NCOMMA DOCOL 05280 FDB WORDPD 05300 FDB COUNT 05310 FDB TOR 05330 FDB HERE 05340 FDB R 05350 FDB ALLOT 05360 FDB R 05370 FDB CMOVE name 05380 FDB HERE node 05390 FDB RFROM 05400 FDB SEMIS 05490 * 05500 FCC 'FORE-MARK' 05510 FCB 9 05520 FCB MFORE 05530 FDB NCOMMA-CFAOFF 05540 FDB BIF+2 05550 FDB FIRST-CFAOFF 05560 FDB FORGET-CFAOFF 05570 FOREMK LDX <UP 05580 LDD UFORE,X 05590 BEQ FOREMN 05600 LDX UCURR,X 05610 LDB 1,X 05620 ORB #MFORE 05630 STB 1,X 05640 FOREMN NEXT 05690 * 05700 FCC '(INSTALL)' 05710 FCB MCOMP.OR.9 05720 FCB MFORE 05730 FDB DIFIND-CFAOFF 05740 FDB BIF+2 05750 FDB 0 05760 FDB 0 05770 PINSTA LDX ,U vocab 05772 BNE PINSTV 05774 LDD #$18 05776 PSHU D 05778 JMP ERROR 05780 PINSTV PSHS Y 05784 LDY 2,U nfa 05788 LDB ,Y 05792 ANDB #NLMASK 05796 TFR B,A 05800 NEGA 05804 LEAY A,Y name 05808 DECA for NUL 05812 LEAS A,S allocate 05816 CLRA 05820 STA B,S term 05824 PSHU Y 05828 PSHU D,S 05832 PSHS B mark 05836 DOCOL 05840 FDB CMOVE 05844 FDB XMACH 05848 LDX ,U vocab 05852 LEAY 1,S 05856 PINSTL PSHU X,Y 05860 DOCOL 05864 FDB PFIND slot? 05868 FDB XMACH 05872 LDD ,U++ flag 05876 BEQ PINSTI 05880 LDX [,U++] old nfa 05884 CMPX #NUBLK-CFAOFF 05888 BNE *+7 05892 LDD #$1C 05896 BRA PINSTV-5 05900 LDB ,X 05904 ORB #MHID hide old 05908 STB ,X 05912 LEAX RTOFF,X fake voc 05916 BRA PINSTL 05920 PINSTI PULS B 05924 INCB 05928 LEAS B,S 05932 LDX ,U insert point 05936 BNE PINSTG 05940 LDD #$19 05944 BRA PINSTV-5 05948 PINSTG LDD 2,U vocab 05952 LDY 4,U nfa 05956 STY ,X link in 05960 STD GFAOFF,Y 05964 PINSTX LEAU 6,U 05970 PULS Y 05980 NEXT 06290 * 06300 FCC '0!' 06310 FCB 2 06320 FCB MFORE 06330 FDB PINSTA-CFAOFF 06340 FDB BIF+2 06350 FDB 0 06360 FDB 0 06370 INULL LDD #0 06380 STD >0 06390 NEXT 06395 * 06400 FCC '?0' 06410 FCB 2 06420 FCB MFORE 06430 FDB INULL-CFAOFF 06440 FDB BIF+2 06450 FDB 0 06460 FDB 0 06470 TNULL LDD >0 06480 BNE *+4 06490 NEXT 06500 LDD #5 06510 PSHU D 06520 LDX <UP 06530 LDA UWARN,X 06540 ORA #$80 abort 06550 STA UWARN,X 06560 JMP ERROR 06590 * 07000 FCC 'QUICK' 07010 FCB 5 07020 FCB MFORE 07030 FDB TNULL-CFAOFF 07040 FDB EDITOR+2 07050 FDB QSYNC-CFAOFF 07060 FDB 0 07070 QUICK PSHS Y 07080 LDY <UP 07090 LDD UEBLK,Y 07100 LDX URNUM,Y 07110 PSHS D,X nest 07120 PULU D 07130 STD UEBLK,Y 07140 LDD #0 07150 STD URNUM,Y 07160 DOCOL 07170 FDB CURSOR 07180 FDB QDUMP fill screen 07190 FDB QSYNC 07200 QUICKL FDB KEY 07210 FDB XMACH 07220 LDB 1,U 07230 CMPB #3 break? 07240 BEQ QUICKB 07250 DOCOL 07260 FDB QARROW 07270 FDB QSYNC 07280 FDB CURSOR 07290 FDB XMACH 07300 LDD 2,U 07310 BNE QUICKC 07320 LDB [,U++] from buffer 07330 BRA QUICKE 07340 QUICKC CMPB #'\ 07350 BNE *+10 07360 DOCOL 07370 FDB KEY literal 07380 FDB XMACH 07390 PULU D 07400 STB [,U++] in buffer 07410 INC URNUM+1,Y bump 07420 LDA [UPREV,Y] update 07430 ORA #$80 07440 STA [UPREV,Y] 07450 QUICKE CLRA 07460 STD ,U 07470 DOCOL 07480 FDB EMIT 07485 FDB QSYNC 07490 FDB BRANCH 07500 FDB QUICKL-*-2 07510 QUICKB LEAU 2,U 07520 PULS D,X un-nest 07530 STD UEBLK,Y 07540 STX URNUM,Y 07550 PULS Y 07560 NEXT 07570 * 07800 FCC 'NODE.' 07810 FCB 5 07820 FCB MFORE 07830 FDB QUICK-CFAOFF 07840 FDB BIF+2 07850 FDB 0 07860 FDB 0 07870 NDOT DOCOL 07880 FDB DUP 07890 FDB IDDOT 07900 FDB SPACE 07910 FDB ZERO 07920 FDB DDOT 07930 FDB CR 07940 FDB QTERM 07943 FDB DUP 07945 FDB ZLESS break? 07950 FDB ZBR 07955 FDB 4 07960 FDB DROP 07965 FDB KEY 07970 FDB SEMIS 07990 * 08000 FCC 'VISIT' 08010 FCB 5 08020 FCB MFORE 08030 FDB NDOT-CFAOFF 08040 FDB BIF+2 08050 FDB 0 08060 FDB 0 08070 VISIT PSHS Y 08080 LDY <UP 08090 LDX UVMK,Y save 08100 PSHS D,X allocate 08110 STS UVMK,Y 08120 LDX ,U++ 08130 PULU D 08140 BEQ VISITX vocab 08150 LDX ,X 08160 BEQ VISITX 08170 ADDD #CFAOFF function 08180 STD ,S 08190 VISITL PSHS X 08200 CMPS US0,Y overflow? 08210 BHI *+7 08220 LDB #$0B 08230 JMP QSTERR 08240 LDX LFTOFF,X 08250 VISITR BNE VISITL 08260 CMPS UVMK,Y 08270 BHS VISITX 08280 LDX ,S node 08290 LDD [UVMK,Y] function 08300 PSHU D,X 08310 DOCOL 08320 FDB EXEC 08330 FDB QSTACK 08340 FDB XMACH 08343 LDD ,U++ 08346 BMI VISITX terminate? 08350 PULS X 08360 LDX RTOFF,X 08370 BRA VISITR 08375 VISITX LDS UVMK,Y 08380 PULS D,X 08390 STX UVMK,Y 08400 PULS Y 08410 NEXT 08490 * 08500 FCC 'VLIST' 08510 FCB 5 08520 FCB MFORE 08530 FDB VISIT-CFAOFF 08540 FDB EDITOR+2 08550 FDB VISIT-CFAOFF 08560 FDB VOCAB-CFAOFF 08570 VLIST DOCOL 08580 FDB LIT 08590 FDB NDOT-CFAOFF 08600 FDB ROOT 08610 FDB FETCH 08620 FDB VISIT 08630 FDB SEMIS 08690 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+05200 FCC 'NAME,'
5+05210 FCB 5
6+05220 FCB MFORE
7+05230 FDB DIFIND-CFAOFF
8+05240 FDB BIF+2
9+05250 FDB 0
10+05260 FDB 0
11+05270 NCOMMA DOCOL
12+05280 FDB WORDPD
13+05300 FDB COUNT
14+05310 FDB TOR
15+05330 FDB HERE
16+05340 FDB R
17+05350 FDB ALLOT
18+05360 FDB R
19+05370 FDB CMOVE name
20+05380 FDB HERE node
21+05390 FDB RFROM
22+05400 FDB SEMIS
23+05490 *
24+05500 FCC 'FORE-MARK'
25+05510 FCB 9
26+05520 FCB MFORE
27+05530 FDB NCOMMA-CFAOFF
28+05540 FDB BIF+2
29+05550 FDB FIRST-CFAOFF
30+05560 FDB FORGET-CFAOFF
31+05570 FOREMK LDX <UP
32+05580 LDD UFORE,X
33+05590 BEQ FOREMN
34+05600 LDX UCURR,X
35+05610 LDB 1,X
36+05620 ORB #MFORE
37+05630 STB 1,X
38+05640 FOREMN NEXT
39+05690 *
40+05700 FCC '(INSTALL)'
41+05710 FCB MCOMP.OR.9
42+05720 FCB MFORE
43+05730 FDB DIFIND-CFAOFF
44+05740 FDB BIF+2
45+05750 FDB 0
46+05760 FDB 0
47+05770 PINSTA LDX ,U vocab
48+05772 BNE PINSTV
49+05774 LDD #$18
50+05776 PSHU D
51+05778 JMP ERROR
52+05780 PINSTV PSHS Y
53+05784 LDY 2,U nfa
54+05788 LDB ,Y
55+05792 ANDB #NLMASK
56+05796 TFR B,A
57+05800 NEGA
58+05804 LEAY A,Y name
59+05808 DECA for NUL
60+05812 LEAS A,S allocate
61+05816 CLRA
62+05820 STA B,S term
63+05824 PSHU Y
64+05828 PSHU D,S
65+05832 PSHS B mark
66+05836 DOCOL
67+05840 FDB CMOVE
68+05844 FDB XMACH
69+05848 LDX ,U vocab
70+05852 LEAY 1,S
71+05856 PINSTL PSHU X,Y
72+05860 DOCOL
73+05864 FDB PFIND slot?
74+05868 FDB XMACH
75+05872 LDD ,U++ flag
76+05876 BEQ PINSTI
77+05880 LDX [,U++] old nfa
78+05884 CMPX #NUBLK-CFAOFF
79+05888 BNE *+7
80+05892 LDD #$1C
81+05896 BRA PINSTV-5
82+05900 LDB ,X
83+05904 ORB #MHID hide old
84+05908 STB ,X
85+05912 LEAX RTOFF,X fake voc
86+05916 BRA PINSTL
87+05920 PINSTI PULS B
88+05924 INCB
89+05928 LEAS B,S
90+05932 LDX ,U insert point
91+05936 BNE PINSTG
92+05940 LDD #$19
93+05944 BRA PINSTV-5
94+05948 PINSTG LDD 2,U vocab
95+05952 LDY 4,U nfa
96+05956 STY ,X link in
97+05960 STD GFAOFF,Y
98+05964 PINSTX LEAU 6,U
99+05970 PULS Y
100+05980 NEXT
101+06290 *
102+06300 FCC '0!'
103+06310 FCB 2
104+06320 FCB MFORE
105+06330 FDB PINSTA-CFAOFF
106+06340 FDB BIF+2
107+06350 FDB 0
108+06360 FDB 0
109+06370 INULL LDD #0
110+06380 STD >0
111+06390 NEXT
112+06395 *
113+06400 FCC '?0'
114+06410 FCB 2
115+06420 FCB MFORE
116+06430 FDB INULL-CFAOFF
117+06440 FDB BIF+2
118+06450 FDB 0
119+06460 FDB 0
120+06470 TNULL LDD >0
121+06480 BNE *+4
122+06490 NEXT
123+06500 LDD #5
124+06510 PSHU D
125+06520 LDX <UP
126+06530 LDA UWARN,X
127+06540 ORA #$80 abort
128+06550 STA UWARN,X
129+06560 JMP ERROR
130+06590 *
131+07000 FCC 'QUICK'
132+07010 FCB 5
133+07020 FCB MFORE
134+07030 FDB TNULL-CFAOFF
135+07040 FDB EDITOR+2
136+07050 FDB QSYNC-CFAOFF
137+07060 FDB 0
138+07070 QUICK PSHS Y
139+07080 LDY <UP
140+07090 LDD UEBLK,Y
141+07100 LDX URNUM,Y
142+07110 PSHS D,X nest
143+07120 PULU D
144+07130 STD UEBLK,Y
145+07140 LDD #0
146+07150 STD URNUM,Y
147+07160 DOCOL
148+07170 FDB CURSOR
149+07180 FDB QDUMP fill screen
150+07190 FDB QSYNC
151+07200 QUICKL FDB KEY
152+07210 FDB XMACH
153+07220 LDB 1,U
154+07230 CMPB #3 break?
155+07240 BEQ QUICKB
156+07250 DOCOL
157+07260 FDB QARROW
158+07270 FDB QSYNC
159+07280 FDB CURSOR
160+07290 FDB XMACH
161+07300 LDD 2,U
162+07310 BNE QUICKC
163+07320 LDB [,U++] from buffer
164+07330 BRA QUICKE
165+07340 QUICKC CMPB #'\
166+07350 BNE *+10
167+07360 DOCOL
168+07370 FDB KEY literal
169+07380 FDB XMACH
170+07390 PULU D
171+07400 STB [,U++] in buffer
172+07410 INC URNUM+1,Y bump
173+07420 LDA [UPREV,Y] update
174+07430 ORA #$80
175+07440 STA [UPREV,Y]
176+07450 QUICKE CLRA
177+07460 STD ,U
178+07470 DOCOL
179+07480 FDB EMIT
180+07485 FDB QSYNC
181+07490 FDB BRANCH
182+07500 FDB QUICKL-*-2
183+07510 QUICKB LEAU 2,U
184+07520 PULS D,X un-nest
185+07530 STD UEBLK,Y
186+07540 STX URNUM,Y
187+07550 PULS Y
188+07560 NEXT
189+07570 *
190+07800 FCC 'NODE.'
191+07810 FCB 5
192+07820 FCB MFORE
193+07830 FDB QUICK-CFAOFF
194+07840 FDB BIF+2
195+07850 FDB 0
196+07860 FDB 0
197+07870 NDOT DOCOL
198+07880 FDB DUP
199+07890 FDB IDDOT
200+07900 FDB SPACE
201+07910 FDB ZERO
202+07920 FDB DDOT
203+07930 FDB CR
204+07940 FDB QTERM
205+07943 FDB DUP
206+07945 FDB ZLESS break?
207+07950 FDB ZBR
208+07955 FDB 4
209+07960 FDB DROP
210+07965 FDB KEY
211+07970 FDB SEMIS
212+07990 *
213+08000 FCC 'VISIT'
214+08010 FCB 5
215+08020 FCB MFORE
216+08030 FDB NDOT-CFAOFF
217+08040 FDB BIF+2
218+08050 FDB 0
219+08060 FDB 0
220+08070 VISIT PSHS Y
221+08080 LDY <UP
222+08090 LDX UVMK,Y save
223+08100 PSHS D,X allocate
224+08110 STS UVMK,Y
225+08120 LDX ,U++
226+08130 PULU D
227+08140 BEQ VISITX vocab
228+08150 LDX ,X
229+08160 BEQ VISITX
230+08170 ADDD #CFAOFF function
231+08180 STD ,S
232+08190 VISITL PSHS X
233+08200 CMPS US0,Y overflow?
234+08210 BHI *+7
235+08220 LDB #$0B
236+08230 JMP QSTERR
237+08240 LDX LFTOFF,X
238+08250 VISITR BNE VISITL
239+08260 CMPS UVMK,Y
240+08270 BHS VISITX
241+08280 LDX ,S node
242+08290 LDD [UVMK,Y] function
243+08300 PSHU D,X
244+08310 DOCOL
245+08320 FDB EXEC
246+08330 FDB QSTACK
247+08340 FDB XMACH
248+08343 LDD ,U++
249+08346 BMI VISITX terminate?
250+08350 PULS X
251+08360 LDX RTOFF,X
252+08370 BRA VISITR
253+08375 VISITX LDS UVMK,Y
254+08380 PULS D,X
255+08390 STX UVMK,Y
256+08400 PULS Y
257+08410 NEXT
258+08490 *
259+08500 FCC 'VLIST'
260+08510 FCB 5
261+08520 FCB MFORE
262+08530 FDB VISIT-CFAOFF
263+08540 FDB EDITOR+2
264+08550 FDB VISIT-CFAOFF
265+08560 FDB VOCAB-CFAOFF
266+08570 VLIST DOCOL
267+08580 FDB LIT
268+08590 FDB NDOT-CFAOFF
269+08600 FDB ROOT
270+08610 FDB FETCH
271+08620 FDB VISIT
272+08630 FDB SEMIS
273+08690 *
--- a/cross_v/BIF7.ASM
+++ b/cross_v/BIF7.ASM
@@ -1 +1,266 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 01000 FCC 'CREATE' 01010 FCB 6 01020 FCB MFORE 01030 FDB VLIST-CFAOFF 01040 FDB BIF+2 01050 FDB CR-CFAOFF 01060 FDB CSP-CFAOFF 01070 CREATE DOCOL 01080 FDB DDFIND 01090 FDB OVER 01100 FDB ZBR 01110 FDB CREATN-*-2 01120 FDB SWAP nfa 01130 FDB IDDOT 01135 FDB SPACE 01140 FDB LIT 01150 FDB 4 01160 FDB MESS 01170 FDB SPACE 01190 FDB NFA vocab 01200 FDB IDDOT 01205 FDB CR 01210 FDB BRANCH 01220 FDB 4 01230 CREATN FDB DROP 01240 FDB DROP 01250 FDB NCOMMA 01260 FDB CCOMMA length 01270 FDB ZERO 01280 FDB CCOMMA mode 01290 FDB LATEST allocation link 01300 FDB COMMA 01310 FDB DUP nfa 01320 FDB CURR 01330 FDB STORE new LATEST 01340 FDB ZERO vocab 01350 FDB COMMA 01360 FDB ZERO 01370 FDB COMMA left 01380 FDB ZERO 01390 FDB COMMA right 01400 FDB SMUDGE hide 01410 FDB FOREMK 01420 FDB DROOT 01430 FDB FETCH 01440 FDB PINSTA in vocab 01450 FDB SEMIS 01490 * 01500 FCC 'CONSTANT' 01510 FCB 8 01520 FCB MFORE 01530 FDB CREATE-CFAOFF 01540 FDB BIF+2 01550 FDB CMOVE-CFAOFF 01560 FDB CREATE-CFAOFF 01570 CONST DOCOL 01580 FDB CREATE 01590 FDB IPCOM 01600 DOCON 01610 FDB COMMA 01620 FDB SMUDGE visible 01630 FDB SEMIS 01690 * 01700 FCC 'VARIABLE' 01710 FCB 8 01720 FCB MFORE 01730 FDB CONST-CFAOFF 01740 FDB BIF+2 01750 FDB USTAR-CFAOFF 01760 FDB WORD-CFAOFF 01770 VAR DOCOL 01780 FDB CREATE 01790 FDB IPCOM 01800 DOVAR 01810 FDB COMMA initial value 01820 FDB SMUDGE visible 01830 FDB SEMIS 01890 * 01900 FCC 'USER' 01910 FCB 4 01920 FCB MFORE 01930 FDB VAR-CFAOFF 01940 FDB BIF+2 01950 FDB USE-CFAOFF 01960 FDB UTIL-CFAOFF 01970 USER DOCOL 01980 FDB CREATE 01990 FDB IPCOM 02000 DOUSER 02010 FDB CCOMMA offset 02020 FDB SMUDGE visible 02030 FDB SEMIS 02080 * 02090 SCOMP EQU MCOMP.OR.MIMM 02100 FCC ':' 02110 FCB MIMM.OR.1 02120 FCB MFORE 02130 FDB USER-CFAOFF 02140 FDB BIF+2 02150 FDB ADD-CFAOFF 02160 FDB FETCH-CFAOFF 02170 COLON DOCOL 02180 FDB QEXEC 02190 FDB STOCSP 02200 FDB CREATE 02210 FDB IPCOM 02220 DOCOL 02230 FDB RBRAK 02240 FDB SEMIS 02290 * 02300 FCC ';' 02310 FCB MIMM.OR.1 02320 FCB MFORE 02330 FDB COLON-CFAOFF 02340 FDB BIF+2 02350 FDB 0 02360 FDB 0 02370 SEMI DOCOL see fig-FORTH model 02380 FDB QCSP 02390 FDB COMP 02400 FDB SEMIS 02410 FDB SMUDGE 02420 FDB LBRAK 02430 FDB SEMIS 02490 * 02500 FCC '."' 02510 FCB MIMM.OR.2 02520 FCB MFORE 02530 FDB SEMI-CFAOFF 02540 FDB BIF+2 02550 FDB 0 02560 FDB 0 02570 DOTQ DOCOL 02572 FDB ONE past delimiter 02574 FDB IN 02576 FDB ADDSTO 02580 FDB LIT 02590 FDB '" 02600 FDB WORD 02610 FDB WORDPD 02620 FDB QCST 02630 FDB ZBR 02640 FDB DOTQT-*-2 02650 FDB COMP 02660 FDB XDOTQ 02670 FDB HERE 02680 FDB OVER 02690 FDB CFEH count 02700 FDB ADD1 02710 FDB DUP 02720 FDB ALLOT 02730 FDB CMOVE 02732 FDB ONE past end quote 02734 FDB IN 02736 FDB ADDSTO 02740 FDB BRANCH 02750 FDB 4 02760 DOTQT FDB COUNT 02770 FDB TYPE 02780 FDB SEMIS 02790 * 02800 FCC '[COMPILE]' 02810 FCB MIMM.OR.9 02820 FCB MFORE 02830 FDB DOTQ-CFAOFF 02840 FDB BIF+2 02850 FDB LBRAK-CFAOFF 02860 FDB RBRAK-CFAOFF 02870 BCOMP DOCOL 02880 FDB DDFIND 02890 FDB DROP vocab 02900 FDB DUP 02910 FDB ZEQ 02920 FDB ZERO 02930 FDB QERR 02940 FDB CFA 02950 FDB COMMA 02960 FDB SEMIS 03180 * 03200 FCC 'INTERPRET' 03210 FCB 9 03220 FCB MFORE 03230 FDB BCOMP-CFAOFF 03240 FDB BIF+2 03250 FDB 0 * INDEX-CFAOFF 03260 FDB J-CFAOFF 03270 INTERP DOCOL 03280 FDB DIFIND 03290 FDB DROP 03300 FDB DDUP 03310 FDB ZBR 03320 FDB INTERN-*-2 03330 FDB DUP 03340 FDB CFA 03350 FDB SWAP 03360 FDB CFEH length 03370 FDB DUP 03380 FDB NOT 03390 FDB LIT 03400 FDB MIMM 03410 FDB AND 03420 FDB QCST 03430 FDB AND 03440 FDB ZBR 03450 FDB INTERX-*-2 03460 FDB DROP length 03470 FDB COMMA 03480 FDB BRANCH 03490 FDB INTERE-*-2 03500 INTERX FDB LIT 03510 FDB MCOMP 03520 FDB AND 03530 FDB QCST 03540 FDB NOT 03550 FDB AND 03560 FDB LIT 03570 FDB $11 03580 FDB QERR 03590 FDB EXEC 03600 FDB BRANCH 03610 FDB INTERE-*-2 03620 INTERN FDB WORDPD 03630 FDB NUMBER 03640 FDB DPL 03645 FDB FETCH 03650 FDB ZLESS 03660 FDB ZBR 03670 FDB INTERE-*-4 03680 FDB DROP 03690 FDB LITER 03700 FDB BRANCH 03710 FDB INTERE-*-2 03720 FDB DLITER 03730 INTERE FDB QSTACK 03740 FDB BRANCH 03750 FDB INTERP-* 03790 * 04200 FCC 'QUIT' 04210 FCB 4 04220 FCB MFORE 04230 FDB INTERP-CFAOFF 04240 FDB BIF+2 04250 FDB 0 04260 FDB 0 04270 QUIT DOCOL see fig-FORTH model 04280 FDB ZERO 04290 FDB BLK 04300 FDB STORE 04310 FDB LBRAK 04320 QUITL FDB TNULL 04325 FDB RPSTO 04330 FDB CR 04340 FDB QUERY 04350 FDB INTERP 04360 FDB QCST 04370 FDB TBR 04380 FDB QUITL-*-2 04390 FDB XDOTQ 04400 FCB 3 04410 FCC ' OK' 04420 FDB BRANCH 04430 FDB QUITL-*-2 04490 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+01000 FCC 'CREATE'
5+01010 FCB 6
6+01020 FCB MFORE
7+01030 FDB VLIST-CFAOFF
8+01040 FDB BIF+2
9+01050 FDB CR-CFAOFF
10+01060 FDB CSP-CFAOFF
11+01070 CREATE DOCOL
12+01080 FDB DDFIND
13+01090 FDB OVER
14+01100 FDB ZBR
15+01110 FDB CREATN-*-2
16+01120 FDB SWAP nfa
17+01130 FDB IDDOT
18+01135 FDB SPACE
19+01140 FDB LIT
20+01150 FDB 4
21+01160 FDB MESS
22+01170 FDB SPACE
23+01190 FDB NFA vocab
24+01200 FDB IDDOT
25+01205 FDB CR
26+01210 FDB BRANCH
27+01220 FDB 4
28+01230 CREATN FDB DROP
29+01240 FDB DROP
30+01250 FDB NCOMMA
31+01260 FDB CCOMMA length
32+01270 FDB ZERO
33+01280 FDB CCOMMA mode
34+01290 FDB LATEST allocation link
35+01300 FDB COMMA
36+01310 FDB DUP nfa
37+01320 FDB CURR
38+01330 FDB STORE new LATEST
39+01340 FDB ZERO vocab
40+01350 FDB COMMA
41+01360 FDB ZERO
42+01370 FDB COMMA left
43+01380 FDB ZERO
44+01390 FDB COMMA right
45+01400 FDB SMUDGE hide
46+01410 FDB FOREMK
47+01420 FDB DROOT
48+01430 FDB FETCH
49+01440 FDB PINSTA in vocab
50+01450 FDB SEMIS
51+01490 *
52+01500 FCC 'CONSTANT'
53+01510 FCB 8
54+01520 FCB MFORE
55+01530 FDB CREATE-CFAOFF
56+01540 FDB BIF+2
57+01550 FDB CMOVE-CFAOFF
58+01560 FDB CREATE-CFAOFF
59+01570 CONST DOCOL
60+01580 FDB CREATE
61+01590 FDB IPCOM
62+01600 DOCON
63+01610 FDB COMMA
64+01620 FDB SMUDGE visible
65+01630 FDB SEMIS
66+01690 *
67+01700 FCC 'VARIABLE'
68+01710 FCB 8
69+01720 FCB MFORE
70+01730 FDB CONST-CFAOFF
71+01740 FDB BIF+2
72+01750 FDB USTAR-CFAOFF
73+01760 FDB WORD-CFAOFF
74+01770 VAR DOCOL
75+01780 FDB CREATE
76+01790 FDB IPCOM
77+01800 DOVAR
78+01810 FDB COMMA initial value
79+01820 FDB SMUDGE visible
80+01830 FDB SEMIS
81+01890 *
82+01900 FCC 'USER'
83+01910 FCB 4
84+01920 FCB MFORE
85+01930 FDB VAR-CFAOFF
86+01940 FDB BIF+2
87+01950 FDB USE-CFAOFF
88+01960 FDB UTIL-CFAOFF
89+01970 USER DOCOL
90+01980 FDB CREATE
91+01990 FDB IPCOM
92+02000 DOUSER
93+02010 FDB CCOMMA offset
94+02020 FDB SMUDGE visible
95+02030 FDB SEMIS
96+02080 *
97+02090 SCOMP EQU MCOMP.OR.MIMM
98+02100 FCC ':'
99+02110 FCB MIMM.OR.1
100+02120 FCB MFORE
101+02130 FDB USER-CFAOFF
102+02140 FDB BIF+2
103+02150 FDB ADD-CFAOFF
104+02160 FDB FETCH-CFAOFF
105+02170 COLON DOCOL
106+02180 FDB QEXEC
107+02190 FDB STOCSP
108+02200 FDB CREATE
109+02210 FDB IPCOM
110+02220 DOCOL
111+02230 FDB RBRAK
112+02240 FDB SEMIS
113+02290 *
114+02300 FCC ';'
115+02310 FCB MIMM.OR.1
116+02320 FCB MFORE
117+02330 FDB COLON-CFAOFF
118+02340 FDB BIF+2
119+02350 FDB 0
120+02360 FDB 0
121+02370 SEMI DOCOL see fig-FORTH model
122+02380 FDB QCSP
123+02390 FDB COMP
124+02400 FDB SEMIS
125+02410 FDB SMUDGE
126+02420 FDB LBRAK
127+02430 FDB SEMIS
128+02490 *
129+02500 FCC '."'
130+02510 FCB MIMM.OR.2
131+02520 FCB MFORE
132+02530 FDB SEMI-CFAOFF
133+02540 FDB BIF+2
134+02550 FDB 0
135+02560 FDB 0
136+02570 DOTQ DOCOL
137+02572 FDB ONE past delimiter
138+02574 FDB IN
139+02576 FDB ADDSTO
140+02580 FDB LIT
141+02590 FDB '"
142+02600 FDB WORD
143+02610 FDB WORDPD
144+02620 FDB QCST
145+02630 FDB ZBR
146+02640 FDB DOTQT-*-2
147+02650 FDB COMP
148+02660 FDB XDOTQ
149+02670 FDB HERE
150+02680 FDB OVER
151+02690 FDB CFEH count
152+02700 FDB ADD1
153+02710 FDB DUP
154+02720 FDB ALLOT
155+02730 FDB CMOVE
156+02732 FDB ONE past end quote
157+02734 FDB IN
158+02736 FDB ADDSTO
159+02740 FDB BRANCH
160+02750 FDB 4
161+02760 DOTQT FDB COUNT
162+02770 FDB TYPE
163+02780 FDB SEMIS
164+02790 *
165+02800 FCC '[COMPILE]'
166+02810 FCB MIMM.OR.9
167+02820 FCB MFORE
168+02830 FDB DOTQ-CFAOFF
169+02840 FDB BIF+2
170+02850 FDB LBRAK-CFAOFF
171+02860 FDB RBRAK-CFAOFF
172+02870 BCOMP DOCOL
173+02880 FDB DDFIND
174+02890 FDB DROP vocab
175+02900 FDB DUP
176+02910 FDB ZEQ
177+02920 FDB ZERO
178+02930 FDB QERR
179+02940 FDB CFA
180+02950 FDB COMMA
181+02960 FDB SEMIS
182+03180 *
183+03200 FCC 'INTERPRET'
184+03210 FCB 9
185+03220 FCB MFORE
186+03230 FDB BCOMP-CFAOFF
187+03240 FDB BIF+2
188+03250 FDB 0 * INDEX-CFAOFF
189+03260 FDB J-CFAOFF
190+03270 INTERP DOCOL
191+03280 FDB DIFIND
192+03290 FDB DROP
193+03300 FDB DDUP
194+03310 FDB ZBR
195+03320 FDB INTERN-*-2
196+03330 FDB DUP
197+03340 FDB CFA
198+03350 FDB SWAP
199+03360 FDB CFEH length
200+03370 FDB DUP
201+03380 FDB NOT
202+03390 FDB LIT
203+03400 FDB MIMM
204+03410 FDB AND
205+03420 FDB QCST
206+03430 FDB AND
207+03440 FDB ZBR
208+03450 FDB INTERX-*-2
209+03460 FDB DROP length
210+03470 FDB COMMA
211+03480 FDB BRANCH
212+03490 FDB INTERE-*-2
213+03500 INTERX FDB LIT
214+03510 FDB MCOMP
215+03520 FDB AND
216+03530 FDB QCST
217+03540 FDB NOT
218+03550 FDB AND
219+03560 FDB LIT
220+03570 FDB $11
221+03580 FDB QERR
222+03590 FDB EXEC
223+03600 FDB BRANCH
224+03610 FDB INTERE-*-2
225+03620 INTERN FDB WORDPD
226+03630 FDB NUMBER
227+03640 FDB DPL
228+03645 FDB FETCH
229+03650 FDB ZLESS
230+03660 FDB ZBR
231+03670 FDB INTERE-*-4
232+03680 FDB DROP
233+03690 FDB LITER
234+03700 FDB BRANCH
235+03710 FDB INTERE-*-2
236+03720 FDB DLITER
237+03730 INTERE FDB QSTACK
238+03740 FDB BRANCH
239+03750 FDB INTERP-*
240+03790 *
241+04200 FCC 'QUIT'
242+04210 FCB 4
243+04220 FCB MFORE
244+04230 FDB INTERP-CFAOFF
245+04240 FDB BIF+2
246+04250 FDB 0
247+04260 FDB 0
248+04270 QUIT DOCOL see fig-FORTH model
249+04280 FDB ZERO
250+04290 FDB BLK
251+04300 FDB STORE
252+04310 FDB LBRAK
253+04320 QUITL FDB TNULL
254+04325 FDB RPSTO
255+04330 FDB CR
256+04340 FDB QUERY
257+04350 FDB INTERP
258+04360 FDB QCST
259+04370 FDB TBR
260+04380 FDB QUITL-*-2
261+04390 FDB XDOTQ
262+04400 FCB 3
263+04410 FCC ' OK'
264+04420 FDB BRANCH
265+04430 FDB QUITL-*-2
266+04490 *
--- a/cross_v/BIF7B.ASM
+++ b/cross_v/BIF7B.ASM
@@ -1 +1,238 @@
1-00010 * Include file for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00030 * 04500 FCC 'BIF' 04510 FCB MIMM.OR.3 04520 FCB MFORE 04530 FDB QUIT-CFAOFF 04540 FDB BIF+2 (PFA) 04550 FDB COLON-CFAOFF 04560 FDB IF-CFAOFF 04570 BIF DOVOC 04580 FDB BIF-CFAOFF (NFA) 04590 * 04600 FCC 'ASSEMBLER' 04610 FCB MIMM.OR.9 immediate? 04620 FCB MFORE 04630 FDB BIF-CFAOFF 04640 FDB BIF+2 parent voc 04650 FDB 0 04660 FDB 0 04670 ASMBLR DOVOC 04680 FDB 0 (NFA) 04690 * 04700 FCC 'DEFINITIONS' 04710 FCB 11 04720 FCB MFORE 04730 FDB ASMBLR-CFAOFF 04740 FDB BIF+2 04750 FDB 0 04760 FDB 0 04770 DEFS LDX <UP 04780 LDD UROOT,X 04790 STD UDROOT,X 04800 NEXT 04890 * 04900 FCC 'ABORT' 04910 FCB 5 04920 FCB MFORE 04930 FDB DEFS-CFAOFF 04940 FDB BIF+2 04950 FDB 0 04960 FDB 0 04970 ABORT DOCOL see fig-FORTH model 04975 FDB INULL 04980 FDB SPSTO 04990 FDB DEC 05000 FDB ZERO 05010 FDB DRIVE 05020 FDB CR 05030 FDB XDOTQ 05040 FCB 13 05050 FCC '6809 BIF V1.0' 05060 FDB BIF 05070 FDB DEFS 05080 FDB QUIT 05090 * 05100 FCC 'VOCABULARY' 05110 FCB 10 05120 FCB MFORE 05130 FDB ABORT-CFAOFF 05140 FDB BIF+2 05150 FDB 0 05160 FDB 0 05170 VOCAB DOCOL 05180 FDB CREATE 05190 FDB IPCOM 05200 DOVOC 05210 FDB ZERO 05220 FDB COMMA local 05255 FDB SMUDGE 05260 FDB SEMIS 05290 * 05300 FCC '(' 05301 FCB MIMM.OR.1 05302 FCB 0 05303 FDB VOCAB-CFAOFF 05304 FDB BIF+2 05305 FDB ENDHSH-CFAOFF 05306 FDB STAR-CFAOFF 05310 PAREN PSHS Y 05320 LDY <UP 05330 PARENL LDD #') 05340 PSHU D 05350 DOCOL 05360 FDB WORD 05370 FDB XMACH 05380 LDX UBLK,Y 05390 BNE *+6 05400 LDX UTIB,Y 05401 BRA *+12 05403 PSHU X 05405 DOCOL 05406 FDB BLOCK get adr 05408 FDB XMACH 05409 PULU X 05410 LDD UIN,Y 05420 LDA D,X 05425 BEQ PARENE NUL? 05430 CMPA #') 05440 BNE PARENL 05450 INCB bump 05453 BNE *+5 UIN>15 05456 INC UIN,Y carry 05460 STB UIN+1,Y 05470 PARENE PULS Y 05480 NEXT 05490 * 05500 FCC 'DAD' 05510 FCB 3 05520 FCB MFORE 05530 FDB PAREN-CFAOFF 05540 FDB BIF+2 05550 FDB 0 05560 FDB DCON-CFAOFF 05570 DAD PSHS Y 05580 PULU Y nfa 05590 LDB ,Y 05600 ANDB #NLMASK 05610 TFR B,A 05620 NEGA 05630 LEAX A,Y name 05640 DECA for NUL 05650 LEAS A,S allocate 05660 CLRA 05670 STA B,S NUL 05680 PSHU X 05690 PSHU D,S 05700 PSHS B,X mark 05710 DOCOL 05720 FDB CMOVE for (REFIND) 05730 FDB XMACH 05740 LEAX 3,S name 05750 PSHU X 05760 LDX GFAOFF,Y 05770 PSHU X 05780 DADL DOCOL 05790 FDB PREF 05800 FDB XMACH 05810 LDX [2,U] 05820 BNE DADC 05830 LDD #$19 not found 05840 PSHU D 05850 JMP ERROR 05860 DADC CMPY [2,U] this node? 05870 BEQ DADR 05880 LEAX RTOFF,X deeper 05890 LEAU 2,U 05900 STX ,U 05910 BRA DADL 05920 DADR PULS B,X 05930 STX 4,U 05950 INCB for NUL 05960 LEAS B,S drop name 05970 PULS Y 05980 NEXT 05990 * 20500 FCC 'REPEAL' 20510 FCB 6 20520 FCB MFORE 20530 FDB DAD-CFAOFF 20540 FDB BIF+2 20550 FDB 0 20560 FDB 0 20570 REPEAL PSHS Y 20580 LDX <UP 20590 LDY UCURR,X 20592 CMPY UFENCE,X 20594 BLS REPELX 20600 LDD LFAOFF,Y 20610 STD UCURR,X update 20620 LDD GFAOFF,Y stash 20625 PSHU Y 20630 LEAY PFAOFF,Y 20640 CMPY UROOT,X 20650 BNE REPELD 20660 STD UROOT,X 20670 REPELD CMPY UDROOT,X 20680 BNE REPELF 20690 STD UDROOT,X 20700 REPELF LDY ,U 20710 LDD #0 20720 CMPY UFORE,X end? 20730 BNE REPELA 20740 STD UFORE,X 20750 REPELA DOCOL 20760 FDB DAD 20760 FDB XMACH 20770 LEAU 2,U 20960 LDD #0 20970 STD [,U++] ground parent 20980 PULU D 20990 LDX <UP 21000 STD UDP,X 21010 REPELX PULS Y 21020 NEXT 21090 * 21100 FCC 'FORGET' 21110 FCB 6 21120 FCB MFORE 21130 FDB REPEAL-CFAOFF 21140 FDB BIF+2 21150 FDB FORE-CFAOFF 21160 FDB GFA-CFAOFF 21170 FORGET DOCOL 21180 FDB DDFIND 21190 FDB XMACH 21200 PSHS Y 21210 LEAU 2,U 21220 LDY ,U++ 21230 BNE FORGEF found? 21240 LDD #0 21250 PSHU D 21260 JMP ERROR 21270 FORGEF LDX <UP 21280 CMPY UFENCE,X 21290 BHI FORGER 21300 LDD #$15 21310 BRA FORGEF-5 21320 FORGER LDB MFAOFF,Y 21330 ANDB #MFORE 21370 BEQ FORGEL 21380 LDD #$1A 21390 BRA FORGEF-5 21400 FORGEL LDX <UP 21410 CMPY UCURR,X 21420 BHS FORGEO 21430 DOCOL 21440 FDB REPEAL 21450 FDB XMACH 21460 BRA FORGEL 21470 FORGEO BEQ FORGEN 21480 LDD #$1B 21490 BRA FORGEF-5 21500 FORGEN PULS Y 21510 JMP REPEAL 21520 FOLLOW EQU * 21530 * FORGET should be the last definition in the pre-assembled kernel 21540 *
\ No newline at end of file
1+00010 * Include file for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00030 *
4+04500 FCC 'BIF'
5+04510 FCB MIMM.OR.3
6+04520 FCB MFORE
7+04530 FDB QUIT-CFAOFF
8+04540 FDB BIF+2 (PFA)
9+04550 FDB COLON-CFAOFF
10+04560 FDB IF-CFAOFF
11+04570 BIF DOVOC
12+04580 FDB BIF-CFAOFF (NFA)
13+04590 *
14+04600 FCC 'ASSEMBLER'
15+04610 FCB MIMM.OR.9 immediate?
16+04620 FCB MFORE
17+04630 FDB BIF-CFAOFF
18+04640 FDB BIF+2 parent voc
19+04650 FDB 0
20+04660 FDB 0
21+04670 ASMBLR DOVOC
22+04680 FDB 0 (NFA)
23+04690 *
24+04700 FCC 'DEFINITIONS'
25+04710 FCB 11
26+04720 FCB MFORE
27+04730 FDB ASMBLR-CFAOFF
28+04740 FDB BIF+2
29+04750 FDB 0
30+04760 FDB 0
31+04770 DEFS LDX <UP
32+04780 LDD UROOT,X
33+04790 STD UDROOT,X
34+04800 NEXT
35+04890 *
36+04900 FCC 'ABORT'
37+04910 FCB 5
38+04920 FCB MFORE
39+04930 FDB DEFS-CFAOFF
40+04940 FDB BIF+2
41+04950 FDB 0
42+04960 FDB 0
43+04970 ABORT DOCOL see fig-FORTH model
44+04975 FDB INULL
45+04980 FDB SPSTO
46+04990 FDB DEC
47+05000 FDB ZERO
48+05010 FDB DRIVE
49+05020 FDB CR
50+05030 FDB XDOTQ
51+05040 FCB 13
52+05050 FCC '6809 BIF V1.0'
53+05060 FDB BIF
54+05070 FDB DEFS
55+05080 FDB QUIT
56+05090 *
57+05100 FCC 'VOCABULARY'
58+05110 FCB 10
59+05120 FCB MFORE
60+05130 FDB ABORT-CFAOFF
61+05140 FDB BIF+2
62+05150 FDB 0
63+05160 FDB 0
64+05170 VOCAB DOCOL
65+05180 FDB CREATE
66+05190 FDB IPCOM
67+05200 DOVOC
68+05210 FDB ZERO
69+05220 FDB COMMA local
70+05255 FDB SMUDGE
71+05260 FDB SEMIS
72+05290 *
73+05300 FCC '('
74+05301 FCB MIMM.OR.1
75+05302 FCB 0
76+05303 FDB VOCAB-CFAOFF
77+05304 FDB BIF+2
78+05305 FDB ENDHSH-CFAOFF
79+05306 FDB STAR-CFAOFF
80+05310 PAREN PSHS Y
81+05320 LDY <UP
82+05330 PARENL LDD #')
83+05340 PSHU D
84+05350 DOCOL
85+05360 FDB WORD
86+05370 FDB XMACH
87+05380 LDX UBLK,Y
88+05390 BNE *+6
89+05400 LDX UTIB,Y
90+05401 BRA *+12
91+05403 PSHU X
92+05405 DOCOL
93+05406 FDB BLOCK get adr
94+05408 FDB XMACH
95+05409 PULU X
96+05410 LDD UIN,Y
97+05420 LDA D,X
98+05425 BEQ PARENE NUL?
99+05430 CMPA #')
100+05440 BNE PARENL
101+05450 INCB bump
102+05453 BNE *+5 UIN>15
103+05456 INC UIN,Y carry
104+05460 STB UIN+1,Y
105+05470 PARENE PULS Y
106+05480 NEXT
107+05490 *
108+05500 FCC 'DAD'
109+05510 FCB 3
110+05520 FCB MFORE
111+05530 FDB PAREN-CFAOFF
112+05540 FDB BIF+2
113+05550 FDB 0
114+05560 FDB DCON-CFAOFF
115+05570 DAD PSHS Y
116+05580 PULU Y nfa
117+05590 LDB ,Y
118+05600 ANDB #NLMASK
119+05610 TFR B,A
120+05620 NEGA
121+05630 LEAX A,Y name
122+05640 DECA for NUL
123+05650 LEAS A,S allocate
124+05660 CLRA
125+05670 STA B,S NUL
126+05680 PSHU X
127+05690 PSHU D,S
128+05700 PSHS B,X mark
129+05710 DOCOL
130+05720 FDB CMOVE for (REFIND)
131+05730 FDB XMACH
132+05740 LEAX 3,S name
133+05750 PSHU X
134+05760 LDX GFAOFF,Y
135+05770 PSHU X
136+05780 DADL DOCOL
137+05790 FDB PREF
138+05800 FDB XMACH
139+05810 LDX [2,U]
140+05820 BNE DADC
141+05830 LDD #$19 not found
142+05840 PSHU D
143+05850 JMP ERROR
144+05860 DADC CMPY [2,U] this node?
145+05870 BEQ DADR
146+05880 LEAX RTOFF,X deeper
147+05890 LEAU 2,U
148+05900 STX ,U
149+05910 BRA DADL
150+05920 DADR PULS B,X
151+05930 STX 4,U
152+05950 INCB for NUL
153+05960 LEAS B,S drop name
154+05970 PULS Y
155+05980 NEXT
156+05990 *
157+20500 FCC 'REPEAL'
158+20510 FCB 6
159+20520 FCB MFORE
160+20530 FDB DAD-CFAOFF
161+20540 FDB BIF+2
162+20550 FDB 0
163+20560 FDB 0
164+20570 REPEAL PSHS Y
165+20580 LDX <UP
166+20590 LDY UCURR,X
167+20592 CMPY UFENCE,X
168+20594 BLS REPELX
169+20600 LDD LFAOFF,Y
170+20610 STD UCURR,X update
171+20620 LDD GFAOFF,Y stash
172+20625 PSHU Y
173+20630 LEAY PFAOFF,Y
174+20640 CMPY UROOT,X
175+20650 BNE REPELD
176+20660 STD UROOT,X
177+20670 REPELD CMPY UDROOT,X
178+20680 BNE REPELF
179+20690 STD UDROOT,X
180+20700 REPELF LDY ,U
181+20710 LDD #0
182+20720 CMPY UFORE,X end?
183+20730 BNE REPELA
184+20740 STD UFORE,X
185+20750 REPELA DOCOL
186+20760 FDB DAD
187+20760 FDB XMACH
188+20770 LEAU 2,U
189+20960 LDD #0
190+20970 STD [,U++] ground parent
191+20980 PULU D
192+20990 LDX <UP
193+21000 STD UDP,X
194+21010 REPELX PULS Y
195+21020 NEXT
196+21090 *
197+21100 FCC 'FORGET'
198+21110 FCB 6
199+21120 FCB MFORE
200+21130 FDB REPEAL-CFAOFF
201+21140 FDB BIF+2
202+21150 FDB FORE-CFAOFF
203+21160 FDB GFA-CFAOFF
204+21170 FORGET DOCOL
205+21180 FDB DDFIND
206+21190 FDB XMACH
207+21200 PSHS Y
208+21210 LEAU 2,U
209+21220 LDY ,U++
210+21230 BNE FORGEF found?
211+21240 LDD #0
212+21250 PSHU D
213+21260 JMP ERROR
214+21270 FORGEF LDX <UP
215+21280 CMPY UFENCE,X
216+21290 BHI FORGER
217+21300 LDD #$15
218+21310 BRA FORGEF-5
219+21320 FORGER LDB MFAOFF,Y
220+21330 ANDB #MFORE
221+21370 BEQ FORGEL
222+21380 LDD #$1A
223+21390 BRA FORGEF-5
224+21400 FORGEL LDX <UP
225+21410 CMPY UCURR,X
226+21420 BHS FORGEO
227+21430 DOCOL
228+21440 FDB REPEAL
229+21450 FDB XMACH
230+21460 BRA FORGEL
231+21470 FORGEO BEQ FORGEN
232+21480 LDD #$1B
233+21490 BRA FORGEF-5
234+21500 FORGEN PULS Y
235+21510 JMP REPEAL
236+21520 FOLLOW EQU *
237+21530 * FORGET should be the last definition in the pre-assembled kernel
238+21540 *
--- a/cross_v/BIFB.ASM
+++ b/cross_v/BIFB.ASM
@@ -1 +1,178 @@
1-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 *
\ No newline at end of file
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 *
--- a/cross_v/BIFDP.ASM
+++ b/cross_v/BIFDP.ASM
@@ -1 +1,111 @@
1-00020 * Direct Page definitions for BIF 00030 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00060 * This file is dependent on BIF/M definitions 00100 DPAGE EQU * 00105 VDP EQU DPAGE/256 00110 * ORG needs to leave space for this code 00120 SETDP VDP 00130 * COLD needs to load VDP into DP register 00500 * 00510 * Direct Page variables 00600 UP RMB 2 00610 RMB 8 spares 01000 * 01010 * nest into icode list 01020 * call by JSR 01030 XCOL LDX ,S list ptr 01040 STY ,S nest old 01050 TFR X,Y interpret 01060 NEXT 01070 * 01080 * PUSH FOLLOWING WORD 01090 * call by JSR for CONSTANT 01100 XCON LDD [,S++] 01110 PSHU D 01120 NEXT 01130 * 01140 * push following address 01150 * call by JSR for VARIABLE address 01160 XVAR PULS D 01170 PSHU D 01180 NEXT 01190 * (same code as R>, but in DP) 01200 * 01210 * push address of USER variable 01215 * call by JSR 01220 XUSER LDB [,S++] one byte offset 01225 CLRA 01230 ADDD <UP 01240 PSHU D 01250 NEXT 01260 * 01300 * push address of LINEAR array entry 01305 * call by JSR 01310 X1ARR PULS X 01320 LDD ,U index 01330 SUBD ,X base 01340 CMPD 2,X width 01350 BLO X1ARRS 01360 LDD #$0C 01365 PSHU D 01370 JMP ERROR 01380 X1ARRS PSHS A 01390 LDA 4,X size 01400 MUL 01410 STD ,U 01420 PULS A ms byte 01430 LDB 4,X 01440 MUL 01450 TFR B,A 01460 ADDA ,U 01470 LDB 1,U 01480 LEAX 5,X past header 01490 LEAX D,X 01500 STX ,U 01510 NEXT 01520 * LINEAR array header format: 01530 * FDB BASE (lowest index) 01540 * FDB WIDTH (# of elements) 01550 * FCB SIZE (< 256 bytes / element) 01560 * RMB SIZE*WIDTH (data) 01700 * 01710 * push content of USER variable 01715 * call by JSR 01720 XUCON LDX <UP 01722 LDB [,S++] one byte offset 01725 CLRA 01730 LDD D,X 01740 PSHU D 01750 NEXT 01800 * 01802 * store VOCABULARY pointer in root 01805 * call by JSR 01810 XVOC LDX <UP 01820 PULS D 01830 STD UROOT,X 01840 NEXT 01850 * 01860 * indirect into icode list following 01870 * DOES> in defining definition 01880 * call by JSR 01890 XDOES LDX ,S pfa 01900 LDD ,X++ list ptr 01920 PSHU X parameters 01930 STY ,S nest old 01940 TFR D,Y interpret 01950 NEXT 01960 * 02000 * push double constant 02010 * call by JSR 02020 XDCON PULS X 02030 LDD ,X++ 02040 LDX ,X++ 02050 PSHU D,X 02060 NEXT 02070 * 40000 ORG DPAGE+256 if code fits 40010 SETDP 0 not yet valid
\ No newline at end of file
1+00020 * Direct Page definitions for BIF
2+00030 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00060 * This file is dependent on BIF/M definitions
4+00100 DPAGE EQU *
5+00105 VDP EQU DPAGE/256
6+00110 * ORG needs to leave space for this code
7+00120 SETDP VDP
8+00130 * COLD needs to load VDP into DP register
9+00500 *
10+00510 * Direct Page variables
11+00600 UP RMB 2
12+00610 RMB 8 spares
13+01000 *
14+{ bifc_vm.c
15+01010 * nest into icode list
16+01020 * call by JSR
17+01030 XCOL LDX ,S list ptr
18+01040 STY ,S nest old
19+01050 TFR X,Y interpret
20+01060 NEXT
21+01070 *
22+}
23+{ symbol.c
24+01080 * PUSH FOLLOWING WORD
25+01090 * call by JSR for CONSTANT
26+01100 XCON LDD [,S++]
27+01110 PSHU D
28+01120 NEXT
29+01130 *
30+01140 * push following address
31+01150 * call by JSR for VARIABLE address
32+01160 XVAR PULS D
33+01170 PSHU D
34+01180 NEXT
35+01190 * (same code as R>, but in DP)
36+01200 *
37+01210 * push address of USER variable
38+01215 * call by JSR
39+01220 XUSER LDB [,S++] one byte offset
40+01225 CLRA
41+01230 ADDD <UP
42+01240 PSHU D
43+01250 NEXT
44+01260 *
45+01300 * push address of LINEAR array entry
46+01305 * call by JSR
47+01310 X1ARR PULS X
48+01320 LDD ,U index
49+01330 SUBD ,X base
50+01340 CMPD 2,X width
51+01350 BLO X1ARRS
52+01360 LDD #$0C
53+01365 PSHU D
54+01370 JMP ERROR
55+01380 X1ARRS PSHS A
56+01390 LDA 4,X size
57+01400 MUL
58+01410 STD ,U
59+01420 PULS A ms byte
60+01430 LDB 4,X
61+01440 MUL
62+01450 TFR B,A
63+01460 ADDA ,U
64+01470 LDB 1,U
65+01480 LEAX 5,X past header
66+01490 LEAX D,X
67+01500 STX ,U
68+01510 NEXT
69+01520 * LINEAR array header format:
70+01530 * FDB BASE (lowest index)
71+01540 * FDB WIDTH (# of elements)
72+01550 * FCB SIZE (< 256 bytes / element)
73+01560 * RMB SIZE*WIDTH (data)
74+01700 *
75+01710 * push content of USER variable
76+01715 * call by JSR
77+01720 XUCON LDX <UP
78+01722 LDB [,S++] one byte offset
79+01725 CLRA
80+01730 LDD D,X
81+01740 PSHU D
82+01750 NEXT
83+01800 *
84+01802 * store VOCABULARY pointer in root
85+01805 * call by JSR
86+01810 XVOC LDX <UP
87+01820 PULS D
88+01830 STD UROOT,X
89+01840 NEXT
90+01850 *
91+01860 * indirect into icode list following
92+01870 * DOES> in defining definition
93+01880 * call by JSR
94+01890 XDOES LDX ,S pfa
95+01900 LDD ,X++ list ptr
96+01920 PSHU X parameters
97+01930 STY ,S nest old
98+01940 TFR D,Y interpret
99+01950 NEXT
100+01960 *
101+02000 * push double constant
102+02010 * call by JSR
103+02020 XDCON PULS X
104+02030 LDD ,X++
105+02040 LDX ,X++
106+02050 PSHU D,X
107+02060 NEXT
108+02070 *
109+}
110+40000 ORG DPAGE+256 if code fits
111+40010 SETDP 0 not yet valid
--- a/cross_v/BIFST.ASM
+++ b/cross_v/BIFST.ASM
@@ -1 +1,174 @@
1-00000010 * Start up routines for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00100 * 00105 ILIM EQU $8000 memory 00110 IBUFF EQU ILIM-BCT*(BWID+4) 00120 IPAD EQU IBUFF-TWID max 00130 IHASH EQU IPAD-34 00140 IWPAD EQU IHASH-NLMASK-2 00150 ITIB EQU IWPAD-TWID 00160 IUSER EQU ITIB-UEND 00170 IRP0 EQU IUSER-2 00180 ISP0 EQU IRP0-258 00190 * dictionary below here 00400 * 00410 ORIG EQU * initials for task 0, offsets 00420 NOP 0 00430 JMP COLD 1 00440 NOP 4 00450 JMP WARM 5 00460 FDB $6809 cpu 8 00470 FDB 0 rev $0A 00480 FDB FORGET-CFAOFF CURRENT for COLD $0C 00490 FDB 8 backspace $0E 00500 FDB IUSER task 0 user area $10 00510 FDB ISP0 $12 00520 FDB IRP0 $14 00530 FDB ITIB $16 00540 FDB NLMASK not used $18 00550 FDB 1 WARNING $1A 00560 FDB FOLLOW-1 FENCE for COLD $1C 00570 FDB FOLLOW DP for COLD $1E 00580 FDB BIF+2 defs root $20 00590 FDB IPAD $22 00600 FDB IWPAD $24 00610 FDB 32 terminal columns $26 00620 FDB IBUFF $28 00630 FDB ILIM $2A 01000 * 01010 FCC 'COLD' 01020 FCB 4 01030 FCB MFORE 01040 FDB 0 01050 FDB BIF+2 01060 FDB 0 01070 FDB 0 01080 COLD LEAY DOREGS,PCR 01090 EXG PC,Y call 01100 SETDP VDP 01110 CLR $71 for BASIC reset 01120 LDD -4,Y 01130 STD UCURR,X 01140 LDD $0C,Y 01150 STD UFENCE,X 01160 LDD $0E,Y 01170 STD UDP,X 01180 LDD $10,Y 01190 STD UROOT,X 01200 STD UDROOT,X 01210 PSHU D Initial vocabularies 01220 BSR PRUNE must ALL be PRUNEd! 01230 LDD #EDITOR+2 01240 PSHU D 01250 BSR PRUNE 01260 LDD #ASMBLR+2 01270 PSHU D 01280 BSR PRUNE 01290 JMP WARM+5 01300 SETDP 0 01310 * Watch stack (vocabulary) depth! 01315 SETDP VDP 01320 PRUNE PSHS D,X,Y 01330 LDY <UP 01340 LDX ,U++ vocab 01344 BEQ PRUNEX+2 01348 LDD ,X root 01352 BEQ PRUNEX+2 01356 CMPD UFENCE,Y 01360 BLS PRUNSK 01364 LDD #0 01368 STD ,X 01372 BRA PRUNEX+2 01376 PRUNSK TFR D,X 01380 LDD #0 01386 PSHS D mark 01390 PRUNL LDD RTOFF,X 01400 BEQ PRUNLF 01410 CMPD UFENCE,Y 01420 BLS PRUNLF-2 01430 LDD #0 make leaf 01440 STD RTOFF,X 01450 BRA PRUNLF 01460 PSHS D for later 01470 PRUNLF LDD LFTOFF,X 01480 BEQ PRUNEX-2 01490 CMPD UFENCE,Y 01500 BHI PRUNL0 01510 TFR D,X go left 01520 BRA PRUNL 01530 PRUNL0 LDD #0 make leaf 01540 STD LFTOFF,X 01550 LDX ,S++ go right? 01560 PRUNEX BNE PRUNL 01570 PULS D,X,Y,PC 01580 SETDP 0 01590 * 02000 SETDP 0 02010 DOREGS LDS #IRP0 02020 PSHS CC save 02030 ORCC #$50 mask ints 02040 PSHS Y return adr 02050 LDD #DPAGE 02060 TFR A,DP 02070 SETDP VDP 02080 LDY #ORIG+$10 02090 LDX ,Y 02100 STX <UP 02110 LDU #ISP0 02120 LDD #0 02130 STD >0 trap [NULL]s 02140 RTS 02150 SETDP 0 02160 * 02230 FCC 'WARM' 02240 FCB 4 02250 FCB MFORE 02260 FDB COLD-CFAOFF 02270 FDB BIF+2 02280 FDB VLIST-CFAOFF 02290 FDB WARN-CFAOFF 02300 WARM LEAY <DOREGS,PCR 02310 EXG PC,Y call 02320 SETDP VDP 02360 LDD 2,Y 02370 STD US0,X 02380 STD UCSP,X 02390 LDD 4,Y 02400 STD UR0,X 02410 LDD -2,Y 02420 STD UBS,X 02430 LDD 6,Y 02440 STD UTIB,X 02450 LDD $0A,Y 02460 STD UWARN,X 02470 LEAY $10,Y 02480 LDD 2,Y 02490 STD UPAD,X 02500 STD UHLD,X 02510 LDD 4,Y 02520 STD UWP,X 02530 LDD 6,Y 02540 STD UCOLUM,X 02550 LDD 8,Y 02560 STD UFIRST,X 02570 STD UUSE,X 02580 STD UPREV,X 02590 LDD $0A,Y 02600 STD ULIMIT,X 02610 LDD #16 02620 STD UBASE,X 02630 LDD #0 02640 STD [UR0,X] hole 02650 STD [US0,X] hole 02660 LDA #(UEND-UIN) 02670 LEAY UIN,X 02680 WARMLY STB ,Y+ 02690 DECA 02700 BNE WARMLY 02740 PULS CC 02745 ANDCC #$EF enable IRQ (disc) 02750 DOCOL 02760 FDB EMTBUF 02770 FDB ABORT 02780 SETDP 0 02890 *
\ No newline at end of file
1+00000010 * Start up routines for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00100 *
4+00105 ILIM EQU $8000 memory
5+00110 IBUFF EQU ILIM-BCT*(BWID+4)
6+00120 IPAD EQU IBUFF-TWID max
7+00130 IHASH EQU IPAD-34
8+00140 IWPAD EQU IHASH-NLMASK-2
9+00150 ITIB EQU IWPAD-TWID
10+00160 IUSER EQU ITIB-UEND
11+00170 IRP0 EQU IUSER-2
12+00180 ISP0 EQU IRP0-258
13+00190 * dictionary below here
14+00400 *
15+00410 ORIG EQU * initials for task 0, offsets
16+00420 NOP 0
17+00430 JMP COLD 1
18+00440 NOP 4
19+00450 JMP WARM 5
20+00460 FDB $6809 cpu 8
21+00470 FDB 0 rev $0A
22+00480 FDB FORGET-CFAOFF CURRENT for COLD $0C
23+00490 FDB 8 backspace $0E
24+00500 FDB IUSER task 0 user area $10
25+00510 FDB ISP0 $12
26+00520 FDB IRP0 $14
27+00530 FDB ITIB $16
28+00540 FDB NLMASK not used $18
29+00550 FDB 1 WARNING $1A
30+00560 FDB FOLLOW-1 FENCE for COLD $1C
31+00570 FDB FOLLOW DP for COLD $1E
32+00580 FDB BIF+2 defs root $20
33+00590 FDB IPAD $22
34+00600 FDB IWPAD $24
35+00610 FDB 32 terminal columns $26
36+00620 FDB IBUFF $28
37+00630 FDB ILIM $2A
38+01000 *
39+01010 FCC 'COLD'
40+01020 FCB 4
41+01030 FCB MFORE
42+01040 FDB 0
43+01050 FDB BIF+2
44+01060 FDB 0
45+01070 FDB 0
46+01080 COLD LEAY DOREGS,PCR
47+01090 EXG PC,Y call
48+01100 SETDP VDP
49+01110 CLR $71 for BASIC reset
50+01120 LDD -4,Y
51+01130 STD UCURR,X
52+01140 LDD $0C,Y
53+01150 STD UFENCE,X
54+01160 LDD $0E,Y
55+01170 STD UDP,X
56+01180 LDD $10,Y
57+01190 STD UROOT,X
58+01200 STD UDROOT,X
59+01210 PSHU D Initial vocabularies
60+01220 BSR PRUNE must ALL be PRUNEd!
61+01230 LDD #EDITOR+2
62+01240 PSHU D
63+01250 BSR PRUNE
64+01260 LDD #ASMBLR+2
65+01270 PSHU D
66+01280 BSR PRUNE
67+01290 JMP WARM+5
68+01300 SETDP 0
69+01310 * Watch stack (vocabulary) depth!
70+01315 SETDP VDP
71+01320 PRUNE PSHS D,X,Y
72+01330 LDY <UP
73+01340 LDX ,U++ vocab
74+01344 BEQ PRUNEX+2
75+01348 LDD ,X root
76+01352 BEQ PRUNEX+2
77+01356 CMPD UFENCE,Y
78+01360 BLS PRUNSK
79+01364 LDD #0
80+01368 STD ,X
81+01372 BRA PRUNEX+2
82+01376 PRUNSK TFR D,X
83+01380 LDD #0
84+01386 PSHS D mark
85+01390 PRUNL LDD RTOFF,X
86+01400 BEQ PRUNLF
87+01410 CMPD UFENCE,Y
88+01420 BLS PRUNLF-2
89+01430 LDD #0 make leaf
90+01440 STD RTOFF,X
91+01450 BRA PRUNLF
92+01460 PSHS D for later
93+01470 PRUNLF LDD LFTOFF,X
94+01480 BEQ PRUNEX-2
95+01490 CMPD UFENCE,Y
96+01500 BHI PRUNL0
97+01510 TFR D,X go left
98+01520 BRA PRUNL
99+01530 PRUNL0 LDD #0 make leaf
100+01540 STD LFTOFF,X
101+01550 LDX ,S++ go right?
102+01560 PRUNEX BNE PRUNL
103+01570 PULS D,X,Y,PC
104+01580 SETDP 0
105+01590 *
106+02000 SETDP 0
107+02010 DOREGS LDS #IRP0
108+02020 PSHS CC save
109+02030 ORCC #$50 mask ints
110+02040 PSHS Y return adr
111+02050 LDD #DPAGE
112+02060 TFR A,DP
113+02070 SETDP VDP
114+02080 LDY #ORIG+$10
115+02090 LDX ,Y
116+02100 STX <UP
117+02110 LDU #ISP0
118+02120 LDD #0
119+02130 STD >0 trap [NULL]s
120+02140 RTS
121+02150 SETDP 0
122+02160 *
123+02230 FCC 'WARM'
124+02240 FCB 4
125+02250 FCB MFORE
126+02260 FDB COLD-CFAOFF
127+02270 FDB BIF+2
128+02280 FDB VLIST-CFAOFF
129+02290 FDB WARN-CFAOFF
130+02300 WARM LEAY <DOREGS,PCR
131+02310 EXG PC,Y call
132+02320 SETDP VDP
133+02360 LDD 2,Y
134+02370 STD US0,X
135+02380 STD UCSP,X
136+02390 LDD 4,Y
137+02400 STD UR0,X
138+02410 LDD -2,Y
139+02420 STD UBS,X
140+02430 LDD 6,Y
141+02440 STD UTIB,X
142+02450 LDD $0A,Y
143+02460 STD UWARN,X
144+02470 LEAY $10,Y
145+02480 LDD 2,Y
146+02490 STD UPAD,X
147+02500 STD UHLD,X
148+02510 LDD 4,Y
149+02520 STD UWP,X
150+02530 LDD 6,Y
151+02540 STD UCOLUM,X
152+02550 LDD 8,Y
153+02560 STD UFIRST,X
154+02570 STD UUSE,X
155+02580 STD UPREV,X
156+02590 LDD $0A,Y
157+02600 STD ULIMIT,X
158+02610 LDD #16
159+02620 STD UBASE,X
160+02630 LDD #0
161+02640 STD [UR0,X] hole
162+02650 STD [US0,X] hole
163+02660 LDA #(UEND-UIN)
164+02670 LEAY UIN,X
165+02680 WARMLY STB ,Y+
166+02690 DECA
167+02700 BNE WARMLY
168+02740 PULS CC
169+02745 ANDCC #$EF enable IRQ (disc)
170+02750 DOCOL
171+02760 FDB EMTBUF
172+02770 FDB ABORT
173+02780 SETDP 0
174+02890 *
--- a/cross_v/BIFU.INC
+++ b/cross_v/BIFU.INC
@@ -1 +1,43 @@
1-00010 * USER variable definitions for BIF 00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM) 00100 * INCLUDE THIS BEFORE SETTING DPR 00110 * ORG used here for offsets only 00120 ORG 0 00130 US0 RMB 2 base of data stack (6809 U) 00140 UR0 RMB 2 base of control stack (6809 S) 00150 UTIB RMB 2 terminal buffer 00160 RMB 2 width is not used 00170 UWARN RMB 2 disk on line? 00180 UFENCE RMB 2 for FORGET 00190 UDP RMB 2 first available byte in dictionary 00200 UROOT RMB 2 current dictionary root pointer 00210 UDROOT RMB 2 defining dictionary root pointer 00220 UCURR RMB 2 NFA of last definition 00230 UPAD RMB 2 text, numeric scratch buffers 00240 UWP RMB 2 WORD buffer pointer 00250 UCOLUM RMB 2 columns per lineon terminal 00260 UFIRST RMB 2 byte of buffers 00270 ULIMIT RMB 2 of buffer ram 00280 UBASE RMB 2 of numeric conversion 00290 UCSP RMB 2 stack pointer check 00300 UHLD RMB 2 character mark in pad 00310 UUSE RMB 2 Least Recently Used buffer 00320 UPREV RMB 2 Most Recently Used buffer 00330 UBS RMB 2 BackSpace 00340 UIN RMB 2 input buffer offset 00350 UOUT RMB 2 output buffer offset (cursor) 00360 UBLK RMB 2 active disc block 00370 UEBLK RMB 2 active edit block 00380 USCR RMB 2 active disc screen 00390 URNUM RMB 2 editing offset (cursor) 00400 UOFFS RMB 2 to active drive 00410 USTATE RMB 2 of compiler 00420 UDPL RMB 2 output Decimal Point Location 00430 UFLD RMB 2 output field width 00440 UVMK RMB 2 stack mark and function for VISIT 00450 UFORE RMB 2 FOREWARD reference block link 00460 UDPR RMB 2 Direct Page Emulator for Assembler 00990 RMB 16 8 spares 01000 UEND EQU *
\ No newline at end of file
1+00010 * USER variable definitions for BIF
2+00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
3+00100 * INCLUDE THIS BEFORE SETTING DPR
4+00110 * ORG used here for offsets only
5+{ userAllocations.h
6+00120 ORG 0
7+00130 US0 RMB 2 base of data stack (6809 U)
8+00140 UR0 RMB 2 base of control stack (6809 S)
9+00150 UTIB RMB 2 terminal buffer
10+00160 RMB 2 width is not used
11+00170 UWARN RMB 2 disk on line?
12+00180 UFENCE RMB 2 for FORGET
13+00190 UDP RMB 2 first available byte in dictionary
14+00200 UROOT RMB 2 current dictionary root pointer
15+00210 UDROOT RMB 2 defining dictionary root pointer
16+00220 UCURR RMB 2 NFA of last definition
17+00230 UPAD RMB 2 text, numeric scratch buffers
18+00240 UWP RMB 2 WORD buffer pointer
19+00250 UCOLUM RMB 2 columns per lineon terminal
20+00260 UFIRST RMB 2 byte of buffers
21+00270 ULIMIT RMB 2 of buffer ram
22+00280 UBASE RMB 2 of numeric conversion
23+00290 UCSP RMB 2 stack pointer check
24+00300 UHLD RMB 2 character mark in pad
25+00310 UUSE RMB 2 Least Recently Used buffer
26+00320 UPREV RMB 2 Most Recently Used buffer
27+00330 UBS RMB 2 BackSpace
28+00340 UIN RMB 2 input buffer offset
29+00350 UOUT RMB 2 output buffer offset (cursor)
30+00360 UBLK RMB 2 active disc block
31+00370 UEBLK RMB 2 active edit block
32+00380 USCR RMB 2 active disc screen
33+00390 URNUM RMB 2 editing offset (cursor)
34+00400 UOFFS RMB 2 to active drive
35+00410 USTATE RMB 2 of compiler
36+00420 UDPL RMB 2 output Decimal Point Location
37+00430 UFLD RMB 2 output field width
38+00440 UVMK RMB 2 stack mark and function for VISIT
39+00450 UFORE RMB 2 FOREWARD reference block link
40+00460 UDPR RMB 2 Direct Page Emulator for Assembler
41+}
42+00990 RMB 16 8 spares
43+01000 UEND EQU *
旧リポジトリブラウザで表示