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
5 00030 * BIF is architecturally derived from
6 00035 * the public domain fig-FORTH model.
8 00050 * TITLE BIF kernel 16 Feb 89
10 00080 INCLUDE BIFU.INC
11 00090 ORG $1200 DEBIF: $3F00
13 00110 INCLUDE BIFDP.ASM
14 00110 INCLUDE BIFST.ASM
15 00120 SETDP VDP COLD loads DP
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
31 01017 FDB FETCH-CFAOFF
33 01040 FDB NUBLK-CFAOFF
34 01050 FDB STOCSP-CFAOFF
35 01060 STORE LDD 2,U from stack to [top]
43 01130 FDB STORE-CFAOFF
45 01150 FDB 0 * LIST-CFAOFF
47 01170 LIT LDD ,Y++ push literal from code
58 01280 * push double literal from code
71 01410 * EXECUTE cfa on stack
105 01630 FDB BRANCH-CFAOFF
126 01840 XLOOPN LEAY 2,Y
133 01910 FDB XLOOP-CFAOFF
137 01950 XPLOOP LDD ,U++ inc val
148 02060 FDB XPLOOP-CFAOFF
162 02200 FDB IDDOT-CFAOFF
172 02236 FDB IPCOM-CFAOFF
184 02310 FDB DLITER-CFAOFF
196 02430 DIGITX SUBB #'a-'Z-1
206 02530 DIGITN LEAU 2,U
213 02600 FDB DIGIT-CFAOFF
215 02620 FDB IABORT-CFAOFF
216 02630 FDB XMACH-CFAOFF
217 02640 * search vocabulary adr2 for (adr1)
218 02650 PFIND LDD ,U valid?
224 02710 LDX [,U] NULL link?
227 02740 ANDB #MHID smudged?
229 02760 LEAX RTOFF,X deeper
241 03030 FDB PFIND-CFAOFF
243 03050 FDB EMTBUF-CFAOFF
245 03070 * adr1 c --- adr2 len
247 03100 ENCLLD LDB ,X+ delimiter
251 03133 ENCL0 LEAX -1,X
253 03150 ENCLLW LDB ,X+ scan word
257 03190 ENCLCA TFR X,D length
266 03280 FDB ENCLOS-CFAOFF
269 03310 FDB LOAD-CFAOFF
270 03320 * compile a literal
271 03330 LITER BSR LITERS
273 03350 LITERB STD ,Y++
284 03418 BNE *+4 compiling?
288 03426 EXG D,PC return
293 03460 FDB LITER-CFAOFF
295 03480 FDB DLIT-CFAOFF
296 03490 FDB DMINUS-CFAOFF
297 03500 * compile a 32 bit constant
298 03510 DLITER BSR LITERS
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