1 00010 * The Kernel of BIF: A Dialect of FORTH
\r00015 * with a Binary Tree Dictionary
\r00020 * Copyright 1989 by Joel Matthew Rees
\r00025 *
\r00030 * BIF is architecturally derived from
\r00035 * the public domain fig-FORTH model.
\r00040 *
\r00050 * TITLE BIF kernel 16 Feb 89
\r00070 OPT MEX
\r00080 INCLUDE BIFU.INC:1
\r00090 ORG $1200 DEBIF: $3F00
\r00100 INCLUDE BIF.M:1
\r00110 INCLUDE BIFDP.ASM:1
\r00110 INCLUDE BIFST.ASM:1
\r00120 SETDP VDP COLD loads DP
\r01000 *
\r01001 FCC '@' name
\r01002 FCB 1 name length, usage (NFA)
\r01003 FCB MFORE type/allocation MODES
\r01004 FDB WARM-CFAOFF previous link in allocation
\r01005 FDB BIF+2 owning vocabulary
\r01006 FDB EQ-CFAOFF left link in tree
\r01007 FDB AND-CFAOFF right link in tree
\r01010 FETCH LDD [,U] from [tos] to stack
\r01011 STD ,U
\r01012 NEXT
\r01013 *
\r01014 FCC '!'
\r01015 FCB 1
\r01016 FCB MFORE
\r01017 FDB FETCH-CFAOFF
\r01030 FDB BIF+2
\r01040 FDB NUBLK-CFAOFF
\r01050 FDB STOCSP-CFAOFF
\r01060 STORE LDD 2,U from stack to [top]
\r01070 STD [,U]
\r01080 LEAU 4,U
\r01090 NEXT
\r01095 *
\r01100 FCC 'LIT'
\r01110 FCB MCOMP.OR.3
\r01120 FCB MFORE
\r01130 FDB STORE-CFAOFF
\r01140 FDB BIF+2
\r01150 FDB 0 * LIST-CFAOFF
\r01160 FDB 0
\r01170 LIT LDD ,Y++ push literal from code
\r01180 PSHU D
\r01190 NEXT
\r01200 *
\r01210 FCC 'DLIT'
\r01220 FCB MCOMP.OR.4
\r01230 FCB MFORE
\r01240 FDB LIT-CFAOFF
\r01250 FDB BIF+2
\r01260 FDB 0
\r01270 FDB 0
\r01280 * push double literal from code
\r01290 DLIT LDD ,Y++
\r01300 LDX ,Y++
\r01310 PSHU D,X
\r01320 NEXT
\r01330 *
\r01340 FCC 'EXECUTE'
\r01350 FCB MCOMP.OR.7
\r01360 FCB MFORE
\r01370 FDB DLIT-CFAOFF
\r01380 FDB BIF+2
\r01390 FDB 0
\r01400 FDB 0
\r01410 * EXECUTE cfa on stack
\r01420 EXEC LDX ,U++
\r01430 BEQ *+4
\r01440 JMP ,X
\r01450 LDD #9
\r01460 PSHU D
\r01462 JMP ERROR
\r01464 *
\r01466 FCC '1BRANCH'
\r01468 FCB MCOMP.OR.7
\r01470 FCB MFORE
\r01472 FDB EXEC-CFAOFF
\r01474 FDB BIF+2
\r01476 FDB 0
\r01478 FDB 0
\r01480 TBR LDD ,U++
\r01482 BNE BRANCH
\r01484 LEAY 2,Y
\r01486 NEXT
\r01488 *
\r01490 FCC 'BRANCH'
\r01500 FCB MCOMP.OR.6
\r01510 FCB MFORE
\r01520 FDB TBR-CFAOFF
\r01530 FDB BIF+2
\r01540 FDB 0
\r01550 FDB 0
\r01560 BRANCH LDD ,Y++
\r01570 LEAY D,Y
\r01580 NEXT
\r01590 *
\r01600 FCC '0BRANCH'
\r01610 FCB MCOMP.OR.7
\r01620 FCB MFORE
\r01630 FDB BRANCH-CFAOFF
\r01640 FDB BIF+2
\r01650 FDB 0
\r01660 FDB 0
\r01670 ZBR LDD ,U++
\r01680 BEQ BRANCH
\r01690 LEAY 2,Y
\r01700 NEXT
\r01710 *
\r01720 FCC '(LOOP)'
\r01730 FCB MCOMP.OR.6
\r01740 FCB MFORE
\r01750 FDB ZBR-CFAOFF
\r01760 FDB BIF+2
\r01770 FDB 0
\r01780 FDB 0
\r01790 XLOOP LDD #1
\r01800 ADDD ,S
\r01810 STD ,S
\r01820 SUBD 2,S
\r01830 BLT BRANCH
\r01840 XLOOPN LEAY 2,Y
\r01850 LEAS 4,S
\r01860 NEXT
\r01870 *
\r01880 FCC '(+LOOP)'
\r01890 FCB MCOMP.OR.7
\r01900 FCB MFORE
\r01910 FDB XLOOP-CFAOFF
\r01920 FDB BIF+2
\r01930 FDB 0
\r01940 FDB 0
\r01950 XPLOOP LDD ,U++ inc val
\r01960 BPL XLOOP+3
\r01970 ADDD ,S
\r01980 STD ,S
\r01990 SUBD 2,S
\r02000 BGT BRANCH
\r02010 BRA XLOOPN
\r02020 *
\r02030 FCC '(DO)'
\r02040 FCB 4
\r02050 FCB MFORE
\r02060 FDB XPLOOP-CFAOFF
\r02070 FDB BIF+2
\r02080 FDB 0
\r02090 FDB 0
\r02100 XDO PULU D,X
\r02110 PSHS D,X
\r02120 NEXT
\r02130 *
\r02140 FCC 'I'
\r02150 FCB 1
\r02160 FCB MFORE
\r02170 FDB XDO-CFAOFF
\r02180 FDB BIF+2
\r02190 FDB HLD-CFAOFF
\r02200 FDB IDDOT-CFAOFF
\r02210 I LDD ,S
\r02220 PSHU D
\r02222 NEXT
\r02224 *
\r02226 FCC 'J'
\r02228 FCB 1
\r02230 FCB MFORE
\r02232 FDB I-CFAOFF
\r02234 FDB BIF+2
\r02236 FDB IPCOM-CFAOFF
\r02238 FDB 0
\r02240 J LDD 4,S
\r02242 PSHU D
\r02244 NEXT
\r02246 *
\r02250 FCC 'DIGIT'
\r02260 FCB 5
\r02270 FCB MFORE
\r02280 FDB J-CFAOFF
\r02290 FDB BIF+2
\r02300 FDB DEC-CFAOFF
\r02310 FDB DLITER-CFAOFF
\r02320 DIGIT LDB 3,U
\r02330 CMPB #'9
\r02340 BLS DIGITX+4
\r02350 CMPB #'A
\r02360 BLO DIGITN
\r02370 CMPB #'Z
\r02380 BLS DIGITX+2
\r02390 CMPB #'a
\r02400 BLO DIGITN
\r02410 CMPB #'z
\r02420 BHI DIGITN
\r02430 DIGITX SUBB #'a-'Z-1
\r02440 SUBB #'A-'9-1
\r02450 SUBB #'0
\r02460 CMPB 1,U
\r02470 BHS DIGITN
\r02480 CLRA
\r02490 STD 2,U
\r02500 LDD #-1
\r02510 DIGITL STD ,U
\r02520 NEXT
\r02530 DIGITN LEAU 2,U
\r02540 LDD #0
\r02550 BRA DIGITL
\r02560 *
\r02570 FCC '(FIND)'
\r02580 FCB 6
\r02590 FCB MFORE
\r02600 FDB DIGIT-CFAOFF
\r02610 FDB BIF+2
\r02620 FDB IABORT-CFAOFF
\r02630 FDB XMACH-CFAOFF
\r02640 * search vocabulary adr2 for (adr1)
\r02650 PFIND LDD ,U valid?
\r02660 BEQ PFINDX
\r02670 PFINDL DOCOL
\r02680 FDB PREF
\r02690 FDB XMACH
\r02700 LEAU 2,U
\r02710 LDX [,U] NULL link?
\r02720 BEQ PFINDN
\r02730 LDB ,X
\r02740 ANDB #MHID smudged?
\r02750 BEQ PFINDY
\r02760 LEAX RTOFF,X deeper
\r02770 STX ,U
\r02780 BRA PFINDL
\r02790 PFINDY LDX #-1
\r02800 PFINDN LDD ,U
\r02810 STX ,U
\r02820 PFINDX STD 2,U
\r02830 NEXT
\r02990 *
\r03000 FCC 'ENCLOSE'
\r03010 FCB 7
\r03020 FCB MFORE
\r03030 FDB PFIND-CFAOFF
\r03040 FDB BIF+2
\r03050 FDB EMTBUF-CFAOFF
\r03060 FDB 0
\r03070 * adr1 c --- adr2 len
\r03080 ENCLOS LDX 2,U
\r03100 ENCLLD LDB ,X+ delimiter
\r03110 BEQ ENCL0
\r03120 CMPB 1,U
\r03130 BEQ ENCLLD
\r03133 ENCL0 LEAX -1,X
\r03140 STX 2,U
\r03150 ENCLLW LDB ,X+ scan word
\r03160 BEQ ENCLCA
\r03170 CMPB 1,U
\r03180 BNE ENCLLW
\r03190 ENCLCA TFR X,D length
\r03195 SUBD #1
\r03200 SUBD 2,U
\r03220 STD ,U
\r03230 NEXT
\r03240 *
\r03250 FCC 'LITERAL'
\r03260 FCB MIMM.OR.7
\r03270 FCB MFORE
\r03280 FDB ENCLOS-CFAOFF
\r03290 FDB BIF+2
\r03300 FDB LIT-CFAOFF
\r03310 FDB LOAD-CFAOFF
\r03320 * compile a literal
\r03330 LITER BSR LITERS
\r03340 LDD #LIT
\r03350 LITERB STD ,Y++
\r03360 PULU D
\r03370 STD ,Y++
\r03380 STY UDP,X
\r03390 PULS Y
\r03400 JMP HERERR
\r03405 *
\r03410 LITERS LDX <UP
\r03412 LDB USTATE+1,X
\r03414 ANDB #SCOMP
\r03416 PULS D no CC
\r03418 BNE *+4 compiling?
\r03420 NEXT no
\r03422 PSHS Y
\r03424 LDY UDP,X
\r03426 EXG D,PC return
\r03430 *
\r03435 FCC 'DLITERAL'
\r03440 FCB MIMM.OR.8
\r03450 FCB MFORE
\r03460 FDB LITER-CFAOFF
\r03470 FDB BIF+2
\r03480 FDB DLIT-CFAOFF
\r03490 FDB DMINUS-CFAOFF
\r03500 * compile a 32 bit constant
\r03510 DLITER BSR LITERS
\r03540 LDD #DLIT
\r03550 STD ,Y++
\r03560 PULU D
\r03570 BRA LITERB
\r03630 *
\r08210 INCLUDE BIFB.ASM:1
\r08220 INCLUDE BIF1.ASM:1
\r08230 INCLUDE BIF1B.ASM:1
\r08240 INCLUDE BIF2.ASM:1
\r08250 INCLUDE BIF2B.ASM:1
\r08260 INCLUDE BIF3.ASM:1
\r08270 INCLUDE BIF3B.ASM:1
\r08280 INCLUDE BIF4.ASM:1
\r08285 INCLUDE BIF4B.ASM:1
\r08290 INCLUDE BIF5.ASM:1
\r08295 INCLUDE BIF5B.ASM:1
\r08300 INCLUDE BIF6.ASM:1
\r08310 INCLUDE BIF6B.ASM:1
\r08320 INCLUDE BIF7.ASM:1
\r08330 INCLUDE BIF7B.ASM:1
\r09000 END
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * USER variable definitions for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00100 * INCLUDE THIS BEFORE SETTING DPR
\r00110 * ORG used here for offsets only
\r00120 ORG 0
\r00130 US0 RMB 2 base of data stack (6809 U)
\r00140 UR0 RMB 2 base of control stack (6809 S)
\r00150 UTIB RMB 2 terminal buffer
\r00160 RMB 2 width is not used
\r00170 UWARN RMB 2 disk on line?
\r00180 UFENCE RMB 2 for FORGET
\r00190 UDP RMB 2 first available byte in dictionary
\r00200 UROOT RMB 2 current dictionary root pointer
\r00210 UDROOT RMB 2 defining dictionary root pointer
\r00220 UCURR RMB 2 NFA of last definition
\r00230 UPAD RMB 2 text, numeric scratch buffers
\r00240 UWP RMB 2 WORD buffer pointer
\r00250 UCOLUM RMB 2 columns per lineon terminal
\r00260 UFIRST RMB 2 byte of buffers
\r00270 ULIMIT RMB 2 of buffer ram
\r00280 UBASE RMB 2 of numeric conversion
\r00290 UCSP RMB 2 stack pointer check
\r00300 UHLD RMB 2 character mark in pad
\r00310 UUSE RMB 2 Least Recently Used buffer
\r00320 UPREV RMB 2 Most Recently Used buffer
\r00330 UBS RMB 2 BackSpace
\r00340 UIN RMB 2 input buffer offset
\r00350 UOUT RMB 2 output buffer offset (cursor)
\r00360 UBLK RMB 2 active disc block
\r00370 UEBLK RMB 2 active edit block
\r00380 USCR RMB 2 active disc screen
\r00390 URNUM RMB 2 editing offset (cursor)
\r00400 UOFFS RMB 2 to active drive
\r00410 USTATE RMB 2 of compiler
\r00420 UDPL RMB 2 output Decimal Point Location
\r00430 UFLD RMB 2 output field width
\r00440 UVMK RMB 2 stack mark and function for VISIT
\r00450 UFORE RMB 2 FOREWARD reference block link
\r00460 UDPR RMB 2 Direct Page Emulator for Assembler
\r00990 RMB 16 8 spares
\r01000 UEND EQU *
\res
\r01000 UEND EQU *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * EQUates and MACRO definitions for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r01000 *
\r01010 * JMP to next icode word
\r01020 NEXT MACRO
\r01030 JMP [,Y++]
\r01040 ENDM
\r01050 *
\r01053 * offset from name field to mode field
\r01056 MFAOFF EQU 1
\r01057 * length of symbols, must be 2^n for mask
\r01058 NLMASK EQU $1F
\r01060 * offset to previous allocation link
\r01070 LFAOFF EQU MFAOFF+1
\r01080 * offset to owning VOCABULARY (genesis) link
\r01090 GFAOFF EQU LFAOFF+2
\r01100 LFTOFF EQU GFAOFF+2 left child link
\r01110 RTOFF EQU GFAOFF+4 right child link
\r01120 * offset to code field
\r01130 CFAOFF EQU GFAOFF+6
\r01140 * offset to parameter field (past Direct Page jump)
\r01150 PFAOFF EQU CFAOFF+2
\r01160 * All links are relative to the name field (NFA)
\r01170 * Use PFAOFF (or PFA) with ;CODE!
\r01320 * usage and name length share a byte (name length < 32).
\r01330 * foreward blocks marked in the mode byte
\r01340 * usage and mode bits
\r01350 MFORE EQU $80 part of FORWARD reference block (in mode byte -- MFA)
\r01360 MCOMP EQU $80 compile only (in length byte -- NFA)
\r01370 MIMM EQU $40 precedence is IMMEDIATE execution (in length byte -- NFA)
\r01380 MHID EQU $20 SMUDGEd definition (in length byte -- NFA)
\r01390 *
\r01400 * initiate an icode list
\r01410 DOCOL MACRO
\r01420 JSR <XCOL
\r01430 ENDM
\r01440 *
\r01450 DOVAR MACRO
\r01460 JSR <XVAR
\r01470 ENDM
\r01480 *
\r01490 DOCON MACRO
\r01500 JSR <XCON
\r01510 ENDM
\r01520 *
\r01530 DOUSER MACRO
\r01540 JSR <XUSER
\r01550 ENDM
\r01560 *
\r01570 DO1ARR MACRO
\r01580 JSR <X1ARR
\r01590 ENDM
\r01600 *
\r01610 DOUCON MACRO
\r01620 JSR <XUCON
\r01630 ENDM
\r01640 *
\r01650 DOVOC MACRO
\r01660 JSR <XVOC
\r01670 ENDM
\r01680 *
\r02000 * add D to top of stack
\r02010 ADDTOP MACRO
\r02020 ADDD ,U
\r02030 STD ,U
\r02040 JMP [,Y++]
\r02050 ENDM
\r02060 *
\r020 ADDD ,U
\r02030 STD ,U
\r02040 JMP [,Y++]
\r02050 ENDM
\r02060 *
\r}
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00020 * Direct Page definitions for BIF
\r00030 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00060 * This file is dependent on BIF/M definitions
\r00100 DPAGE EQU *
\r00105 VDP EQU DPAGE/256
\r00110 * ORG needs to leave space for this code
\r00120 SETDP VDP
\r00130 * COLD needs to load VDP into DP register
\r00500 *
\r00510 * Direct Page variables
\r00600 UP RMB 2
\r00610 RMB 8 spares
\r01000 *
\r01010 * nest into icode list
\r01020 * call by JSR
\r01030 XCOL LDX ,S list ptr
\r01040 STY ,S nest old
\r01050 TFR X,Y interpret
\r01060 NEXT
\r01070 *
\r01080 * PUSH FOLLOWING WORD
\r01090 * call by JSR for CONSTANT
\r01100 XCON LDD [,S++]
\r01110 PSHU D
\r01120 NEXT
\r01130 *
\r01140 * push following address
\r01150 * call by JSR for VARIABLE address
\r01160 XVAR PULS D
\r01170 PSHU D
\r01180 NEXT
\r01190 * (same code as R>, but in DP)
\r01200 *
\r01210 * push address of USER variable
\r01215 * call by JSR
\r01220 XUSER LDB [,S++] one byte offset
\r01225 CLRA
\r01230 ADDD <UP
\r01240 PSHU D
\r01250 NEXT
\r01260 *
\r01300 * push address of LINEAR array entry
\r01305 * call by JSR
\r01310 X1ARR PULS X
\r01320 LDD ,U index
\r01330 SUBD ,X base
\r01340 CMPD 2,X width
\r01350 BLO X1ARRS
\r01360 LDD #$0C
\r01365 PSHU D
\r01370 JMP ERROR
\r01380 X1ARRS PSHS A
\r01390 LDA 4,X size
\r01400 MUL
\r01410 STD ,U
\r01420 PULS A ms byte
\r01430 LDB 4,X
\r01440 MUL
\r01450 TFR B,A
\r01460 ADDA ,U
\r01470 LDB 1,U
\r01480 LEAX 5,X past header
\r01490 LEAX D,X
\r01500 STX ,U
\r01510 NEXT
\r01520 * LINEAR array header format:
\r01530 * FDB BASE (lowest index)
\r01540 * FDB WIDTH (# of elements)
\r01550 * FCB SIZE (< 256 bytes / element)
\r01560 * RMB SIZE*WIDTH (data)
\r01700 *
\r01710 * push content of USER variable
\r01715 * call by JSR
\r01720 XUCON LDX <UP
\r01722 LDB [,S++] one byte offset
\r01725 CLRA
\r01730 LDD D,X
\r01740 PSHU D
\r01750 NEXT
\r01800 *
\r01802 * store VOCABULARY pointer in root
\r01805 * call by JSR
\r01810 XVOC LDX <UP
\r01820 PULS D
\r01830 STD UROOT,X
\r01840 NEXT
\r01850 *
\r01860 * indirect into icode list following
\r01870 * DOES> in defining definition
\r01880 * call by JSR
\r01890 XDOES LDX ,S pfa
\r01900 LDD ,X++ list ptr
\r01920 PSHU X parameters
\r01930 STY ,S nest old
\r01940 TFR D,Y interpret
\r01950 NEXT
\r01960 *
\r02000 * push double constant
\r02010 * call by JSR
\r02020 XDCON PULS X
\r02030 LDD ,X++
\r02040 LDX ,X++
\r02050 PSHU D,X
\r02060 NEXT
\r02070 *
\r40000 ORG DPAGE+256 if code fits
\r40010 SETDP 0 not yet valid
\r0010 SETDP 0 not yet valid
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00000010 * Start up routines for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00100 *
\r00105 ILIM EQU $8000 memory
\r00110 IBUFF EQU ILIM-BCT*(BWID+4)
\r00120 IPAD EQU IBUFF-TWID max
\r00130 IHASH EQU IPAD-34
\r00140 IWPAD EQU IHASH-NLMASK-2
\r00150 ITIB EQU IWPAD-TWID
\r00160 IUSER EQU ITIB-UEND
\r00170 IRP0 EQU IUSER-2
\r00180 ISP0 EQU IRP0-258
\r00190 * dictionary below here
\r00400 *
\r00410 ORIG EQU * initials for task 0, offsets
\r00420 NOP 0
\r00430 JMP COLD 1
\r00440 NOP 4
\r00450 JMP WARM 5
\r00460 FDB $6809 cpu 8
\r00470 FDB 0 rev $0A
\r00480 FDB FORGET-CFAOFF CURRENT for COLD $0C
\r00490 FDB 8 backspace $0E
\r00500 FDB IUSER task 0 user area $10
\r00510 FDB ISP0 $12
\r00520 FDB IRP0 $14
\r00530 FDB ITIB $16
\r00540 FDB NLMASK not used $18
\r00550 FDB 1 WARNING $1A
\r00560 FDB FOLLOW-1 FENCE for COLD $1C
\r00570 FDB FOLLOW DP for COLD $1E
\r00580 FDB BIF+2 defs root $20
\r00590 FDB IPAD $22
\r00600 FDB IWPAD $24
\r00610 FDB 32 terminal columns $26
\r00620 FDB IBUFF $28
\r00630 FDB ILIM $2A
\r01000 *
\r01010 FCC 'COLD'
\r01020 FCB 4
\r01030 FCB MFORE
\r01040 FDB 0
\r01050 FDB BIF+2
\r01060 FDB 0
\r01070 FDB 0
\r01080 COLD LEAY DOREGS,PCR
\r01090 EXG PC,Y call
\r01100 SETDP VDP
\r01110 CLR $71 for BASIC reset
\r01120 LDD -4,Y
\r01130 STD UCURR,X
\r01140 LDD $0C,Y
\r01150 STD UFENCE,X
\r01160 LDD $0E,Y
\r01170 STD UDP,X
\r01180 LDD $10,Y
\r01190 STD UROOT,X
\r01200 STD UDROOT,X
\r01210 PSHU D Initial vocabularies
\r01220 BSR PRUNE must ALL be PRUNEd!
\r01230 LDD #EDITOR+2
\r01240 PSHU D
\r01250 BSR PRUNE
\r01260 LDD #ASMBLR+2
\r01270 PSHU D
\r01280 BSR PRUNE
\r01290 JMP WARM+5
\r01300 SETDP 0
\r01310 * Watch stack (vocabulary) depth!
\r01315 SETDP VDP
\r01320 PRUNE PSHS D,X,Y
\r01330 LDY <UP
\r01340 LDX ,U++ vocab
\r01344 BEQ PRUNEX+2
\r01348 LDD ,X root
\r01352 BEQ PRUNEX+2
\r01356 CMPD UFENCE,Y
\r01360 BLS PRUNSK
\r01364 LDD #0
\r01368 STD ,X
\r01372 BRA PRUNEX+2
\r01376 PRUNSK TFR D,X
\r01380 LDD #0
\r01386 PSHS D mark
\r01390 PRUNL LDD RTOFF,X
\r01400 BEQ PRUNLF
\r01410 CMPD UFENCE,Y
\r01420 BLS PRUNLF-2
\r01430 LDD #0 make leaf
\r01440 STD RTOFF,X
\r01450 BRA PRUNLF
\r01460 PSHS D for later
\r01470 PRUNLF LDD LFTOFF,X
\r01480 BEQ PRUNEX-2
\r01490 CMPD UFENCE,Y
\r01500 BHI PRUNL0
\r01510 TFR D,X go left
\r01520 BRA PRUNL
\r01530 PRUNL0 LDD #0 make leaf
\r01540 STD LFTOFF,X
\r01550 LDX ,S++ go right?
\r01560 PRUNEX BNE PRUNL
\r01570 PULS D,X,Y,PC
\r01580 SETDP 0
\r01590 *
\r02000 SETDP 0
\r02010 DOREGS LDS #IRP0
\r02020 PSHS CC save
\r02030 ORCC #$50 mask ints
\r02040 PSHS Y return adr
\r02050 LDD #DPAGE
\r02060 TFR A,DP
\r02070 SETDP VDP
\r02080 LDY #ORIG+$10
\r02090 LDX ,Y
\r02100 STX <UP
\r02110 LDU #ISP0
\r02120 LDD #0
\r02130 STD >0 trap [NULL]s
\r02140 RTS
\r02150 SETDP 0
\r02160 *
\r02230 FCC 'WARM'
\r02240 FCB 4
\r02250 FCB MFORE
\r02260 FDB COLD-CFAOFF
\r02270 FDB BIF+2
\r02280 FDB VLIST-CFAOFF
\r02290 FDB WARN-CFAOFF
\r02300 WARM LEAY <DOREGS,PCR
\r02310 EXG PC,Y call
\r02320 SETDP VDP
\r02360 LDD 2,Y
\r02370 STD US0,X
\r02380 STD UCSP,X
\r02390 LDD 4,Y
\r02400 STD UR0,X
\r02410 LDD -2,Y
\r02420 STD UBS,X
\r02430 LDD 6,Y
\r02440 STD UTIB,X
\r02450 LDD $0A,Y
\r02460 STD UWARN,X
\r02470 LEAY $10,Y
\r02480 LDD 2,Y
\r02490 STD UPAD,X
\r02500 STD UHLD,X
\r02510 LDD 4,Y
\r02520 STD UWP,X
\r02530 LDD 6,Y
\r02540 STD UCOLUM,X
\r02550 LDD 8,Y
\r02560 STD UFIRST,X
\r02570 STD UUSE,X
\r02580 STD UPREV,X
\r02590 LDD $0A,Y
\r02600 STD ULIMIT,X
\r02610 LDD #16
\r02620 STD UBASE,X
\r02630 LDD #0
\r02640 STD [UR0,X] hole
\r02650 STD [US0,X] hole
\r02660 LDA #(UEND-UIN)
\r02670 LEAY UIN,X
\r02680 WARMLY STB ,Y+
\r02690 DECA
\r02700 BNE WARMLY
\r02740 PULS CC
\r02745 ANDCC #$EF enable IRQ (disc)
\r02750 DOCOL
\r02760 FDB EMTBUF
\r02770 FDB ABORT
\r02780 SETDP 0
\r02890 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r03640 FCC 'EMIT'
\r03650 FCB 4
\r03660 FCB MFORE
\r03670 FDB DLITER-CFAOFF
\r03680 FDB BIF+2
\r03690 FDB DUP-CFAOFF
\r03700 FDB ENCLOS-CFAOFF
\r03705 * output using rom CHROUT: redirectable to printer
\r03710 EMIT PULU D
\r03720 TFR B,A
\r03730 CLRB
\r03740 PSHS Y,U,DP
\r03750 TFR B,DP
\r03760 JSR [$A002]
\r03770 PULS Y,U,DP
\r03780 NEXT
\r03790 *
\r03800 FCC 'KEY'
\r03810 FCB 3
\r03820 FCB MFORE
\r03830 FDB EMIT-CFAOFF
\r03840 FDB BIF+2
\r03850 FDB IN-CFAOFF
\r03860 FDB LIMIT-CFAOFF
\r03870 * wait for key from POLCAT
\r03880 KEY PSHS Y,U,DP
\r03890 CLRB
\r03895 LDA #$CF a cursor
\r03900 TFR B,DP
\r03901 SETDP 0
\r03904 LDX <$88 locate
\r03906 LDB ,X save
\r03908 STA ,X
\r03910 JSR [$A000]
\r03920 BEQ *-4
\r03925 STB ,X restore
\r03930 KEYR CLRB
\r03932 CMPA #3 break key
\r03934 BNE *+3
\r03936 COMB
\r03938 EXG A,B
\r03940 PULS Y,U,DP
\r03942 SETDP VDP
\r03945 PSHU D
\r03950 NEXT
\r03960 *
\r03970 FCC '?TERMINAL'
\r03980 FCB 9
\r03990 FCB MFORE
\r04000 FDB KEY-CFAOFF
\r04010 FDB BIF+2
\r04020 FDB QSTACK-CFAOFF
\r04030 FDB 0
\r04040 * check break key using POLCAT
\r04050 QTERM PSHS Y,U,DP
\r04060 CLRB
\r04070 TFR B,DP
\r04080 JSR [$A000]
\r04100 BRA KEYR
\r04140 *
\r04150 FCC 'CR'
\r04160 FCB 2
\r04170 FCB MFORE
\r04180 FDB QTERM-CFAOFF
\r04190 FDB BIF+2
\r04200 FDB COUNT-CFAOFF
\r04210 FDB 0
\r04220 CR LDB #$0D
\r04230 BRA EMIT+2
\r04240 *
\r04250 FCC '(;CODE)'
\r04260 FCB MCOMP.OR.7
\r04270 FCB MFORE
\r04280 FDB CR-CFAOFF
\r04290 FDB BIF+2
\r04300 FDB 0
\r04310 FDB 0
\r04320 XSCODE LDX <UP
\r04330 LDX UCURR,X being defined
\r04340 LEAX CFAOFF,X
\r04350 LDA AJSR,PCR
\r04360 STA ,X+
\r04370 STY ,X++ code address
\r04380 PULS Y un-nest
\r04390 NEXT
\r04400 * parameters are 3 bytes beyond CFA
\r04410 AJSR JSR >0 to be compiled
\r04420 *
\r04440 DEVNUM EQU $6F coco ROM constant
\r04450 FCC '>PRT'
\r04460 FCB 4
\r04470 FCB MFORE
\r04480 FDB XSCODE-CFAOFF
\r04490 FDB BIF+2
\r04500 FDB 0
\r04510 FDB 0
\r04520 TOPRT LDB #-2
\r04530 STB DEVNUM
\r04540 NEXT
\r04550 *
\r04560 FCC '>VID'
\r04570 FCB 4
\r04580 FCB MFORE
\r04590 FDB TOPRT-CFAOFF
\r04600 FDB BIF+2
\r04610 FDB 0
\r04620 FDB 0
\r04630 TOVID CLR DEVNUM
\r04650 NEXT
\r04660 *
\r04670 FCC '2*'
\r04680 FCB 2
\r04690 FCB MFORE
\r04700 FDB TOVID-CFAOFF
\r04710 FDB BIF+2
\r04720 FDB 0
\r04730 FDB 0
\r04740 LSHIFT LSL 1,U
\r04750 ROL ,U
\r04760 NEXT
\r04770 *
\r04780 FCC '2/'
\r04790 FCB 2
\r04800 FCB MFORE
\r04810 FDB LSHIFT-CFAOFF
\r04820 FDB BIF+2
\r04830 FDB SUB2-CFAOFF
\r04840 FDB THREE-CFAOFF
\r04850 RSHIFT ASR ,U
\r04860 ROR 1,U
\r04870 NEXT
\r04880 *
\r04885 FCC '(REFIND)'
\r04890 FCB 8
\r04895 FCB MFORE
\r04900 FDB RSHIFT-CFAOFF
\r04910 FDB BIF+2
\r04920 FDB 0
\r04930 FDB 0
\r04940 * search vocabulary adr2 for first (adr1)
\r04950 PREF LDD #PFAOFF vocab flag
\r04955 PSHS D,Y
\r04960 LDX ,U root ptr
\r04965 BEQ PREFN
\r04970 BRA PREFA
\r04980 PREFP LDY 2,U hunt for
\r04990 LDB ,X count
\r05000 ANDB #NLMASK
\r05005 BEQ PREF1
\r05010 TFR B,A
\r05020 NEGA
\r05040 LEAX A,X hunt in
\r05050 PREFS LDA ,Y+ scan
\r05060 SUBA ,X+
\r05070 BNE PREFN
\r05080 DECB
\r05090 BNE PREFS
\r05100 PREF1 LDA ,Y NUL?
\r05110 BNE PREFN
\r05120 PREFX PULS D,Y
\r05140 PSHU D flag
\r05170 NEXT
\r05180 PREFN LDX [,U] old NFA
\r05190 TSTA
\r05200 BMI *+6
\r05210 LDB #RTOFF
\r05220 BRA *+4
\r05230 LDB #LFTOFF
\r05233 LEAX B,X
\r05236 STB 1,S flag
\r05240 STX ,U
\r05250 PREFA LDX ,X new NFA
\r05260 BNE PREFP
\r05280 BRA PREFX
\r08200 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC 'MOVE'
\r01010 FCB 4
\r01020 FCB MFORE
\r01030 FDB PREF-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB MINUS-CFAOFF
\r01060 FDB NFA-CFAOFF
\r01070 MOVE LDD ,U++ count=0?
\r01080 BEQ MOVEX
\r01090 PSHS Y,U
\r01100 LDY ,U
\r01110 LDU 2,U
\r01120 MOVELP PULU X
\r01130 STX ,Y++
\r01140 SUBD #1
\r01150 BNE MOVELP
\r01160 PULS Y,U
\r01170 MOVEX LEAU 4,U
\r01180 NEXT
\r01190 *
\r01200 FCC 'CMOVE'
\r01210 FCB 5
\r01220 FCB MFORE
\r01225 FDB MOVE-CFAOFF
\r01230 FDB BIF+2
\r01240 FDB CFA-CFAOFF
\r01250 FDB COMP-CFAOFF
\r01260 CMOVE LDD #0
\r01270 SUBD ,U++
\r01280 PSHS A,Y
\r01290 PULU X,Y
\r01300 BEQ CMOVEX
\r01310 CMOVEL LDA ,Y+
\r01320 STA ,X+
\r01330 INCB
\r01340 BNE CMOVEL
\r01350 INC ,S
\r01360 BNE CMOVEL
\r01370 CMOVEX PULS A,Y
\r01380 NEXT
\r01390 *
\r01400 FCC 'U*'
\r01410 FCB 2
\r01420 FCB MFORE
\r01430 FDB CMOVE-CFAOFF
\r01440 FDB BIF+2
\r01450 FDB TOG-CFAOFF
\r01460 FDB UPDATE-CFAOFF
\r01470 USTAR LEAS -4,S
\r01480 LDA 1,U LEAST
\r01490 LDB 3,U
\r01500 MUL
\r01510 STD 2,S
\r01520 LDA ,U most
\r01530 LDB 2,U
\r01540 MUL
\r01550 STD ,S
\r01560 LDD 1,U inner
\r01570 MUL
\r01580 ADDD 1,S
\r01590 BCC *+4
\r01600 INC ,S
\r01605 STD 1,S
\r01610 LDA ,U
\r01620 LDB 3,U
\r01630 MUL
\r01640 ADDD 1,S
\r01650 BCC *+4
\r01660 INC ,S
\r01670 STD 1,S
\r01680 PULS D,X
\r01690 STD ,U
\r01700 STX 2,U
\r01710 NEXT
\r01720 *
\r01730 FCC 'U/'
\r01740 FCB 2
\r01750 FCB MFORE
\r01760 FDB USTAR-CFAOFF
\r01770 FDB BIF+2
\r01780 FDB 0
\r01790 FDB 0
\r01800 USLASH LDA #17 bit ct
\r01810 PSHS A
\r01820 LDD 2,U dividend
\r01830 USLDIV CMPD ,U divisor
\r01840 BHS USLSUB
\r01850 ANDCC #.NOT.1
\r01860 BRA USLBIT
\r01870 USLSUB SUBD ,U
\r01880 ORCC #1 quotient,
\r01890 USLBIT ROL 5,U save it
\r01900 ROL 4,U
\r01910 DEC ,S more bits?
\r01920 BEQ USLR
\r01930 ROLB remainder
\r01940 ROLA
\r01950 BCC USLDIV
\r01960 BRA USLSUB
\r01970 USLR LEAS 1,S
\r01980 LEAU 2,U
\r01990 LDX 2,U
\r02000 STD 2,U
\r02010 STX ,U
\r02020 NEXT
\r02030 *
\r02200 FCC 'AND'
\r02210 FCB 3
\r02220 FCB MFORE
\r02230 FDB USLASH-CFAOFF
\r02240 FDB BIF+2
\r02250 FDB ABS-CFAOFF
\r02260 FDB BACK-CFAOFF
\r02270 AND PULU D
\r02280 ANDB 1,U
\r02290 ANDA ,U
\r02300 STD ,U
\r02310 NEXT
\r02320 *
\r02330 FCC 'OR'
\r02340 FCB 2
\r02350 FCB MFORE
\r02360 FDB AND-CFAOFF
\r02370 FDB BIF+2
\r02380 FDB OCT-CFAOFF
\r02390 FDB OUT-CFAOFF
\r02400 OR PULU D
\r02410 ORB 1,U
\r02420 ORA ,U
\r02430 STD ,U
\r02440 NEXT
\r02450 *
\r02460 FCC 'XOR'
\r02470 FCB 3
\r02480 FCB MFORE
\r02490 FDB OR-CFAOFF
\r02500 FDB BIF+2
\r02510 FDB 0
\r02520 FDB 0
\r02530 XOR PULU D
\r02540 EORB 1,U
\r02550 EORA ,U
\r02560 STD ,U
\r02570 NEXT
\r02580 *
\r02590 FCC 'SP@'
\r02600 FCB 3
\r02610 FCB MFORE
\r02620 FDB XOR-CFAOFF
\r02630 FDB BIF+2
\r02640 FDB SPSTO-CFAOFF
\r02660 FDB 0
\r02670 SPFEH TFR U,X
\r02680 PSHU X
\r02690 NEXT
\r02700 *
\r02710 FCC 'SP!'
\r02720 FCB 3
\r02730 FCB MFORE
\r02740 FDB SPFEH-CFAOFF
\r02750 FDB BIF+2
\r02760 FDB 0
\r02770 FDB 0
\r02780 SPSTO LDX <UP
\r02790 LDU US0,X
\r02793 CLR ,U hole
\r02796 CLR 1,U
\r02800 NEXT
\r02810 *
\r02820 FCC 'RP!'
\r02830 FCB 3
\r02840 FCB MFORE
\r02850 FDB SPSTO-CFAOFF
\r02860 FDB BIF+2
\r02870 FDB 0
\r02880 FDB 0
\r02890 RPSTO LDX <UP
\r02900 LDS UR0,X
\r02903 CLR ,S hole
\r02906 CLR 1,S
\r02910 NEXT
\r02920 *
\r02930 FCC ';S'
\r02940 FCB MIMM.OR.2
\r02950 FCB MFORE
\r02960 FDB RPSTO-CFAOFF
\r02970 FDB BIF+2
\r02980 FDB 0
\r02990 FDB 0
\r03000 SEMIS PULS Y un-nest
\r03010 NEXT
\r03020 *
\r03030 FCC 'LEAVE'
\r03040 FCB MCOMP.OR.5
\r03050 FCB MFORE
\r03060 FDB SEMIS-CFAOFF
\r03070 FDB BIF+2
\r03080 FDB LATEST-CFAOFF
\r03090 FDB LFA-CFAOFF
\r03100 LEAVE LDD ,S index
\r03110 STD 2,S to limit
\r03120 NEXT
\r03130 *
\r03140 FCC '>R'
\r03150 FCB MCOMP.OR.2
\r03160 FCB MFORE
\r03170 FDB LEAVE-CFAOFF
\r03180 FDB BIF+2
\r03190 FDB GT-CFAOFF
\r03200 FDB QDOT-CFAOFF
\r03210 TOR PULU D
\r03220 PSHS D
\r03230 NEXT
\r03240 *
\r03250 FCC 'R>'
\r03260 FCB MCOMP.OR.2
\r03270 FCB MFORE
\r03280 FDB TOR-CFAOFF
\r03290 FDB BIF+2
\r03300 FDB R-CFAOFF
\r03310 FDB REPEAT-CFAOFF
\r03320 RFROM JMP <XVAR not JSR!
\r03350 *
\r03360 FCC 'R'
\r03370 FCB 1
\r03380 FCB MFORE
\r03390 FDB RFROM-CFAOFF
\r03400 FDB BIF+2
\r03410 FDB QUIT-CFAOFF
\r03420 FDB RNUM-CFAOFF
\r03430 R JMP I
\r03431 *
\r03432 FCC '='
\r03433 FCB 1
\r03434 FCB MFORE
\r03435 FDB R-CFAOFF
\r03436 FDB BIF+2
\r03437 FDB LT-CFAOFF
\r03438 FDB QCOMP-CFAOFF
\r03439 EQ PULU D
\r03440 CMPD ,U
\r03441 BEQ TRUE
\r03442 BRA FALSE
\r03451 *
\r03452 FCC '<'
\r03453 FCB 1
\r03454 FCB MFORE
\r03455 FDB EQ-CFAOFF
\r03456 FDB BIF+2
\r03457 FDB SCODE-CFAOFF
\r03458 FDB BEGHSH-CFAOFF
\r03459 LT LDD 2,U
\r03460 CMPD ,U++
\r03461 BLT TRUE
\r03462 BRA FALSE
\r03463 *
\r03490 FCC '0='
\r03491 FCB 2
\r03492 FCB MFORE
\r03493 FDB LT-CFAOFF
\r03494 FDB BIF+2
\r03500 FDB 0
\r03510 FDB ONE-CFAOFF
\r03520 ZEQ LDD ,U
\r03530 BNE FALSE
\r03540 TRUE LDD #-1
\r03550 STD ,U
\r03560 NEXT
\r03570 *
\r03580 FCC '0<'
\r03590 FCB 2
\r03600 FCB MFORE
\r03610 FDB ZEQ-CFAOFF
\r03620 FDB BIF+2
\r03630 FDB ZERO-CFAOFF
\r03640 FDB ZEQ-CFAOFF
\r03650 ZLESS LDA ,U
\r03660 BMI TRUE
\r03665 FALSE LDD #0
\r03670 STD ,U
\r03680 NEXT
\r03681 *
\r03682 FCC '>'
\r03683 FCB 1
\r03684 FCB MFORE
\r03685 FDB ZLESS-CFAOFF
\r03686 FDB BIF+2
\r03687 FDB 0
\r03688 FDB TOPRT-CFAOFF
\r03689 GT LDD 2,U
\r03690 CMPD ,U++
\r03691 BGT TRUE
\r03692 BRA FALSE
\r03693 *
\r03700 FCC '+'
\r03710 FCB 1
\r03720 FCB MFORE
\r03730 FDB GT-CFAOFF
\r03740 FDB BIF+2
\r03750 FDB PAREN-CFAOFF
\r03760 FDB SLASH-CFAOFF
\r03770 ADD PULU D
\r03780 ADDTOP
\r03810 *
\r03820 FCC '-'
\r03830 FCB 1
\r03840 FCB MFORE
\r03850 FDB ADD-CFAOFF
\r03860 FDB BIF+2
\r03870 FDB 0
\r03880 FDB 0
\r03890 SUB LDD 2,U
\r03900 SUBD ,U++
\r03910 STD ,U
\r03920 NEXT
\r03930 *
\r03940 FCC 'D+'
\r03950 FCB 2
\r03960 FCB MFORE
\r03970 FDB SUB-CFAOFF
\r03980 FDB BIF+2
\r03990 FDB CONST-CFAOFF
\r04000 FDB DABS-CFAOFF
\r04010 DADD LDD 6,U
\r04020 ADDD 2,U
\r04030 STD 6,U
\r04040 LDD 4,U
\r04050 ADCB 1,U
\r04060 ADCA ,U
\r04070 LEAU 4,U
\r04080 STD ,U
\r04090 NEXT
\r04100 *
\r04120 FCC 'D-'
\r04130 FCB 2
\r04140 FCB MFORE
\r04150 FDB DADD-CFAOFF
\r04160 FDB BIF+2
\r04170 FDB DCHS-CFAOFF
\r04180 FDB DDOT-CFAOFF
\r04190 DSUB LDD 6,U
\r04200 SUBD 2,U
\r04210 STD 6,U
\r04220 LDD 4,U
\r04230 SBCB 1,U
\r04240 SBCA ,U
\r04250 LEAU 4,U
\r04260 STD ,U
\r04270 NEXT
\r04280 *
\r04290 FCC 'MINUS'
\r04300 FCB 5
\r04310 FCB MFORE
\r04320 FDB DSUB-CFAOFF
\r04330 FDB BIF+2
\r04340 FDB 0
\r04350 FDB MOD-CFAOFF
\r04360 MINUS LDD #0
\r04370 SUBD ,U
\r04380 STD ,U
\r04390 NEXT
\r04400 *
\r04410 FCC 'DMINUS'
\r04420 FCB 6
\r04430 FCB MFORE
\r04440 FDB MINUS-CFAOFF
\r04450 FDB BIF+2
\r04460 FDB 0
\r04470 FDB 0
\r04480 DMINUS LDD #0
\r04490 SUBD 2,U
\r04500 STD 2,U
\r04510 LDD #0
\r04520 SBCB 1,U
\r04530 SBCA ,U
\r04570 STD ,U
\r04580 NEXT
\r04590 *
\r04600 FCC 'OVER'
\r04610 FCB 4
\r04620 FCB MFORE
\r04630 FDB DMINUS-CFAOFF
\r04640 FDB BIF+2
\r04650 FDB OR-CFAOFF
\r04660 FDB PFA-CFAOFF
\r04670 OVER LDD 2,U
\r04680 PSHU D
\r04690 NEXT
\r04700 *
\r04710 FCC 'DROP'
\r04720 FCB 4
\r04730 FCB MFORE
\r04740 FDB OVER-CFAOFF
\r04750 FDB BIF+2
\r04760 FDB DPL-CFAOFF
\r04770 FDB EMIT-CFAOFF
\r04780 DROP LEAU 2,U
\r04790 NEXT
\r04800 *
\r04810 FCC 'SWAP'
\r04820 FCB 4
\r04830 FCB MFORE
\r04840 FDB DROP-CFAOFF
\r04850 FDB BIF+2
\r04860 FDB ROT-CFAOFF
\r04870 FDB VAR-CFAOFF
\r04880 SWAP PULU D,X
\r04890 PSHU D
\r04900 PSHU X
\r04910 NEXT
\r04920 *
\r04930 FCC 'DUP'
\r04940 FCB 3
\r04940 FCB MFORE
\r04950 FDB SWAP-CFAOFF
\r04960 FDB BIF+2
\r04970 FDB 0 * DUMP-CFAOFF
\r04980 FDB ELSE-CFAOFF
\r04990 DUP LDD ,U
\r05000 PSHU D
\r05010 NEXT
\r05020 *
\r05030 FCC '+!'
\r05040 FCB 2
\r05050 FCB MFORE
\r05060 FDB DUP-CFAOFF
\r05070 FDB BIF+2
\r05080 FDB 0
\r05090 FDB 0
\r05100 ADDSTO PULU X
\r05110 LDD ,X
\r05120 ADDD ,U++
\r05130 STD ,X
\r05140 NEXT
\r05150 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r05160 FCC 'TOGGLE'
\r05170 FCB 6
\r05180 FCB MFORE
\r05190 FDB ADDSTO-CFAOFF
\r05200 FDB BIF+2
\r05210 FDB TIB-CFAOFF
\r05220 FDB TYPE-CFAOFF
\r05230 TOG PULU D,X
\r05240 EORB ,X
\r05250 STB ,X
\r05260 NEXT
\r05270 *
\r05280 FCC 'C@'
\r05290 FCB 2
\r05300 FCB MFORE
\r05310 FDB TOG-CFAOFF
\r05320 FDB BIF+2
\r05330 FDB BUFFER-CFAOFF
\r05340 FDB DADD-CFAOFF
\r05350 CFEH LDB [,U]
\r05360 CLRA
\r05370 STD ,U
\r05380 NEXT
\r05390 *
\r05400 FCC 'C!'
\r05410 FCB 2
\r05420 FCB MFORE
\r05430 FDB CFEH-CFAOFF
\r05440 FDB BIF+2
\r05450 FDB 0
\r05460 FDB 0
\r05470 CSTO LDB 3,U
\r05480 STB [,U]
\r05490 LEAU 4,U
\r05500 NEXT
\r05510 *
\r05520 FCC 'ROT'
\r05530 FCB 3
\r05540 FCB MFORE
\r05550 FDB CSTO-CFAOFF
\r05560 FDB BIF+2
\r05570 FDB RFROM-CFAOFF
\r05580 FDB SMUDGE-CFAOFF
\r05590 ROT PSHS Y
\r05600 PULU D,X,Y
\r05610 PSHU D,X
\r05620 PSHU Y
\r05630 PULS Y
\r05640 NEXT
\r05650 *
\r05660 FCC 'BACK' back ref
\r05670 FCB MCOMP.OR.4
\r05680 FCB MFORE
\r05690 FDB ROT-CFAOFF
\r05700 FDB BIF+2
\r05710 FDB BPBUF-CFAOFF
\r05720 FDB BEGIN-CFAOFF
\r05730 BACK LDX <UP
\r05740 PULU D target
\r05750 SUBD UDP,X here
\r05755 SUBD #2 past
\r05760 PSHU D
\r05770 JMP COMMA
\r05780 *
\r05800 FCC 'NOT'
\r05810 FCB 3
\r05820 FCB MFORE
\r05830 FDB BACK-CFAOFF
\r05840 FDB BIF+2
\r05850 FDB NDOT-CFAOFF
\r05860 FDB 0
\r05870 NOT LDD ,U
\r05880 COMB
\r05890 COMA
\r05900 STD ,U
\r05910 NEXT
\r05920 *
\r05990 FCC /'/
\r06000 FCB MIMM.OR.1
\r06010 FCB MFORE
\r06020 FDB NOT-CFAOFF
\r06030 FDB BIF+2
\r06040 FDB HASHS-CFAOFF
\r06050 FDB 0
\r06055 * ' see fig-FORTH model
\r06060 TICK DOCOL
\r06070 FDB DDFIND
\r06080 FDB DROP
\r06090 FDB DUP
\r06100 FDB ZEQ
\r06110 FDB ZERO
\r06120 FDB QERR
\r06130 FDB LITER
\r06140 FDB SEMIS
\r06150 *
\r07000 FCC '-->'
\r07010 FCB MIMM.OR.3
\r07020 FCB MFORE
\r07030 FDB TICK-CFAOFF
\r07040 FDB BIF+2
\r07050 FDB PLOOP-CFAOFF
\r07060 FDB DOT-CFAOFF
\r07065 * --> see fig-FORTH model
\r07070 NEXSCR DOCOL
\r07080 FDB QLOAD
\r07090 FDB ZERO
\r07100 FDB IN
\r07110 FDB STORE
\r07120 FDB BPSCR
\r07130 FDB BLK
\r07140 FDB FETCH
\r07150 FDB OVER
\r07160 FDB MOD remaining in screen
\r07170 FDB SUB
\r07180 FDB BLK
\r07190 FDB ADDSTO to next
\r07200 FDB SEMIS
\r07290 *
\r07300 FCC '1ARRAY'
\r07310 FCB 6
\r07320 FCB MFORE
\r07330 FDB NEXSCR-CFAOFF
\r07340 FDB BIF+2
\r07350 FDB SUB1-CFAOFF
\r07360 FDB TBR-CFAOFF
\r07370 ONEARR DOCOL
\r07380 FDB CREATE
\r07390 FDB IPCOM
\r07400 DO1ARR
\r07410 FDB XMACH
\r07415 LDX ,U
\r07420 CMPX #255 0<el-size<256
\r07430 BLS ONEARW
\r07440 ONEARE LDD #$0D
\r07450 PSHU D
\r07460 LBRA ERROR
\r07470 ONEARW LDD 4,U swap
\r07480 STD ,U
\r07490 STX 4,U
\r07500 LDD 2,U last
\r07510 SUBD ,U first
\r07520 BLT ONEARE real dimension?
\r07530 ADDD #1 element count
\r07540 STD 2,U
\r07550 PSHU D,X
\r07560 DOCOL
\r07570 FDB USTAR
\r07580 FDB LIT overflow?
\r07590 FDB $0D
\r07600 FDB QERR
\r07610 FDB TOR byte count
\r07620 FDB COMMA base
\r07630 FDB COMMA width
\r07640 FDB CCOMMA element size
\r07650 FDB RFROM
\r07660 FDB ALLOT
\r07670 FDB SMUDGE
\r07680 FDB SEMIS
\r07690 *
\r07700 FCC 'UTILITIES'
\r07710 FCB MIMM.OR.9
\r07720 FCB MFORE
\r07730 FDB ONEARR-CFAOFF
\r07740 FDB BIF+2
\r07750 FDB 0
\r07760 FDB 0
\r07770 UTIL DOVOC
\r07780 FDB DPFEH-CFAOFF
\r07890 *
\r07900 FCC 'DP@'
\r07910 FCB 3
\r07920 FCB MFORE
\r07930 FDB UTIL-CFAOFF
\r07940 FDB UTIL+2
\r07950 FDB 0
\r07960 FDB 0
\r07970 DPFEH TFR DP,A
\r07980 CLRB
\r07990 PSHU D
\r07992 NEXT
\r07994 *
\r08000 FCC 'DCONSTANT'
\r08010 FCB 9
\r08020 FCB MFORE
\r08030 FDB DPFEH-CFAOFF
\r08040 FDB BIF+2
\r08050 FDB 0
\r08060 FDB 0
\r08070 DCON DOCOL
\r08080 FDB CREATE
\r08090 FDB IPCOM
\r08100 JSR <XDCON
\r08110 FDB COMMA
\r08120 FDB COMMA
\r08130 FDB SMUDGE
\r08140 FDB SEMIS
\r08390 *
\r08300 FCC 'SWAB'
\r08310 FCB 4
\r08320 FCB MFORE
\r08330 FDB DCON-CFAOFF
\r08340 FDB BIF+2
\r08350 FDB 0
\r08360 FDB SWAN-CFAOFF
\r08370 SWAB LDD ,U
\r08380 STB ,U LS byte
\r08390 STA 1,U MS byte
\r08400 NEXT
\r08490 *
\r08500 FCC 'SWAN'
\r08510 FCB 4
\r08520 FCB MFORE
\r08530 FDB SWAB-CFAOFF
\r08540 FDB BIF+2
\r08550 FDB 0
\r08560 FDB 0
\r08570 SWAN LDA 1,U
\r08580 LDB 1,U
\r08590 LSRA
\r08600 RORB
\r08610 LSRA
\r08620 RORB
\r08630 LSRA
\r08640 RORB
\r08650 LSRA
\r08660 RORB
\r08670 STB 1,U
\r08680 LDA ,U
\r08690 LDB ,U
\r08700 LSRA
\r08710 RORB
\r08720 LSRA
\r08730 RORB
\r08740 LSRA
\r08750 RORB
\r08760 LSRA
\r08770 RORB
\r08780 STB ,U
\r08790 NEXT
\r08890 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC '1+'
\r01010 FCB 2
\r01020 FCB MFORE
\r01030 FDB SWAN-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB ZLESS-CFAOFF
\r01060 FDB ADD2-CFAOFF
\r01070 ADD1 LDD #1
\r01080 ADDTOP
\r01110 *
\r01120 FCC '1-'
\r01130 FCB 2
\r01140 FCB MFORE
\r01150 FDB ADD1-CFAOFF
\r01160 FDB BIF+2
\r01170 FDB 0
\r01180 FDB 0
\r01190 SUB1 LDD #-1
\r01200 ADDTOP
\r01230 *
\r01240 FCC '2+'
\r01250 FCB 2
\r01260 FCB MFORE
\r01270 FDB SUB1-CFAOFF
\r01280 FDB BIF+2
\r01290 FDB TWO-CFAOFF
\r01300 FDB RSHIFT-CFAOFF
\r01310 ADD2 LDD #2
\r01320 ADDTOP
\r01330 *
\r01340 FCC '2-'
\r01350 FCB 2
\r01360 FCB MFORE
\r01370 FDB ADD2-CFAOFF
\r01380 FDB BIF+2
\r01390 FDB 0
\r01400 FDB 0
\r01410 SUB2 LDD #-2
\r01420 ADDTOP
\r01430 *
\r01440 FCC '0'
\r01450 FCB 1
\r01460 FCB MFORE
\r01470 FDB SUB2-CFAOFF
\r01480 FDB BIF+2
\r01490 FDB SLAMOD-CFAOFF
\r01500 FDB INULL-CFAOFF
\r01510 ZERO LDD #0
\r01520 PSHU D
\r01530 NEXT
\r01540 *
\r01550 FCC '1'
\r01560 FCB 1
\r01570 FCB MFORE
\r01580 FDB ZERO-CFAOFF
\r01590 FDB BIF+2
\r01600 FDB ZBR-CFAOFF
\r01610 FDB 0
\r01620 ONE LDD #1
\r01630 PSHU D
\r01640 NEXT
\r01650 *
\r01660 FCC '-1'
\r01670 FCB 2
\r01680 FCB MFORE
\r01690 FDB ONE-CFAOFF
\r01700 FDB BIF+2
\r01710 FDB 0
\r01720 FDB DDFIND-CFAOFF
\r01730 MONE LDD #-1
\r01740 PSHU D
\r01750 NEXT
\r01760 *
\r01770 FCC '2'
\r01780 FCB 1
\r01790 FCB MFORE
\r01800 FDB MONE-CFAOFF
\r01810 FDB BIF+2
\r01820 FDB ONEARR-CFAOFF
\r01830 FDB LSHIFT-CFAOFF
\r01840 TWO DOCON
\r01850 FDB 2
\r01860 *
\r01870 FCC '3'
\r01880 FCB 1
\r01890 FCB MFORE
\r01895 FDB TWO-CFAOFF
\r01900 FDB BIF+2
\r01910 FDB 0
\r01920 FDB 0
\r01930 THREE DOCON
\r01940 FDB 3
\r01950 *
\r01960 FCC 'BL'
\r01970 FCB 2
\r01980 FCB MFORE
\r01990 FDB THREE-CFAOFF
\r02000 FDB BIF+2
\r02010 FDB 0
\r02020 FDB 0
\r02030 BL DOCON
\r02040 FDB $20 ascii SP
\r02050 *
\r02060 FCC 'C/L'
\r02070 FCB 3
\r02080 FCB MFORE
\r02090 FDB BL-CFAOFF
\r02100 FDB BIF+2
\r02110 FDB 0
\r02120 FDB 0
\r02130 CPERL DOUCON
\r02140 FCB UCOLUM
\r02170 *
\r02180 FCC 'FIRST'
\r02190 FCB 5
\r02200 FCB MFORE
\r02210 FDB CPERL-CFAOFF
\r02220 FDB BIF+2
\r02230 FDB 0
\r02240 FDB FLD-CFAOFF
\r02250 FIRST DOUCON
\r02260 FCB UFIRST
\r02290 *
\r02300 FCC 'LIMIT'
\r02310 FCB 5
\r02320 FCB MFORE
\r02330 FDB FIRST-CFAOFF
\r02340 FDB BIF+2
\r02350 FDB LEAVE-CFAOFF
\r02360 FDB LITER-CFAOFF
\r02370 LIMIT DOUCON
\r02380 FCB ULIMIT
\r02400 *
\r02410 BWID EQU 256 bytes
\r02420 FCC 'B/BUF'
\r02430 FCB 5
\r02440 FCB MFORE
\r02450 FDB LIMIT-CFAOFF
\r02460 FDB BIF+2
\r02470 FDB ASMBLR-CFAOFF
\r02480 FDB BPSCR-CFAOFF
\r02490 BPBUF DOCON
\r02500 FDB BWID
\r02510 *
\r02520 BCT EQU 4 buffers
\r02520 FCC 'B/SCR'
\r02530 FCB 5
\r02540 FCB MFORE
\r02550 FDB BPBUF-CFAOFF
\r02560 FDB BIF+2
\r02570 FDB 0
\r02580 FDB 0
\r02590 BPSCR DOCON
\r02600 FDB BCT
\r02610 *
\r02620 FCC '+ORIGIN'
\r02630 FCB 7
\r02640 FCB MFORE
\r02650 FDB BPSCR-CFAOFF
\r02660 FDB BIF+2
\r02670 FDB 0
\r02680 FDB 0
\r02690 PORIG LDD #ORIG
\r02700 LBRA ADD+2
\r02710 *
\r02715 * some USER vars hidden
\r02720 * fig-FORTH USER vars not present:
\r02722 * WIDTH VOC-LINK CONTEXT CURRENT
\r02724 *
\r02730 FCC 'TIB'
\r02740 FCB 3
\r02750 FCB MFORE
\r02760 FDB PORIG-CFAOFF
\r02770 FDB BIF+2
\r02780 FDB 0
\r02790 FDB 0
\r02800 TIB DOUSER
\r02810 FCB UTIB
\r02820 *
\r02930 FCC 'WARNING'
\r02940 FCB 7
\r02950 FCB MFORE
\r02960 FDB TIB-CFAOFF
\r02970 FDB BIF+2
\r02980 FDB 0
\r02990 FDB 0
\r03000 WARN DOUSER
\r03010 FCB UWARN
\r03020 *
\r03030 FCC 'FENCE'
\r03040 FCB 5
\r03050 FCB MFORE
\r03060 FDB WARN-CFAOFF
\r03070 FDB BIF+2
\r03080 FDB 0
\r03090 FDB 0
\r03100 FENCE DOUSER
\r03110 FCB UFENCE
\r03120 *
\r03130 FCC 'DP'
\r03140 FCB 2
\r03150 FCB MFORE
\r03160 FDB FENCE-CFAOFF
\r03170 FDB BIF+2
\r03180 FDB DOES-CFAOFF
\r03190 FDB 0
\r03200 DPC DOUSER
\r03210 FCB UDP
\r03220 *
\r03230 FCC 'ROOT'
\r03240 FCB 4
\r03250 FCB MFORE
\r03260 FDB DPC-CFAOFF
\r03270 FDB BIF+2
\r03280 FDB 0
\r03290 FDB 0
\r03300 ROOT DOUSER not fig
\r03310 FCB UROOT
\r03320 *
\r03330 FCC 'BLK'
\r03340 FCB 3
\r03350 FCB MFORE
\r03360 FDB ROOT-CFAOFF
\r03370 FDB BIF+2
\r03380 FDB BLANKS-CFAOFF
\r03390 FDB BLOCK-CFAOFF
\r03400 BLK DOUSER
\r03410 FCB UBLK
\r03420 *
\r03430 FCC 'IN'
\r03440 FCB 2
\r03450 FCB MFORE
\r03460 FDB BLK-CFAOFF
\r03470 FDB BIF+2
\r03480 FDB IMMED-CFAOFF
\r03490 FDB INTERP-CFAOFF
\r03500 IN DOUSER
\r03510 FCB UIN
\r03520 *
\r03530 FCC 'OUT'
\r03540 FCB 3
\r03550 FCB MFORE
\r03560 FDB IN-CFAOFF
\r03570 FDB BIF+2
\r03580 FDB 0
\r03590 FDB 0
\r03600 OUT DOUSER
\r03610 FCB UOUT
\r03620 *
\r03630 FCC 'SCR'
\r03640 FCB 3
\r03650 FCB MFORE
\r03660 FDB OUT-CFAOFF
\r03670 FDB BIF+2
\r03680 FDB 0
\r03690 FDB 0
\r03700 SCR DOUSER
\r03710 FCB USCR
\r03720 *
\r03730 FCC 'OFFSET'
\r03740 FCB 6
\r03750 FCB MFORE
\r03760 FDB SCR-CFAOFF
\r03770 FDB BIF+2
\r03780 FDB 0
\r03790 FDB 0
\r03800 OFFSET DOUSER
\r03810 FCB UOFFS
\r03820 *
\r03830 FCC 'STATE'
\r03840 FCB 5
\r03850 FCB MFORE
\r03860 FDB OFFSET-CFAOFF
\r03870 FDB BIF+2
\r03880 FDB SPACES-CFAOFF
\r03890 FDB SWAB-CFAOFF
\r03900 STATE DOUSER
\r03910 FCB USTATE
\r03920 *
\r03930 FCC 'BASE'
\r03940 FCB 4
\r03950 FCB MFORE
\r03960 FDB STATE-CFAOFF
\r03970 FDB BIF+2
\r03980 FDB 0
\r03990 FDB 0
\r04000 BASE DOUSER
\r04010 FCB UBASE
\r04020 *
\r04030 FCC 'DPL'
\r04040 FCB 3
\r04050 FCB MFORE
\r04060 FDB BASE-CFAOFF
\r04070 FDB BIF+2
\r04080 FDB DPC-CFAOFF
\r04090 FDB DROFFS-CFAOFF
\r04100 DPL DOUSER
\r04110 FCB UDPL
\r04120 *
\r04130 FCC 'FLD'
\r04140 FCB 3
\r04150 FCB MFORE
\r04160 FDB DPL-CFAOFF
\r04170 FDB BIF+2
\r04180 FDB 0
\r04190 FDB 0
\r04200 FLD DOUSER
\r04210 FCB UFLD
\r04220 *
\r04230 FCC 'CSP'
\r04240 FCB 3
\r04250 FCB MFORE
\r04260 FDB FLD-CFAOFF
\r04270 FDB BIF+2
\r04280 FDB 0
\r04290 FDB CURR-CFAOFF
\r04300 CSP DOUSER
\r04310 FCB UCSP
\r04320 *
\r04330 FCC 'R#'
\r04340 FCB 2
\r04350 FCB MFORE
\r04360 FDB CSP-CFAOFF
\r04370 FDB BIF+2
\r04380 FDB 0
\r04390 FDB RW-CFAOFF
\r04400 RNUM DOUSER
\r04410 FCB URNUM
\r04420 *
\r04430 FCC 'HLD'
\r04440 FCB 3
\r04450 FCB MFORE
\r04460 FDB RNUM-CFAOFF
\r04470 FDB BIF+2
\r04480 FDB HEX-CFAOFF
\r04490 FDB HOLD-CFAOFF
\r04500 HLD DOUSER
\r04510 FCB UHLD
\r04520 *
\r04530 FCC 'FOREWARD'
\r04540 FCB 8
\r04550 FCB MFORE
\r04560 FDB HLD-CFAOFF
\r04570 FDB BIF+2
\r04580 FDB 0
\r04590 FDB 0
\r04600 FORE DOUSER not fig
\r04610 FCB UFORE
\r04620 *
\r04630 FCC 'CURRENT'
\r04640 FCB 7
\r04650 FCB MFORE
\r04660 FDB FORE-CFAOFF
\r04670 FDB BIF+2
\r04680 FDB 0
\r04690 FDB 0
\r04700 CURR DOUSER not fig
\r04710 FCB UCURR
\r04720 *
\r04730 FCC 'PREV'
\r04740 FCB 4
\r04750 FCB MFORE
\r04760 FDB CURR-CFAOFF
\r04770 FDB BIF+2
\r04780 FDB 0
\r04790 FDB 0
\r04800 PREV DOUSER moved
\r04810 FCB UPREV
\r04820 *
\r04830 FCC 'USE'
\r04840 FCB 3
\r04850 FCB MFORE
\r04860 FDB PREV-CFAOFF
\r04870 FDB BIF+2
\r04880 FDB 0
\r04890 FDB 0
\r04900 USE DOUSER moved
\r04910 FCB UUSE
\r04920 *
\r04930 FCC 'DROOT'
\r04940 FCB 5
\r04950 FCB MFORE
\r04960 FDB USE-CFAOFF
\r04970 FDB BIF+2
\r04980 FDB 0
\r04990 FDB 0
\r05000 DROOT DOUSER not fig
\r05010 FCB UDROOT
\r05020 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r05030 FCC 'HERE'
\r05040 FCB 4
\r05050 FCB MFORE
\r05060 FDB DROOT-CFAOFF
\r05070 FDB BIF+2
\r05080 FDB FOREMK-CFAOFF
\r05090 FDB I-CFAOFF
\r05100 HERE LDX <UP
\r05110 LDD UDP,X
\r05120 PSHU D
\r05122 HERERR LDX <UP
\r05124 CMPU UDP,X
\r05128 BLS ALLERR
\r05130 NEXT
\r05132 ALLERR LDD #2
\r05134 PSHU D
\r05136 JMP ERROR
\r05140 *
\r05150 FCC 'ALLOT'
\r05160 FCB 5
\r05170 FCB MFORE
\r05180 FDB HERE-CFAOFF
\r05190 FDB BIF+2
\r05200 FDB AGAIN-CFAOFF
\r05210 FDB 0
\r05220 ALLOT LDX <UP
\r05222 LDD UDP,X
\r05223 BMI ALLERR
\r05224 ADDD ,U++
\r05226 STD UDP,X
\r05228 BRA HERERR
\r05230 *
\r05238 FCC ','
\r05240 FCB 1
\r05250 FCB MFORE
\r05260 FDB ALLOT-CFAOFF
\r05270 FDB BIF+2
\r05280 FDB PORIG-CFAOFF
\r05290 FDB SUB-CFAOFF
\r05300 COMMA PULU D allocate and store
\r05310 PSHS Y
\r05320 LDY <UP
\r05330 LDX UDP,Y
\r05340 STD ,X++
\r05350 COMSTO STX UDP,Y
\r05360 PULS Y
\r05375 BRA HERERR
\r05380 *
\r05390 FCC 'C,'
\r05400 FCB 2
\r05410 FCB MFORE
\r05420 FDB COMMA-CFAOFF
\r05430 FDB BIF+2
\r05440 FDB CSTO-CFAOFF
\r05450 FDB CPERL-CFAOFF
\r05460 CCOMMA PULU D
\r05470 PSHS Y
\r05480 LDY <UP
\r05490 LDX UDP,Y
\r05500 STB ,X+
\r05510 BRA COMSTO
\r05520 *
\r05530 FCC 'SPACE'
\r05540 FCB 5
\r05550 FCB MFORE
\r05560 FDB CCOMMA-CFAOFF
\r05570 FDB BIF+2
\r05580 FDB SPFEH-CFAOFF
\r05590 FDB STATE-CFAOFF
\r05600 SPACE LDB BL+3,PCR
\r05610 LBRA EMIT+2
\r05620 *
\r05630 FCC '-DUP'
\r05640 FCB 4
\r05650 FCB MFORE
\r05660 FDB SPACE-CFAOFF
\r05670 FDB BIF+2
\r05680 FDB MONE-CFAOFF
\r05690 FDB DTRAIL-CFAOFF
\r05700 DDUP LDD ,U
\r05710 BEQ *+4
\r05720 PSHU D
\r05730 NEXT
\r05740 *
\r05750 FCC '?CST'
\r05760 FCB 4
\r05770 FCB MFORE
\r05780 FDB DDUP-CFAOFF
\r05790 FDB BIF+2
\r05800 FDB QCSP-CFAOFF
\r05810 FDB QERR-CFAOFF
\r05820 QCST LDX <UP
\r05830 LDB USTATE+1,X
\r05840 ANDB #SCOMP
\r05850 CLRA
\r05860 PSHU D
\r05870 NEXT
\r05890 *
\r05900 FCC 'IF'
\r05910 FCB MIMM.OR.MCOMP.OR.2
\r05920 FCB MFORE
\r05930 FDB QCST-CFAOFF
\r05940 FDB BIF+2
\r05950 FDB DO-CFAOFF
\r05960 FDB QUERY-CFAOFF
\r05965 * IF see fig-FORTH model
\r05970 IF DOCOL
\r05980 FDB COMP
\r05990 FDB ZBR
\r06000 FDB HERE adr
\r06010 FDB ZERO
\r06020 FDB COMMA
\r06030 FDB LIT
\r06040 FDB ('I)*256+'F
\r06060 FDB SEMIS
\r06090 *
\r06100 FCC 'ELSE'
\r06110 FCB MIMM.OR.MCOMP.OR.4
\r06120 FCB MFORE
\r06130 FDB IF-CFAOFF
\r06140 FDB BIF+2
\r06150 FDB EDITOR-CFAOFF
\r06160 FDB 0
\r06170 ELSE DOCOL
\r06172 FDB DUP
\r06173 FDB LIT
\r06175 FDB ('I)*256+'F
\r06178 FDB QPAIRS
\r06180 FDB COMP
\r06190 FDB BRANCH
\r06200 FDB HERE adr
\r06205 FDB ZERO
\r06210 FDB COMMA
\r06220 FDB ROT
\r06230 FDB FILLIN IF adr
\r06250 FDB SWAP for ENDIF
\r06260 FDB SEMIS
\r06290 *
\r06300 FCC 'ENDIF'
\r06310 FCB MIMM.OR.MCOMP.OR.5
\r06320 FCB MFORE
\r06330 FDB ELSE-CFAOFF
\r06340 FDB BIF+2
\r06350 FDB DROP-CFAOFF
\r06360 FDB FIND-CFAOFF
\r06370 ENDIF DOCOL
\r06380 FDB QCOMP
\r06390 FDB LIT
\r06400 FDB ('I)*256+'F
\r06410 FDB QPAIRS
\r06420 FDB FILLIN
\r06470 FDB SEMIS
\r06490 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC 'LATEST'
\r01010 FCB 6
\r01020 FCB MFORE
\r01030 FDB ENDIF-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB 0
\r01060 FDB 0
\r01070 LATEST DOUCON not ROOT!
\r01080 FCB UCURR NFA
\r01110 *
\r01115 * convert NFA to LFA,CFA,GFA,PFA
\r01120 FCC 'LFA'
\r01130 FCB 3
\r01140 FCB MFORE
\r01150 FDB LATEST-CFAOFF
\r01160 FDB BIF+2
\r01170 FDB 0
\r01180 FDB 0
\r01190 LFA LDB #LFAOFF
\r01200 BRA CFA+2
\r01210 *
\r01220 FCC 'CFA'
\r01230 FCB 3
\r01240 FCB MFORE
\r01250 FDB LFA-CFAOFF
\r01260 FDB BIF+2
\r01270 FDB 0
\r01280 FDB 0
\r01290 CFA LDB #CFAOFF
\r01292 SEX
\r01294 ADDD ,U
\r01296 STD ,U
\r01300 NEXT
\r01310 *
\r01320 FCC 'GFA'
\r01330 FCB 3
\r01340 FCB MFORE
\r01350 FDB CFA-CFAOFF
\r01360 FDB BIF+2
\r01370 FDB 0
\r01380 FDB 0
\r01390 GFA LDB #GFAOFF
\r01400 BRA CFA+2
\r01410 *
\r01420 FCC 'PFA'
\r01430 FCB 3
\r01440 FCB MFORE
\r01450 FDB GFA-CFAOFF
\r01460 FDB BIF+2
\r01470 FDB PAD-CFAOFF
\r01480 FDB PREV-CFAOFF
\r01490 PFA LDB #PFAOFF
\r01500 BRA CFA+2
\r01510 *
\r01515 * PFA to NFA
\r01520 FCC 'NFA'
\r01530 FCB 3
\r01540 FCB MFORE
\r01550 FDB PFA-CFAOFF
\r01560 FDB BIF+2
\r01570 FDB NCOMMA-CFAOFF
\r01580 FDB NOT-CFAOFF
\r01590 NFA LDB #-PFAOFF
\r01600 BRA CFA+2
\r01610 *
\r01620 FCC '!CSP'
\r01630 FCB 4
\r01640 FCB MFORE
\r01650 FDB NFA-CFAOFF
\r01660 FDB BIF+2
\r01670 FDB 0
\r01680 FDB HASH-CFAOFF
\r01690 STOCSP LDX <UP
\r01700 STU UCSP,X
\r01710 NEXT
\r01720 *
\r01730 FCC 'HEX'
\r01740 FCB 3
\r01750 FCB MFORE
\r01760 FDB STOCSP-CFAOFF
\r01770 FDB BIF+2
\r01780 FDB 0
\r01790 FDB 0
\r01800 HEX LDB #16
\r01810 CLRA
\r01820 LDX <UP
\r01830 STD UBASE,X
\r01840 NEXT
\r01850 *
\r01860 FCC 'DECIMAL'
\r01870 FCB 7
\r01880 FCB MFORE
\r01890 FDB HEX-CFAOFF
\r01900 FDB BIF+2
\r01910 FDB DAD-CFAOFF
\r01920 FDB DEFS-CFAOFF
\r01930 DEC LDB #10
\r01940 BRA HEX+2
\r01950 *
\r01960 FCC 'OCTAL'
\r01970 FCB 5
\r01980 FCB MFORE
\r01990 FDB DEC-CFAOFF
\r02000 FDB BIF+2
\r02010 FDB 0
\r02020 FDB OFFSET-CFAOFF
\r02030 OCT LDB #8
\r02040 BRA HEX+2
\r02050 *
\r02060 FCC 'FILL'
\r02070 FCB 4
\r02080 FCB MFORE
\r02090 FDB OCT-CFAOFF
\r02100 FDB BIF+2
\r02110 FDB FENCE-CFAOFF
\r02120 FDB FILLIN-CFAOFF
\r02130 FILL PSHS Y
\r02140 PULU D,X,Y
\r02150 STB ,Y+
\r02160 LEAX -1,X
\r02170 BNE *-4
\r02180 PULS Y
\r02190 NEXT
\r02200 *
\r02210 FCC 'ERASE'
\r02220 FCB 5
\r02230 FCB MFORE
\r02240 FDB FILL-CFAOFF
\r02250 FDB BIF+2
\r02260 FDB 0
\r02270 FDB 0
\r02280 ERASE LDB #0
\r02290 PSHU D
\r02300 BRA FILL
\r02310 *
\r02320 FCC 'BLANKS'
\r02330 FCB 6
\r02340 FCB MFORE
\r02350 FDB ERASE-CFAOFF
\r02360 FDB BIF+2
\r02370 FDB BL-CFAOFF
\r02380 FDB 0
\r02390 BLANKS LDB #$20 ascii SP
\r02400 PSHU D
\r02410 BRA FILL
\r02420 *
\r02430 FCC 'HOLD'
\r02440 FCB 4
\r02450 FCB MFORE
\r02460 FDB BLANKS-CFAOFF
\r02470 FDB BIF+2
\r02480 FDB 0
\r02490 FDB 0
\r02500 HOLD PULU D CH
\r02510 PSHS Y
\r02520 LDY <UP
\r02530 LDX UHLD,Y
\r02540 STB ,-X
\r02550 STX UHLD,Y
\r02555 PULS Y
\r02560 NEXT
\r02570 *
\r02580 FCC 'PAD'
\r02590 FCB 3
\r02600 FCB MFORE
\r02610 FDB HOLD-CFAOFF
\r02620 FDB BIF+2
\r02630 FDB 0
\r02640 FDB 0
\r02650 PAD DOUCON moved!
\r02660 FCB UPAD
\r02700 *
\r02710 FCC 'S->D'
\r02720 FCB 4
\r02730 FCB MFORE
\r02740 FDB PAD-CFAOFF
\r02750 FDB BIF+2
\r02760 FDB RPSTO-CFAOFF
\r02770 FDB SIGN-CFAOFF
\r02780 STOD LEAU -2,U
\r02790 LDD 2,U
\r02795 LBRA ZLESS+2
\r02800 *
\r02810 FCC '+-'
\r02820 FCB 2
\r02830 FCB MFORE
\r02840 FDB STOD-CFAOFF
\r02850 FDB BIF+2
\r02860 FDB ADDSTO-CFAOFF
\r02870 FDB ADDBUF-CFAOFF
\r02880 CHS LDD ,U++
\r02890 LBMI MINUS
\r02895 NEXT
\r02900 *
\r02910 FCC 'D+-'
\r02920 FCB 3
\r02930 FCB MFORE
\r02940 FDB STOD-CFAOFF
\r02950 FDB BIF+2
\r02960 FDB 0
\r02970 FDB 0
\r02980 DCHS LDD ,U++
\r02990 LBMI DMINUS
\r02995 NEXT
\r03000 *
\r03010 FCC 'ABS'
\r03020 FCB 3
\r03030 FCB MFORE
\r03040 FDB DCHS-CFAOFF
\r03050 FDB BIF+2
\r03060 FDB ABORT-CFAOFF
\r03070 FDB ALLOT-CFAOFF
\r03080 ABS LDD ,U
\r03090 LBMI MINUS
\r03095 NEXT
\r03100 *
\r03110 FCC 'DABS'
\r03120 FCB 4
\r03130 FCB MFORE
\r03140 FDB ABS-CFAOFF
\r03150 FDB BIF+2
\r03160 FDB DSUB-CFAOFF
\r03170 FDB DIGIT-CFAOFF
\r03180 DABS LDD ,U
\r03190 LBMI DMINUS
\r03195 NEXT
\r03200 *
\r03210 FCC 'MIN'
\r03220 FCB 3
\r03230 FCB MFORE
\r03240 FDB DABS-CFAOFF
\r03250 FDB BIF+2
\r03260 FDB MSMOD-CFAOFF
\r03270 FDB MOVE-CFAOFF
\r03280 MIN PULU D
\r03284 CMPD ,U
\r03288 BGE *+4
\r03290 STD ,U
\r03295 NEXT
\r03300 *
\r03310 FCC 'MAX'
\r03320 FCB 3
\r03330 FCB MFORE
\r03340 FDB MIN-CFAOFF
\r03350 FDB BIF+2
\r03360 FDB 0
\r03370 FDB 0
\r03380 MAX PULU D
\r03384 CMPD ,U
\r03388 BLE *+4
\r03390 STD ,U
\r03395 NEXT
\r03400 *
\r03410 FCC '['
\r03412 FCB MIMM.OR.1
\r03414 FCB MFORE
\r03416 FDB MAX-CFAOFF
\r03418 FDB BIF+2
\r03420 FDB XOR-CFAOFF
\r03422 FDB 0
\r03430 LBRAK LDB #.NOT.SCOMP
\r03435 LDX <UP
\r03440 ANDB USTATE+1,X
\r03445 STB USTATE+1,X
\r03450 NEXT
\r03500 *
\r03510 FCC ']'
\r03512 FCB 1
\r03514 FCB MFORE
\r03516 FDB LBRAK-CFAOFF
\r03518 FDB BIF+2
\r03520 FDB 0
\r03522 FDB 0
\r03530 RBRAK LDB #SCOMP
\r03535 LDX <UP
\r03540 ORB USTATE+1,X
\r03545 STB USTATE+1,X
\r03550 NEXT
\r03555 *
\r03560 FCC 'IMMEDIATE'
\r03562 FCB 9
\r03564 FCB MFORE
\r03566 FDB RBRAK-CFAOFF
\r03568 FDB BIF+2
\r03570 FDB 0
\r03572 FDB 0
\r03580 IMMED LDB #MIMM
\r03585 BRA SMUDGE+2
\r03600 *
\r03610 FCC 'SMUDGE'
\r03612 FCB 6
\r03614 FCB MFORE
\r03616 FDB IMMED-CFAOFF
\r03618 FDB BIF+2
\r03620 FDB STOD-CFAOFF
\r03622 FDB SPACE-CFAOFF
\r03630 SMUDGE LDB #MHID
\r03635 LDX <UP
\r03645 EORB [UCURR,X]
\r03650 STB [UCURR,X]
\r03655 NEXT
\r03657 *
\r03660 FCC 'COMPILE-ONLY'
\r03662 FCB 12
\r03664 FCB MFORE
\r03666 FDB SMUDGE-CFAOFF
\r03668 FDB BIF+2
\r03670 FDB 0
\r03672 FDB 0
\r03680 COMPO LDB #MCOMP
\r03685 BRA SMUDGE+2
\r03800 *
\r03810 FCC 'COUNT'
\r03812 FCB 5
\r03814 FCB MFORE
\r03816 FDB COMPO-CFAOFF
\r03818 FDB BIF+2
\r03820 FDB 0
\r03822 FDB 0
\r03830 COUNT LDX ,U CT OF STR
\r03835 LDB ,X+
\r03840 STX ,U STRING
\r03845 CLRA
\r03850 PSHU D COUNT
\r03855 NEXT
\r03900 *
\r03910 FCC '-TRAILING'
\r03912 FCB 9
\r03914 FCB MFORE
\r03916 FDB COUNT-CFAOFF
\r03918 FDB BIF+2
\r03920 FDB DIFIND-CFAOFF
\r03922 FDB 0
\r03930 DTRAIL LDD ,U
\r03935 LDX 2,U
\r03940 LEAX D,X END
\r03945 LDA #$20 ascii SP
\r03950 DTRAL CMPA ,-X
\r03955 BNE DTRAD
\r03960 CMPX 2,U
\r03965 BHS DTRAL
\r03970 DTRAD TFR X,D
\r03975 SUBD 2,U
\r03980 ADDD #1
\r03985 STD ,U
\r03990 NEXT
\r04000 *
\r04010 FCC '(MACHINE)'
\r04012 FCB MCOMP.OR.9
\r04014 FCB MFORE
\r04016 FDB DTRAIL-CFAOFF
\r04018 FDB BIF+2
\r04020 FDB XLINE-CFAOFF
\r04022 FDB INUMB-CFAOFF
\r04030 XMACH TFR Y,X
\r04040 PULS Y UN-NEST
\r04050 JMP ,X IN LINE MACHINE CODE
\r04100 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r04110 FCC 'TYPE'
\r04112 FCB 4
\r04114 FCB MFORE
\r04116 FDB XMACH-CFAOFF
\r04118 FDB BIF+2
\r04120 FDB 0
\r04122 FDB 0
\r04130 TYPE LDD ,U
\r04132 BEQ TYPEQ
\r04135 ADDD 2,U
\r04140 STD ,U for compare
\r04145 LDX 2,U
\r04150 TYPEL LDB ,X+
\r04155 STX 2,U
\r04160 CLRA
\r04165 PSHU D
\r04170 DOCOL
\r04175 FDB EMIT
\r04180 FDB XMACH
\r04185 LDX 2,U
\r04190 CMPX ,U
\r04195 BLO TYPEL
\r04197 TYPEQ LEAU 4,U
\r04200 NEXT
\r04205 *
\r04210 FCC '(.")'
\r04212 FCB MCOMP.OR.4
\r04214 FCB MFORE
\r04216 FDB TYPE-CFAOFF
\r04218 FDB BIF+2
\r04220 FDB XPLOOP-CFAOFF
\r04222 FDB XSCODE-CFAOFF
\r04230 XDOTQ LDB ,Y+ count
\r04235 CLRA
\r04240 TFR Y,X string
\r04245 LEAY D,Y past it
\r04250 PSHU D,X
\r04255 BRA TYPE
\r04300 *
\r04310 FCC 'ID.'
\r04312 FCB 3
\r04314 FCB MFORE
\r04316 FDB XDOTQ-CFAOFF
\r04318 FDB BIF+2
\r04320 FDB 0
\r04322 FDB 0
\r04330 IDDOT PULU X nfa
\r04335 LDB ,X
\r04340 ANDB #NLMASK
\r04350 NEGB
\r04360 LEAX B,X past it
\r04370 NEGB
\r04380 CLRA
\r04390 PSHU D,X
\r04400 BRA TYPE
\r04410 *
\r04510 FCC 'FILL-IN'
\r04512 FCB MCOMP.OR.7
\r04514 FCB MFORE
\r04516 FDB IDDOT-CFAOFF
\r04518 FDB BIF+2
\r04520 FDB 0
\r04522 FDB 0
\r04530 FILLIN LDX <UP
\r04540 LDD UDP,X
\r04550 SUBD ,U adr
\r04555 SUBD #2 past
\r04560 STD [,U++]
\r04570 NEXT
\r04590 *
\r04610 FCC 'BEGIN'
\r04612 FCB MCOMP.OR.MIMM.OR.5
\r04614 FCB MFORE
\r04616 FDB FILLIN-CFAOFF
\r04618 FDB BIF+2
\r04620 FDB BASE-CFAOFF
\r04622 FDB 0
\r04630 BEGIN DOCOL see fig-FORTH model
\r04640 FDB QCOMP
\r04650 FDB HERE target
\r04660 FDB LIT
\r04670 FDB ('B)*256+'E
\r04680 FDB SEMIS
\r04690 *
\r04710 FCC 'AGAIN'
\r04712 FCB MCOMP.OR.MIMM.OR.5
\r04714 FCB MFORE
\r04716 FDB BEGIN-CFAOFF
\r04718 FDB BIF+2
\r04720 FDB 0
\r04722 FDB 0
\r04730 AGAIN DOCOL see fig-FORTH model
\r04740 FDB LIT
\r04750 FDB ('B)*256+'E
\r04760 FDB QPAIRS
\r04765 FDB COMP
\r04770 FDB BRANCH
\r04775 FDB BACK
\r04780 FDB SEMIS
\r04790 *
\r04810 FCC 'UNTIL'
\r04812 FCB MCOMP.OR.MIMM.OR.5
\r04814 FCB MFORE
\r04816 FDB AGAIN-CFAOFF
\r04818 FDB BIF+2
\r04820 FDB USLASH-CFAOFF
\r04822 FDB 0
\r04830 UNTIL DOCOL see fig-FORTH model
\r04840 FDB LIT
\r04850 FDB ('B)*256+'E
\r04860 FDB QPAIRS
\r04865 FDB COMP
\r04870 FDB ZBR
\r04875 FDB BACK
\r04880 FDB SEMIS
\r04890 *
\r04910 FCC 'WHILE'
\r04912 FCB MCOMP.OR.MIMM.OR.5
\r04914 FCB MFORE
\r04916 FDB UNTIL-CFAOFF
\r04918 FDB BIF+2
\r04920 FDB WARM-CFAOFF
\r04922 FDB WORDPD-CFAOFF
\r04930 WHILE DOCOL
\r04940 FDB DUP
\r04950 FDB LIT
\r04960 FDB ('B)*256+'E
\r04970 FDB QPAIRS
\r04980 FDB COMP
\r04990 FDB ZBR
\r05000 FDB HERE adr
\r05010 FDB ZERO
\r05020 FDB COMMA
\r05030 FDB LIT
\r05040 FDB ('W)*256+'H
\r05050 FDB SEMIS
\r05090 *
\r05110 FCC 'REPEAT'
\r05112 FCB MCOMP.OR.MIMM.OR.6
\r05114 FCB MFORE
\r05116 FDB WHILE-CFAOFF
\r05118 FDB BIF+2
\r05120 FDB REPEAL-CFAOFF
\r05122 FDB ROOT-CFAOFF
\r05130 REPEAT DOCOL
\r05140 FDB LIT
\r05150 FDB ('W)*256+'H
\r05160 FDB QPAIRS
\r05170 FDB TOR
\r05180 FDB AGAIN
\r05190 FDB RFROM
\r05200 FDB FILLIN
\r05210 FDB SEMIS
\r05290 *
\r05310 FCC 'DO'
\r05312 FCB MCOMP.OR.MIMM.OR.2
\r05314 FCB MFORE
\r05316 FDB WHILE-CFAOFF
\r05318 FDB BIF+2
\r05320 FDB CFEH-CFAOFF
\r05322 FDB ENDIF-CFAOFF
\r05330 DO DOCOL see fig-FORTH model
\r05340 FDB COMP
\r05350 FDB XDO
\r05360 FDB HERE
\r05370 FDB LIT
\r05380 FDB ('D)*256+'O
\r05390 FDB SEMIS
\r05400 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC 'M*'
\r01010 FCB 2
\r01020 FCB MFORE
\r01030 FDB DO-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB 0
\r01060 FDB MSLASH-CFAOFF
\r01070 MSTAR LDD ,U see fig-FORTH model
\r01080 EORA 2,U n bit
\r01090 PSHS D
\r01100 DOCOL
\r01110 FDB ABS
\r01120 FDB SWAP
\r01130 FDB ABS
\r01140 FDB USTAR
\r01150 FDB XMACH
\r01160 LDD ,S++
\r01170 LBMI DMINUS
\r01180 NEXT
\r01190 *
\r01200 FCC 'M/'
\r01210 FCB 2
\r01220 FCB MFORE
\r01230 FDB MSTAR-CFAOFF
\r01240 FDB BIF+2
\r01250 FDB 0
\r01260 FDB 0
\r01270 MSLASH DOCOL see fig-FORTH model
\r01280 FDB OVER
\r01290 FDB TOR signs: dividend
\r01300 FDB TOR & divisor
\r01310 FDB DABS
\r01320 FDB R divisor
\r01330 FDB ABS
\r01340 FDB USLASH
\r01350 FDB RFROM divisor
\r01360 FDB R
\r01370 FDB XOR quotient sign
\r01380 FDB CHS
\r01390 FDB SWAP remainder
\r01400 FDB RFROM dividend sign
\r01410 FDB CHS
\r01420 FDB SWAP
\r01430 FDB SEMIS
\r01500 *
\r01510 FCC '*'
\r01520 FCB 1
\r01530 FCB MFORE
\r01540 FDB MSLASH-CFAOFF
\r01550 FDB BIF+2
\r01560 FDB PFIND-CFAOFF
\r01570 FDB SSMOD-CFAOFF
\r01580 STAR DOCOL see fig-FORTH model
\r01590 FDB USTAR
\r01600 FDB DROP
\r01610 FDB SEMIS
\r01700 *
\r01710 FCC '/MOD'
\r01720 FCB 4
\r01730 FCB MFORE
\r01740 FDB STAR-CFAOFF
\r01750 FDB BIF+2
\r01760 FDB 0
\r01770 FDB 0
\r01780 SLAMOD LDD ,U
\r01790 PSHU D
\r01800 LDD #-1
\r01810 TST 4,U sign extend
\r01820 BMI *+5
\r01830 ADDD #1
\r01840 STD 2,U
\r01850 LBRA MSLASH
\r01900 *
\r01910 FCC '/'
\r01920 FCB 1
\r01930 FCB MFORE
\r01940 FDB SLAMOD-CFAOFF
\r01950 FDB BIF+2
\r01960 FDB NEXSCR-CFAOFF
\r01970 FDB ADD1-CFAOFF
\r01980 SLASH DOCOL see fig-FORTH model
\r01990 FDB SLAMOD
\r02000 FDB SWAP
\r02010 FDB DROP
\r02020 FDB SEMIS
\r02100 *
\r02110 FCC 'MOD'
\r02120 FCB 3
\r02130 FCB MFORE
\r02140 FDB SLASH-CFAOFF
\r02150 FDB BIF+2
\r02160 FDB 0
\r02170 FDB 0
\r02180 MOD DOCOL see fig-FORTH model
\r02190 FDB SLAMOD
\r02210 FDB DROP
\r02220 FDB SEMIS
\r02300 *
\r02310 FCC '*/MOD'
\r02320 FCB 5
\r02330 FCB MFORE
\r02340 FDB MOD-CFAOFF
\r02350 FDB BIF+2
\r02360 FDB STARSL-CFAOFF
\r02370 FDB 0
\r02380 SSMOD DOCOL see fig-FORTH model
\r02390 FDB TOR
\r02400 FDB MSTAR
\r02410 FDB RFROM
\r02420 FDB MSLASH
\r02430 FDB SEMIS
\r02500 *
\r02510 FCC '*/'
\r02520 FCB 2
\r02530 FCB MFORE
\r02540 FDB SSMOD-CFAOFF
\r02550 FDB BIF+2
\r02560 FDB 0
\r02570 FDB 0
\r02580 STARSL DOCOL see fig-FORTH model
\r02590 FDB SSMOD
\r02600 FDB SWAP
\r02610 FDB DROP
\r02630 FDB SEMIS
\r02700 *
\r02710 FCC 'M/MOD'
\r02720 FCB 5
\r02730 FCB MFORE
\r02740 FDB STARSL-CFAOFF
\r02750 FDB BIF+2
\r02760 FDB MSTAR-CFAOFF
\r02770 FDB MESS-CFAOFF
\r02780 MSMOD DOCOL see fig-FORTH model
\r02790 FDB TOR
\r02800 FDB ZERO
\r02810 FDB R
\r02820 FDB USLASH ms word
\r02830 FDB RFROM
\r02840 FDB SWAP
\r02850 FDB TOR save high q
\r02860 FDB USLASH ls word
\r02870 FDB RFROM double q
\r02880 FDB SEMIS
\r02900 *
\r02910 FCC '+BUF'
\r02920 FCB 4
\r02930 FCB MFORE
\r02940 FDB MSMOD-CFAOFF
\r02950 FDB BIF+2
\r02960 FDB 0
\r02970 FDB 0
\r02980 ADDBUF LDX <UP
\r02990 LDD BPBUF+2
\r02995 ADDD #4
\r03000 ADDD ,U
\r03010 CMPD ULIMIT,X
\r03020 BLO ADDBN
\r03025 LDD UFIRST,X
\r03030 ADDBN STD ,U
\r03040 CMPD UPREV,X
\r03050 BEQ *+7
\r03060 LDD #-1
\r03065 BRA *+5
\r03070 LDD #0
\r03080 PSHU D
\r03090 NEXT
\r03100 *
\r03110 FCC 'UPDATE'
\r03120 FCB 6
\r03130 FCB MFORE
\r03140 FDB ADDBUF-CFAOFF
\r03150 FDB BIF+2
\r03160 FDB UNTIL-CFAOFF
\r03170 FDB USER-CFAOFF
\r03180 UPDATE LDX <UP
\r03190 LDD [UPREV,X]
\r03200 ORA #$80
\r03210 STD [UPREV,X]
\r03220 NEXT
\r03300 *
\r03310 FCC 'EMPTY-BUFFERS'
\r03320 FCB 13
\r03330 FCB MFORE
\r03340 FDB UPDATE-CFAOFF
\r03350 FDB BIF+2
\r03360 FDB 0
\r03370 FDB 0
\r03380 EMTBUF LDX <UP
\r03390 LDD ULIMIT,X
\r03395 SUBD #1 catch odd
\r03400 PSHS D,Y
\r03410 LDX UFIRST,X
\r03420 LDY #0
\r03430 LDD BPBUF+2
\r03440 EMTBL CMPX ,S
\r03445 BHS EMTBE
\r03450 STY ,X++ update bit
\r03455 LEAX D,X
\r03460 CMPX ,S
\r03465 BHS EMTBE
\r03470 STY ,X++ term NUL
\r03475 BRA EMTBL
\r03480 EMTBE PULS D,Y
\r03490 NEXT
\r03500 *
\r03510 FCC 'DRIVE-OFFSET'
\r03520 FCB 12
\r03530 FCB MFORE
\r03540 FDB EMTBUF-CFAOFF
\r03550 FDB BIF+2
\r03560 FDB DRIVE-CFAOFF
\r03570 FDB DROOT-CFAOFF
\r03580 DROFFS DO1ARR
\r03590 FDB 0 low
\r03600 FDB 4 width
\r03610 FCB 2 element size
\r03620 FDB 18*35 drive 0
\r03630 FDB 18*35
\r03640 FDB $8000 8 Meg max
\r03650 FDB $8000
\r03660 FDB $8000 never a drive 5!
\r03700 *
\r03710 FCC 'DRIVE'
\r03720 FCB 5
\r03730 FCB MFORE
\r03740 FDB DROFFS-CFAOFF
\r03750 FDB BIF+2
\r03760 FDB 0
\r03770 FDB 0
\r03780 DRIVE LDX #DROFFS+7
\r03800 LDD #0
\r03810 DRIVL ADDD ,X++
\r03820 BMI DRIVX table end?
\r03830 DEC 1,U
\r03840 BPL DRIVL
\r03850 SUBD -2,X back one
\r03860 DRIVX LDX <UP
\r03870 STD UOFFS,X
\r03890 LEAU 2,U
\r03900 NEXT
\r04000 *
\r04000 FCC 'R/W'
\r04010 FCB 3
\r04020 FCB MFORE
\r04030 FDB DRIVE-CFAOFF
\r04040 FDB BIF+2
\r04050 FDB 0
\r04060 FDB 0
\r04070 RW PSHS Y,U,DP
\r04080 LDY $C006 control table
\r04090 LDX #DROFFS+7
\r04100 LDD 2,U
\r04110 RWD SUBD ,X++ sectors
\r04120 BHS RWD
\r04130 BVC RWR table end?
\r04140 LDD #6
\r04150 PSHU D
\r04160 JMP ERROR
\r04170 RWR ADDD ,--X back one
\r04175 PSHS X
\r04180 PSHU D
\r04190 LDD #18 sectors/track
\r04200 PSHU D
\r04210 DOCOL
\r04220 FDB SLAMOD
\r04230 FDB XMACH
\r04240 PULU D
\r04250 STB 2,Y track
\r04260 PULU D
\r04265 INCB
\r04270 STB 3,Y sector
\r04280 PULS D table entry
\r04290 SUBD #DROFFS+7
\r04300 ASRB drive #
\r04310 STB 1,Y
\r04320 LDD 4,U buffer
\r04330 STD 4,Y
\r04340 LDB #2 coco READ
\r04350 LDX ,U 0?
\r04360 BNE *+3
\r04370 INCB coco WRITE
\r04380 STB ,Y op code
\r04384 CLRA
\r04386 TFR A,DP
\r04390 JSR [$C004] ROM handles timeout
\r04400 PULS Y,U,DP if IRQ enabled
\r04420 LEAU 6,U
\r04430 LDX $C006
\r04440 LDB 6,X coco status
\r04450 BEQ RWE
\r04460 LDX <UP
\r04470 LDD #0 no disc
\r04480 STD UWARN,X
\r04490 LDD #8
\r04500 PSHU D
\r04510 JMP ERROR
\r04520 RWE NEXT
\r05000 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r05010 FCC '?ERROR'
\r05020 FCB 6
\r05030 FCB MFORE
\r05040 FDB RW-CFAOFF
\r05050 FDB BIF+2
\r05060 FDB 0
\r05070 FDB 0
\r05080 QERR PULU X
\r05090 LDD ,U++
\r05100 BNE *+4
\r05110 NEXT
\r05120 PSHU X
\r05130 JMP ERROR
\r05200 *
\r05210 FCC '?COMP'
\r05220 FCB 5
\r05230 FCB MFORE
\r05240 FDB QERR-CFAOFF
\r05250 FDB BIF+2
\r05260 FDB TOR-CFAOFF
\r05270 FDB QEXEC-CFAOFF
\r05280 QCOMP LDX <UP
\r05290 LDB USTATE+1,X
\r05300 ANDB #SCOMP
\r05310 BNE QPAIRN
\r05320 LDD #$11
\r05330 BRA QPAIRE
\r05400 *
\r05410 FCC '?EXEC'
\r05420 FCB 5
\r05430 FCB MFORE
\r05440 FDB QCOMP-CFAOFF
\r05450 FDB BIF+2
\r05460 FDB QCST-CFAOFF
\r05470 FDB QPAIRS-CFAOFF
\r05480 QEXEC LDX <UP
\r05490 LDB USTATE+1,X
\r05500 BEQ QPAIRN
\r05510 LDD #$12
\r05520 BRA QPAIRE
\r05600 *
\r05610 FCC '?PAIRS'
\r05620 FCB 6
\r05630 FCB MFORE
\r05640 FDB QEXEC-CFAOFF
\r05650 FDB BIF+2
\r05660 FDB QLOAD-CFAOFF
\r05670 FDB QTERM-CFAOFF
\r05680 QPAIRS PULU D
\r05690 SUBD ,U++
\r05700 BEQ QPAIRN
\r05710 LDD #$13
\r05720 QPAIRE PSHU D robbed
\r05730 JMP ERROR
\r05740 QPAIRN NEXT robbed
\r05800 *
\r05810 FCC '?CSP'
\r05820 FCB 4
\r05830 FCB MFORE
\r05840 FDB QPAIRS-CFAOFF
\r05850 FDB BIF+2
\r05860 FDB 0
\r05870 FDB 0
\r05880 QCSP LDX <UP
\r05890 TFR U,D
\r05900 SUBD UCSP,X
\r05910 BEQ QPAIRN
\r05920 LDD #$14
\r05930 BRA QPAIRE
\r06000 *
\r06010 FCC '?LOADING'
\r06020 FCB 8
\r06030 FCB MFORE
\r06040 FDB QCSP-CFAOFF
\r06050 FDB BIF+2
\r06060 FDB 0
\r06070 FDB 0
\r06080 QLOAD LDX <UP
\r06090 LDD UBLK,X
\r06100 BNE QPAIRN
\r06110 LDD #$16
\r06120 BRA QPAIRE
\r06200 *
\r06210 FCC 'COMPILE'
\r06220 FCB 7
\r06230 FCB MFORE
\r06240 FDB QLOAD-CFAOFF
\r06250 FDB BIF+2
\r06260 FDB COLD-CFAOFF
\r06270 FDB COMPO-CFAOFF
\r06280 COMP DOCOL
\r06290 FDB QCOMP
\r06300 FDB XMACH
\r06310 COMPIP LDD ,Y++ robbed by IP,
\r06320 PSHU D
\r06330 JMP COMMA
\r06390 *
\r06410 FCC 'LOOP'
\r06420 FCB MIMM.OR.MCOMP.OR.4
\r06430 FCB MFORE
\r06440 FDB COMP-CFAOFF
\r06450 FDB BIF+2
\r06460 FDB KEY-CFAOFF
\r06470 FDB NUMBER-CFAOFF
\r06480 LOOP DOCOL see fig-FORTH model
\r06490 FDB LIT
\r06500 FDB ('D)*256+'O
\r06510 FDB QPAIRS
\r06520 FDB COMP
\r06530 FDB XLOOP
\r06540 FDB BACK
\r06550 FDB SEMIS
\r06590 *
\r06610 FCC '+LOOP'
\r06620 FCB MIMM.OR.MCOMP.OR.5
\r06630 FCB MFORE
\r06640 FDB LOOP-CFAOFF
\r06650 FDB BIF+2
\r06660 FDB CHS-CFAOFF
\r06670 FDB COMMA-CFAOFF
\r06680 PLOOP DOCOL see fig-FORTH model
\r06690 FDB LIT
\r06700 FDB ('D)*256+'O
\r06710 FDB QPAIRS
\r06720 FDB COMP
\r06730 FDB XPLOOP
\r06740 FDB BACK
\r06750 FDB SEMIS
\r06790 *
\r06809 FCC 'LOAD'
\r06820 FCB 4
\r06830 FCB MFORE
\r06840 FDB PLOOP-CFAOFF
\r06850 FDB BIF+2
\r06860 FDB 0
\r06870 FDB 0
\r06880 LOAD PSHS Y see fig-FORTH model
\r06890 LDY <UP
\r06900 LDD UIN,Y
\r06910 LDX UBLK,Y
\r06920 PSHS X,D
\r06930 LDD #0
\r06940 STD UIN,Y
\r06950 DOCOL
\r06960 FDB BPSCR
\r06970 FDB STAR
\r06980 FDB BLK
\r06990 FDB STORE
\r07000 FDB INTERP
\r07010 FDB XMACH
\r07020 PULS D,X
\r07030 STD UIN,Y
\r07040 STX UBLK,Y
\r07050 PULS Y
\r07060 NEXT
\r07090 *
\r07110 FCC '<BUILDS'
\r07120 FCB MCOMP.OR.7
\r07130 FCB MFORE
\r07140 FDB LOAD-CFAOFF
\r07150 FDB BIF+2
\r07160 FDB 0
\r07170 FDB 0
\r07180 BUILDS DOCOL see fig-FORTH model
\r07190 FDB ZERO
\r07200 FDB CONST
\r07210 FDB SEMIS
\r07290 *
\r07310 FCC 'DOES>'
\r07320 FCB MCOMP.OR.5
\r07330 FCB MFORE
\r07340 FDB BUILDS-CFAOFF
\r07350 FDB BIF+2
\r07360 FDB 0
\r07370 FDB 0
\r07380 DOES LDX <UP
\r07430 LDX UCURR,X
\r07440 LDD ADOES,PCR
\r07450 STD CFAOFF,X
\r07460 STY PFAOFF,X
\r07470 PULS Y
\r07480 NEXT
\r07490 ADOES JSR <XDOES
\r07790 *
\r07810 FCC ';CODE'
\r07820 FCB MCOMP.OR.MIMM.OR.5
\r07830 FCB MFORE
\r07840 FDB DOES-CFAOFF
\r07850 FDB BIF+2
\r07860 FDB SEMI-CFAOFF
\r07870 FDB SEMIS-CFAOFF
\r07880 SCODE DOCOL not fig
\r07890 FDB QCSP
\r07900 FDB COMP
\r07910 FDB XSCODE
\r07915 FDB LBRAK
\r07920 FDB ASMBLR
\r07930 FDB STOCSP to check later
\r07940 FDB SEMIS
\r07950 * something else must SMUDGE
\r07960 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (See BIF/ASM)
\r00030 *
\r00900 FCC 'IP,'
\r00910 FCB MCOMP.OR.3
\r00920 FCB MFORE
\r00930 FDB SCODE-CFAOFF
\r00940 FDB BIF+2
\r00950 FDB 0
\r00960 FDB 0
\r00970 IPCOM JMP COMPIP
\r00980 *
\r01000 FCC '?STACK'
\r01010 FCB 6
\r01020 FCB MFORE
\r01030 FDB IPCOM-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB 0
\r01060 FDB 0
\r01070 QSTACK LDX <UP
\r01080 CMPS UR0,X
\r01090 BLS *+6
\r01100 QSTACU LDB #$0A
\r01110 BRA QSTERR
\r01115 LDD [UR0,X] hole
\r01116 BNE QSTACU
\r01120 CMPS US0,X
\r01130 BHI *+6
\r01140 QSTACO LDB #$0B
\r01150 BRA QSTERR
\r01155 LDD [US0,X] hole
\r01156 BNE QSTACE
\r01160 CMPU US0,X
\r01170 BLS *+6
\r01180 QSTACE LDB #1
\r01190 BRA QSTERR
\r01240 CMPU UDP,X
\r01260 BLS *+4
\r01270 NEXT
\r01280 LDB #7
\r01290 QSTERR CLRA
\r01300 PSHU D
\r01310 JMP ERROR
\r01320 *
\r01400 FCC 'BUFFER'
\r01410 FCB 6
\r01420 FCB MFORE
\r01430 FDB QSTACK-CFAOFF
\r01440 FDB BIF+2
\r01450 FDB BLK-CFAOFF
\r01460 FDB CCOMMA-CFAOFF
\r01470 BUFFER PSHS Y
\r01480 LDY <UP
\r01490 LDD UUSE,Y
\r01495 PSHS D save it
\r01500 PSHU D
\r01510 DOCOL
\r01520 FDB ADDBUF
\r01530 FDB ZBR prev?
\r01540 FDB -6
\r01550 FDB XMACH
\r01560 PULU D
\r01570 STD UUSE,Y new use
\r01580 LDX ,S buffer
\r01590 LDD ,X block
\r01600 BPL BUFNW
\r01610 ANDA #$7F mask update
\r01620 LEAX 2,X data
\r01630 PSHU D,X
\r01640 LDD #0 write
\r01650 PSHU D
\r01660 DOCOL
\r01670 FDB RW
\r01680 FDB XMACH
\r01690 BUFNW PULU D new block
\r01700 PULS X
\r01710 STD ,X
\r01720 STX UPREV,Y
\r01730 LEAX 2,X data
\r01740 PSHU X
\r01750 PULS Y
\r01760 NEXT
\r01790 *
\r01800 FCC 'BLOCK'
\r01810 FCB 5
\r01820 FCB MFORE
\r01830 FDB BUFFER-CFAOFF
\r01840 FDB BIF+2
\r01850 FDB 0
\r01860 FDB BS-CFAOFF
\r01870 BLOCK PSHS Y
\r01880 LDY <UP
\r01890 LDD UOFFS,Y
\r01900 ADDD ,U
\r01910 STD ,U
\r01920 LDX UPREV,Y
\r01930 BLOKL LDD ,X block
\r01940 ANDA #$7F mask update
\r01950 CMPD ,U this buffer?
\r01960 BEQ BLOKFD
\r01970 PSHU X
\r01980 DOCOL
\r01990 FDB ADDBUF
\r02000 FDB TBR
\r02010 FDB BLOKLE-*-2
\r02020 FDB DROP buffer
\r02030 FDB DUP block
\r02040 FDB BUFFER lru
\r02050 FDB OVER
\r02060 FDB OVER
\r02070 FDB SWAP
\r02080 FDB MONE
\r02090 FDB RW get block
\r02100 FDB SUB2
\r02110 BLOKLE FDB XMACH
\r02120 PULU X buffer
\r02130 BRA BLOKL
\r02140 BLOKFD STX UPREV,Y
\r02150 LEAX 2,X data
\r02160 STX ,U
\r02165 PULS Y
\r02170 NEXT
\r02180 *
\r02200 FCC '(LINE)'
\r02210 FCB 6
\r02220 FCB MFORE
\r02230 FDB BLOCK-CFAOFF
\r02240 FDB BIF+2
\r02250 FDB PINSTA-CFAOFF
\r02260 FDB XLOOP-CFAOFF
\r02270 XLINE DOCOL see fig-FORTH model
\r02280 FDB TOR
\r02290 FDB CPERL line width
\r02300 FDB BPBUF
\r02310 FDB SSMOD byte in sector
\r02320 FDB RFROM
\r02330 FDB BPSCR
\r02340 FDB STAR base of screen
\r02350 FDB ADD
\r02360 FDB BLOCK
\r02370 FDB ADD byte of buffer
\r02380 FDB CPERL
\r02390 FDB SEMIS
\r02400 *
\r02500 FCC '.LINE'
\r02510 FCB 5
\r02520 FCB MFORE
\r02530 FDB XLINE-CFAOFF
\r02540 FDB BIF+2
\r02550 FDB DOTQ-CFAOFF
\r02560 FDB DOTR-CFAOFF
\r02570 DOTLIN DOCOL see fig-FORTH model
\r02580 FDB XLINE
\r02590 FDB DTRAIL
\r02600 FDB TYPE
\r02610 FDB SEMIS
\r02690 *
\r02700 FCC 'SPACES'
\r02710 FCB 6
\r02720 FCB MFORE
\r02730 FDB DOTLIN-CFAOFF
\r02740 FDB BIF+2
\r02750 FDB 0
\r02760 FDB 0
\r02770 SPACES LDD ,U see fig-FORTH model
\r02780 BGT SPACEY
\r02783 LEAU 2,U
\r02785 NEXT
\r02790 SPACEY DOCOL
\r02800 FDB ZERO
\r02810 FDB XDO
\r02820 FDB SPACE
\r02830 FDB XLOOP
\r02840 FDB -6
\r02850 FDB SEMIS
\r02890 *
\r02900 FCC '<#'
\r02910 FCB 2
\r02920 FCB MFORE
\r02930 FDB SPACES-CFAOFF
\r02940 FDB BIF+2
\r02950 FDB 0
\r02960 FDB BUILDS-CFAOFF
\r02970 BEGHSH LDX <UP
\r02980 LDD UPAD,X
\r02990 STD UHLD,X
\r03000 NEXT
\r03090 *
\r03100 FCC '#>'
\r03110 FCB 2
\r03120 FCB MFORE
\r03130 FDB BEGHSH-CFAOFF
\r03140 FDB BIF+2
\r03150 FDB STORE-CFAOFF
\r03160 FDB TICK-CFAOFF
\r03170 ENDHSH LDX <UP
\r03180 LDD UPAD,X
\r03190 SUBD UHLD,X
\r03200 STD ,U count
\r03210 LDD UHLD,X
\r03220 STD 2,U
\r03230 NEXT
\r03290 *
\r03300 FCC 'SIGN'
\r03310 FCB 4
\r03320 FCB MFORE
\r03330 FDB ENDHSH-CFAOFF
\r03340 FDB BIF+2
\r03350 FDB SCR-CFAOFF
\r03360 FDB 0
\r03370 SIGN DOCOL see fig-FORTH model
\r03380 FDB ROT
\r03390 FDB ZLESS
\r03400 FDB ZBR
\r03410 FDB SIGNP-*-2
\r03420 FDB LIT
\r03430 FDB $2D
\r03440 FDB HOLD
\r03450 SIGNP FDB SEMIS
\r03490 *
\r03500 FCC '#'
\r03510 FCB 1
\r03520 FCB MFORE
\r03530 FDB SIGN-CFAOFF
\r03540 FDB BIF+2
\r03550 FDB 0
\r03560 FDB 0
\r03570 HASH DOCOL see fig-FORTH model
\r03580 FDB BASE
\r03590 FDB FETCH
\r03600 FDB MSMOD
\r03610 FDB ROT
\r03620 FDB XMACH
\r03630 LDB 1,U
\r03640 CMPB #9
\r03650 BLS HASHX+4
\r03660 CMPB #'A-'Z+10
\r03670 BLS HASHX+2
\r03680 HASHX ADDB #'a-'Z-1
\r03690 ADDB #'A-'9-1
\r03700 ADDB #'0
\r03710 STB 1,U
\r03720 DOCOL
\r03730 FDB HOLD
\r03740 FDB SEMIS
\r03790 *
\r03800 FCC '#S'
\r03810 FCB 2
\r03820 FCB MFORE
\r03830 FDB HASH-CFAOFF
\r03840 FDB BIF+2
\r03850 FDB 0
\r03860 FDB 0
\r03870 HASHS DOCOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ 1\ 2ÆÇÇ
\ 6Á
\bÅ
2 Ä
\f\r\ eÂ
\10È
\12\13È
\15Ã
\17\18Ç
\1aÄ
\1c\1dÄ
\1fÆ!"É$Â&'Ç)*Âÿÿÿ/0Á2É456Éÿ9:;Éÿÿÿÿÿÿÿÿÿ0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BIF ASM
\ 3ÿ
\0\0ö
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIFU INC
\ 3ÿ
\ 3\0E
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF M
\ 3ÿ
\ 4\0×
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIFDP ASM
\ 3ÿ
\ 5\0\e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIFST ASM
\ 3ÿ
\a\0ð
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIFB ASM
\ 3ÿ
\0ê
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF1 ASM
\ 3ÿ
\v\0¤
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF1B ASM
\ 3ÿ
\ f\0]
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF2 ASM
\ 3ÿ
\11\0\98\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF2B ASM
\ 3ÿ
\14\0&
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF3 ASM
\ 3ÿ
\16\0+
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF3B ASM
\ 3ÿ
\19\0v
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF4 ASM
\ 3ÿ
\e\0Ê
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF4B ASM
\ 3ÿ
\1e\0©
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF5 ASM
\ 3ÿ
\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF5B ASM
\ 3ÿ#
\0|
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF6 ASM
\ 3ÿ%
\0\ e\0\0\ 1\0\0\18\ e\0\0\0\0\0\0\0\0\0BIF6B ASM
\ 3ÿ(
\0\ e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0IF6809NBIN
\ 2\0+
\0´
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF7 ASM
\ 3ÿ.
\0é
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF7B ASM
\ 3ÿ1
\0\ f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BIF6809 BIN
\ 2\03
\0µ
\0\0\ 1\0\0#µ
\0\0\0\0\0\0\0\0\0BIF6809CBIN
\ 2\08
\0µ
\0\0\ 1\0\0#µ
\0\0\0\0\0\0\0\0\0\0IFD1P BIN
\ 2\0:
\0\ 5\0\0\ 1\0\0\0\ 5\0\0\0\0\0\0\0\0\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿL
\r03880 FDB HASH
\r03890 FDB XMACH
\r03900 LDD 2,U
\r03910 BNE HASHS
\r03920 LDD ,U
\r03930 BNE HASHS
\r03940 NEXT
\r03950 *
\r04000 FCC 'D.R'
\r04010 FCB 3
\r04020 FCB MFORE
\r04030 FDB HASHS-CFAOFF
\r04040 FDB BIF+2
\r04050 FDB 0
\r04060 FDB 0
\r04070 DDOTR DOCOL see fig-FORTH model
\r04080 FDB TOR
\r04090 FDB SWAP save sign
\r04100 FDB OVER
\r04110 FDB DABS
\r04120 FDB BEGHSH
\r04130 FDB HASHS
\r04140 FDB SIGN
\r04150 FDB ENDHSH
\r04160 FDB RFROM field width
\r04170 FDB OVER
\r04180 FDB SUB
\r04190 FDB SPACES <0 => no spaces
\r04200 FDB TYPE
\r04210 FDB SEMIS
\r04220 *
\r04230 FCC 'D.'
\r04240 FCB 2
\r04250 FCB MFORE
\r04260 FDB DDOTR-CFAOFF
\r04270 FDB BIF+2
\r04280 FDB 0
\r04290 FDB DDOTR-CFAOFF
\r04300 DDOT DOCOL see fig-FORTH model
\r04310 FDB ZERO
\r04320 FDB DDOTR
\r04330 FDB SPACE
\r04340 FDB SEMIS
\r04350 *
\r04360 FCC '.R'
\r04370 FCB 2
\r04380 FCB MFORE
\r04390 FDB DDOT-CFAOFF
\r04400 FDB BIF+2
\r04410 FDB 0
\r04420 FDB 0
\r04430 DOTR DOCOL see fig-FORTH model
\r04440 FDB TOR
\r04450 FDB STOD
\r04460 FDB RFROM
\r04470 FDB DDOTR
\r04480 FDB SEMIS
\r04490 *
\r04500 FCC '.'
\r04510 FCB 1
\r04520 FCB MFORE
\r04530 FDB DOTR-CFAOFF
\r04540 FDB BIF+2
\r04550 FDB DDUP-CFAOFF
\r04560 FDB DOTLIN-CFAOFF
\r04570 DOT DOCOL see fig-FORTH model
\r04580 FDB STOD
\r04590 FDB DDOT
\r04600 FDB SEMIS
\r04610 *
\r04620 FCC '?'
\r04630 FCB 1
\r04640 FCB MFORE
\r04650 FDB DOT-CFAOFF
\r04660 FDB BIF+2
\r04670 FDB TOVID-CFAOFF
\r04680 FDB TNULL-CFAOFF
\r04690 QDOT LDD [,U++]
\r04700 PSHU D
\r04710 BRA DOT
\r04720 *
\r04800 FCC 'MESSAGE'
\r04810 FCB 7
\r04820 FCB MFORE
\r04830 FDB DOTLIN-CFAOFF
\r04840 FDB BIF+2
\r04850 FDB MAX-CFAOFF
\r04860 FDB 0
\r04870 MESS DOCOL see fig-FORTH model
\r04880 FDB WARN
\r04890 FDB FETCH print text?
\r04893 FDB ONE
\r04896 FDB AND
\r04900 FDB ZBR
\r04910 FDB MESSN-*-2
\r04920 FDB DDUP not 0?
\r04930 FDB ZBR
\r04940 FDB MESSX-*-2
\r04950 FDB LIT
\r04960 FDB 4
\r04970 FDB OFFSET
\r04980 FDB FETCH
\r04990 FDB BPSCR
\r05000 FDB SLASH screen offset
\r05010 FDB SUB
\r05020 FDB DOTLIN
\r05030 FDB BRANCH
\r05040 FDB MESSX-*-2
\r05050 MESSN FDB XDOTQ
\r05060 FCB 6
\r05070 FCC 'MSG # '
\r05080 FDB DOT
\r05090 MESSX FDB SEMIS
\r05190 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (See BIF/ASM)
\r00030 *
\r05200 FCC '(ABORT)'
\r05210 FCB 7
\r05220 FCB MFORE
\r05230 FDB MESS-CFAOFF
\r05240 FDB BIF+2
\r05250 FDB XDOTQ-CFAOFF
\r05260 FDB XDO-CFAOFF
\r05270 IABORT DOCOL see fig-FORTH model
\r05280 FDB ABORT
\r05290 FDB SEMIS
\r05390 *
\r05400 FCC 'ERROR'
\r05410 FCB 5
\r05420 FCB MFORE
\r05430 FDB IABORT-CFAOFF
\r05440 FDB BIF+2
\r05450 FDB ERASE-CFAOFF
\r05460 FDB EXEC-CFAOFF
\r05470 ERROR DOCOL
\r05480 FDB WORDPD last WORD
\r05490 FDB COUNT
\r05500 FDB TYPE
\r05510 FDB XDOTQ
\r05520 FCB 3
\r05530 FCC ' ? '
\r05540 FDB MESS
\r05550 FDB WARN
\r05560 FDB FETCH
\r05570 FDB ZLESS
\r05580 FDB ZBR
\r05590 FDB 2
\r05600 FDB IABORT
\r05610 FDB SPSTO
\r05620 FDB IN
\r05630 FDB FETCH
\r05640 FDB BLK
\r05650 FDB FETCH
\r05660 FDB QUIT
\r05670 FDB SEMIS
\r05680 *
\r05700 FCC 'EDITOR'
\r05710 FCB MIMM.OR.6
\r05720 FCB MFORE
\r05730 FDB ERROR-CFAOFF
\r05740 FDB BIF+2 parent voc
\r05750 FDB 0
\r05760 FDB 0
\r05770 EDITOR DOVOC
\r05780 FDB EBLK-CFAOFF (NFA)
\r05790 *
\r05800 FCC 'QSYNC'
\r05810 FCB 5
\r05820 FCB MFORE
\r05830 FDB EDITOR-CFAOFF
\r05840 FDB EDITOR+2
\r05850 FDB 0
\r05860 FDB 0
\r05870 QSYNC LDX <UP
\r05880 LDB URNUM+1,X
\r05890 LDA #4
\r05900 STD $88
\r05910 NEXT
\r05990 *
\r06000 FCC 'EBLK'
\r06010 FCB 4
\r06020 FCB MFORE
\r06030 FDB QSYNC-CFAOFF
\r06040 FDB EDITOR+2
\r06050 FDB CURSOR-CFAOFF
\r06060 FDB QDUMP-CFAOFF
\r06070 EBLK DOUSER
\r06080 FCB UEBLK
\r06090 *
\r06000 FCC 'CURSOR'
\r06010 FCB 6
\r06020 FCB MFORE
\r06030 FDB QSYNC-CFAOFF
\r06040 FDB EDITOR+2
\r06050 FDB 0
\r06060 FDB 0
\r06070 CURSOR DOCOL
\r06080 FDB EBLK
\r06090 FDB FETCH
\r06100 FDB BLOCK
\r06110 FDB RNUM
\r06120 FDB FETCH
\r06130 FDB ADD
\r06140 FDB SEMIS
\r06190 *
\r06200 FCC 'QDUMP'
\r06210 FCB 5
\r06220 FCB MFORE
\r06230 FDB CURSOR-CFAOFF
\r06240 FDB EDITOR+2
\r06250 FDB QARROW-CFAOFF
\r06260 FDB QUICK-CFAOFF
\r06270 QDUMP PSHS Y
\r06280 PULU Y
\r06290 LDX #$400 screen
\r06300 CLRA
\r06310 QDUMPL LDB ,Y+
\r06320 STB ,X+
\r06330 DECA
\r06340 BNE QDUMPL
\r06350 PULS Y
\r06360 NEXT
\r06390 *
\r06400 FCC 'QARROW'
\r06410 FCB 6
\r06420 FCB MFORE
\r06430 FDB QDUMP-CFAOFF
\r06440 FDB EDITOR+2
\r06450 FDB 0
\r06460 FDB 0
\r06470 QARROW LDB 1,U
\r06480 LDA #4
\r06490 LEAX QTBL,PCR
\r06500 QAROL CMPB ,X+
\r06510 BEQ QARODO
\r06520 DECA
\r06530 BNE QAROL
\r06540 CMPB #21 shifted BS?
\r06550 BNE QAROX
\r06552 DOCOL
\r06554 FDB CURSOR
\r06556 FDB XMACH
\r06560 LDD #$2060 spaces
\r06565 STA [,U++] buffer
\r06570 STB [$88] video
\r06580 LDB #-1
\r06590 BRA *+4
\r06600 QARODO LDB 3,X
\r06610 LDX <UP
\r06620 ADDB URNUM+1,X
\r06630 STB URNUM+1,X
\r06650 LDD #0
\r06660 STD ,U
\r06670 QAROX NEXT
\r06700 QTBL FCB '^ up
\r06710 FCB 10 down
\r06720 FCB 8 back
\r06730 FCB 9 front
\r06740 FCB -32 offsets
\r06750 FCB 32
\r06760 FCB -1
\r06770 FCB 1
\r06790 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r01000 FCC '(NUMBER)'
\r01010 FCB 8
\r01020 FCB MFORE
\r01030 FDB QARROW-CFAOFF
\r01040 FDB BIF+2
\r01050 FDB 0
\r01060 FDB PREF-CFAOFF
\r01070 INUMB PSHS Y see fig-FORTH model
\r01080 PULU Y adr
\r01085 LDX <UP
\r01090 INUMBL LDB ,Y+ ch
\r01092 CLRA
\r01094 PSHU D
\r01096 LDD UBASE,X
\r01100 PSHU D
\r01110 DOCOL
\r01120 FDB DIGIT
\r01130 FDB ZBR
\r01140 FDB INUMBE-*-2
\r01150 FDB SWAP accm ms word
\r01160 FDB BASE
\r01180 FDB FETCH
\r01190 FDB USTAR shift in base
\r01200 FDB DROP ls word is digit
\r01210 FDB ROT accm ls word
\r01220 FDB BASE
\r01230 FDB FETCH
\r01240 FDB USTAR shift in base
\r01250 FDB DADD accumulate
\r01260 FDB XMACH adjust dpl
\r01270 LDX <UP
\r01280 LDD UDPL,X
\r01290 BMI INUMBL
\r01300 ADDD #1
\r01310 STD UDPL,X
\r01320 BRA INUMBL
\r01330 INUMBE FDB XMACH
\r01340 LEAY -1,Y back up
\r01350 PSHU Y adr
\r01355 PULS Y
\r01360 NEXT
\r01390 *
\r01400 FCC 'NUMBER'
\r01410 FCB 6
\r01420 FCB MFORE
\r01430 FDB INUMB-CFAOFF
\r01440 FDB BIF+2
\r01450 FDB MIN-CFAOFF
\r01460 FDB OVER-CFAOFF
\r01470 NUMBER PULU X
\r01475 LEAX 1,X skip ct
\r01480 LDB ,X <0?
\r01490 SUBB #'-
\r01500 BNE *+4
\r01510 LEAX 1,X
\r01520 CLRA
\r01530 PSHU D
\r01540 CLRB
\r01550 PSHU D double 0
\r01560 PSHU D
\r01570 PSHU X adr
\r01580 LDD #-1 clear DPL
\r01590 NUMBA LDX <UP
\r01600 STD UDPL,X
\r01610 DOCOL
\r01620 FDB INUMB
\r01630 FDB XMACH
\r01640 LDX ,U end ch
\r01650 LDB ,X ascii NUL?
\r01660 BEQ NUMBQ
\r01670 CMPB #': double?
\r01680 BEQ NUMBD
\r01690 CMPB #'-
\r01700 BLO NUMBE
\r01710 CMPB #'/
\r01720 BHI NUMBE
\r01730 NUMBD LEAX 1,X past dec pt
\r01740 STX ,U
\r01750 LDD #0 set DPL
\r01760 BRA NUMBA
\r01770 NUMBE LDD #0
\r01780 PSHU D
\r01790 JMP ERROR
\r01800 NUMBQ LEAU 2,U valid, drop
\r01810 DOCOL
\r01830 FDB ROT <0?
\r01840 FDB TBR
\r01850 FDB 2
\r01860 FDB DMINUS
\r01870 FDB SEMIS
\r01890 *
\r01900 FCC 'WORDPAD'
\r01910 FCB 7
\r01920 FCB MFORE
\r01930 FDB NUMBER-CFAOFF
\r01940 FDB BIF+2
\r01950 FDB 0
\r01960 FDB 0
\r01970 WORDPD DOUCON
\r01980 FCB UWP
\r01990 *
\r02000 FCC 'WORD'
\r02010 FCB 4
\r02020 FCB MFORE
\r02030 FDB WORDPD-CFAOFF
\r02040 FDB BIF+2
\r02050 FDB WHILE-CFAOFF
\r02060 FDB BCOMP-CFAOFF
\r02070 WORD PSHS Y
\r02075 LDY <UP
\r02080 LDD UBLK,Y terminal?
\r02090 BEQ WORDK buffer
\r02100 PSHU D
\r02110 DOCOL
\r02120 FDB BLOCK
\r02130 FDB XMACH
\r02140 PULU D
\r02150 BRA *+4 UTIB < 16!
\r02160 WORDK LDD UTIB,Y
\r02170 ADDD UIN,Y parse at
\r02180 PULU X ch
\r02190 TFR D,Y save
\r02200 PSHU X,Y (swap)
\r02205 DOCOL
\r02210 FDB ENCLOS
\r02215 FDB XMACH
\r02220 PSHS Y start at
\r02221 LDD 2,U symbol at
\r02222 SUBD ,S++ delimiter count
\r02223 ADDD ,U length
\r02225 LDX <UP
\r02226 ADDD UIN,X
\r02227 STD UIN,X update
\r02230 PULU D length
\r02240 CMPD #NLMASK
\r02250 BLS *+5 clip
\r02260 LDD #NLMASK
\r02270 LDY UWP,X
\r02280 STB ,Y+ count
\r02290 CLR B,Y trailing NUL
\r02300 PSHU D,Y dest & ct
\r02330 PULS Y
\r02340 DOCOL
\r02350 FDB CMOVE copy
\r02360 FDB SEMIS
\r02490 *
\r02500 FCC 'BS'
\r02510 FCB 2
\r02520 FCB MFORE
\r02530 FDB WORD-CFAOFF
\r02540 FDB BIF+2
\r02550 FDB BRANCH-CFAOFF
\r02560 FDB 0
\r02570 BS DOUCON
\r02580 FCB UBS
\r02590 *
\r02600 FCC 'EXPECT'
\r02610 FCB 6
\r02620 FCB MFORE
\r02630 FDB BS-CFAOFF
\r02640 FDB BIF+2
\r02650 FDB ERROR-CFAOFF
\r02660 FDB FILL-CFAOFF
\r02670 EXPECT PSHS Y
\r02680 LDD ,U count
\r02690 LDY 2,U buffer
\r02700 SUBD #1 for NUL
\r02710 BLT EXPE0+2
\r02720 BEQ EXPE0
\r02730 LEAX D,Y
\r02740 STX ,U limit
\r02750 EXPEL DOCOL
\r02760 FDB KEY
\r02770 FDB XMACH
\r02780 LDB 1,U
\r02790 LDX <UP
\r02800 CMPB UBS+1,X
\r02810 BNE EXPECR
\r02820 CMPY 4,U beginning?
\r02830 BLS EXPEM0
\r02840 LEAY -1,Y
\r02850 BRA EXPEM
\r02860 EXPEM0 CLR 1,U to emit
\r02870 BRA EXPEM
\r02880 EXPECR CMPB #$0D
\r02890 BNE EXPEPT
\r02900 STY 2,U terminate
\r02910 BRA EXPEM
\r02913 EXPEPT CMPB #$20 printable?
\r02916 BLO EXPEM0
\r02920 STB ,Y+ store ch
\r02930 EXPEM DOCOL
\r02940 FDB EMIT
\r02950 FDB XMACH
\r02960 CMPY ,U
\r02970 BLO EXPEL
\r02980 EXPE0 CLR ,Y NUL term
\r02990 LEAU 4,U
\r03000 PULS Y
\r03010 NEXT
\r03090 *
\r03600 TWID EQU 128 width of a terminal line
\r03605 FCC 'QUERY'
\r03610 FCB 5
\r03620 FCB MFORE
\r03630 FDB EXPECT-CFAOFF
\r03640 FDB BIF+2
\r03650 FDB LOOP-CFAOFF
\r03660 FDB SWAP-CFAOFF
\r03670 QUERY LDX <UP
\r03680 LDD #0
\r03690 STD UIN,X
\r03700 LDD #TWID
\r03710 LDX UTIB,X
\r03720 PSHU D,X
\r03730 DOCOL
\r03740 FDB EXPECT
\r03750 FDB SEMIS
\r03790 *
\r03795 FCB 0 ; NEEDED
\r03800 FCB MIMM.OR.0
\r03810 FCB MFORE
\r03820 FDB QUERY-CFAOFF
\r03830 FDB BIF+2
\r03840 FDB 0
\r03850 FDB 0
\r03860 NUBLK LDX <UP
\r03870 LDD UBLK,X
\r03880 BEQ NUBLT
\r03890 ADDD #1
\r03900 STD UBLK,X
\r03910 LDD #0
\r03920 STD UIN,X
\r03930 LDD BPSCR+2 2^n
\r03940 DECB
\r03950 ANDB UBLK+1,X end of screen?
\r03960 BNE NUBLT+2
\r03970 DOCOL
\r03980 FDB QEXEC
\r03990 FDB XMACH
\r04000 NUBLT PULS Y end interp
\r04010 NEXT
\r04090 *
\r04100 FCC 'FIND'
\r04110 FCB 4
\r04120 FCB MFORE
\r04130 FDB NUBLK-CFAOFF
\r04140 FDB BIF+2
\r04150 FDB EXPECT-CFAOFF
\r04160 FDB HERE-CFAOFF
\r04170 FIND LDD 2,U
\r04180 ADDD #1 past ct
\r04190 STD 2,U
\r04200 LDD ,U
\r04210 FINDL LDX 2,U
\r04220 PSHU D,X
\r04230 DOCOL
\r04240 FDB PFIND
\r04250 FDB XMACH
\r04260 LDD ,U flag
\r04270 BNE FINDF
\r04290 LDX 4,U vocabulary
\r04300 LDD GFAOFF-PFAOFF,X parent
\r04305 CMPD 4,U root voc?
\r04310 BEQ FINDF
\r04315 LEAU 4,U
\r04320 STD ,U
\r04330 BRA FINDL
\r04360 FINDF LDD [2,U]
\r04365 LEAU 4,U entry
\r04370 STD 2,U
\r04380 NEXT
\r04390 *
\r04400 FCC '-DFIND'
\r04410 FCB 6
\r04420 FCB MFORE
\r04430 FDB FIND-CFAOFF
\r04440 FDB BIF+2
\r04450 FDB 0
\r04460 FDB 0
\r04470 DDFIND DOCOL
\r04480 FDB DROOT defs first
\r04490 FDB ROOT context next
\r04500 DFIND1 FDB BL
\r04510 FDB WORD name in buf
\r04520 FDB FETCH vocab2
\r04530 FDB SWAP
\r04540 FDB FETCH vocab1
\r04550 FDB OVER
\r04560 FDB OVER
\r04570 FDB EQ same?
\r04580 FDB ZBR
\r04590 FDB 6
\r04600 FDB DROP
\r04610 FDB BRANCH
\r04620 FDB DFIND2-*-2
\r04630 FDB WORDPD buf
\r04640 FDB SWAP
\r04650 FDB FIND 1st
\r04660 FDB OVER
\r04670 FDB ZBR
\r04680 FDB 6
\r04690 FDB ROT
\r04700 FDB DROP
\r04710 FDB SEMIS
\r04720 FDB DROP
\r04730 FDB DROP
\r04740 DFIND2 FDB WORDPD
\r04750 FDB SWAP
\r04760 FDB FIND 2nd
\r04770 FDB SEMIS
\r04790 *
\r04800 FCC '-IFIND'
\r04810 FCB 6
\r04820 FCB MFORE
\r04830 FDB DDFIND-CFAOFF
\r04840 FDB BIF+2
\r04850 FDB 0
\r04860 FDB 0
\r04870 DIFIND DOCOL
\r04880 FDB ROOT context first
\r04890 FDB DROOT defs next
\r04900 FDB BRANCH
\r04910 FDB DFIND1-*-2
\r05190 *
\r*
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00010 * Include file for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r00030 *
\r05200 FCC 'NAME,'
\r05210 FCB 5
\r05220 FCB MFORE
\r05230 FDB DIFIND-CFAOFF
\r05240 FDB BIF+2
\r05250 FDB 0
\r05260 FDB 0
\r05270 NCOMMA DOCOL
\r05280 FDB WORDPD
\r05300 FDB COUNT
\r05310 FDB TOR
\r05330 FDB HERE
\r05340 FDB R
\r05350 FDB ALLOT
\r05360 FDB R
\r05370 FDB CMOVE name
\r05380 FDB HERE node
\r05390 FDB RFROM
\r05400 FDB SEMIS
\r05490 *
\r05500 FCC 'FORE-MARK'
\r05510 FCB 9
\r05520 FCB MFORE
\r05530 FDB NCOMMA-CFAOFF
\r05540 FDB BIF+2
\r05550 FDB FIRST-CFAOFF
\r05560 FDB FORGET-CFAOFF
\r05570 FOREMK LDX <UP
\r05580 LDD UFORE,X
\r05590 BEQ FOREMN
\r05600 LDX UCURR,X
\r05610 LDB 1,X
\r05620 ORB #MFORE
\r05630 STB 1,X
\r05640 FOREMN NEXT
\r05690 *
\r05700 FCC '(INSTALL)'
\r05710 FCB MCOMP.OR.9
\r05720 FCB MFORE
\r05730 FDB DIFIND-CFAOFF
\r05740 FDB BIF+2
\r05750 FDB 0
\r05760 FDB 0
\r05770 PINSTA LDX ,U vocab
\r05772 BNE PINSTV
\r05774 LDD #$18
\r05776 PSHU D
\r05778 JMP ERROR
\r05780 PINSTV PSHS Y
\r05784 LDY 2,U nfa
\r05788 LDB ,Y
\r05792 ANDB #NLMASK
\r05796 TFR B,A
\r05800 NEGA
\r05804 LEAY A,Y name
\r05808 DECA for NUL
\r05812 LEAS A,S allocate
\r05816 CLRA
\r05820 STA B,S term
\r05824 PSHU Y
\r05828 PSHU D,S
\r05832 PSHS B mark
\r05836 DOCOL
\r05840 FDB CMOVE
\r05844 FDB XMACH
\r05848 LDX ,U vocab
\r05852 LEAY 1,S
\r05856 PINSTL PSHU X,Y
\r05860 DOCOL
\r05864 FDB PFIND slot?
\r05868 FDB XMACH
\r05872 LDD ,U++ flag
\r05876 BEQ PINSTI
\r05880 LDX [,U++] old nfa
\r05884 CMPX #NUBLK-CFAOFF
\r05888 BNE *+7
\r05892 LDD #$1C
\r05896 BRA PINSTV-5
\r05900 LDB ,X
\r05904 ORB #MHID hide old
\r05908 STB ,X
\r05912 LEAX RTOFF,X fake voc
\r05916 BRA PINSTL
\r05920 PINSTI PULS B
\r05924 INCB
\r05928 LEAS B,S
\r05932 LDX ,U insert point
\r05936 BNE PINSTG
\r05940 LDD #$19
\r05944 BRA PINSTV-5
\r05948 PINSTG LDD 2,U vocab
\r05952 LDY 4,U nfa
\r05956 STY ,X link in
\r05960 STD GFAOFF,Y
\r05964 PINSTX LEAU 6,U
\r05970 PULS Y
\r05980 NEXT
\r06290 *
\r06300 FCC '0!'
\r06310 FCB 2
\r06320 FCB MFORE
\r06330 FDB PINSTA-CFAOFF
\r06340 FDB BIF+2
\r06350 FDB 0
\r06360 FDB 0
\r06370 INULL LDD #0
\r06380 STD >0
\r06390 NEXT
\r06395 *
\r06400 FCC '?0'
\r06410 FCB 2
\r06420 FCB MFORE
\r06430 FDB INULL-CFAOFF
\r06440 FDB BIF+2
\r06450 FDB 0
\r06460 FDB 0
\r06470 TNULL LDD >0
\r06480 BNE *+4
\r06490 NEXT
\r06500 LDD #5
\r06510 PSHU D
\r06520 LDX <UP
\r06530 LDA UWARN,X
\r06540 ORA #$80 abort
\r06550 STA UWARN,X
\r06560 JMP ERROR
\r06590 *
\r07000 FCC 'QUICK'
\r07010 FCB 5
\r07020 FCB MFORE
\r07030 FDB TNULL-CFAOFF
\r07040 FDB EDITOR+2
\r07050 FDB QSYNC-CFAOFF
\r07060 FDB 0
\r07070 QUICK PSHS Y
\r07080 LDY <UP
\r07090 LDD UEBLK,Y
\r07100 LDX URNUM,Y
\r07110 PSHS D,X nest
\r07120 PULU D
\r07130 STD UEBLK,Y
\r07140 LDD #0
\r07150 STD URNUM,Y
\r07160 DOCOL
\r07170 FDB CURSOR
\r07180 FDB QDUMP fill screen
\r07190 FDB QSYNC
\r07200 QUICKL FDB KEY
\r07210 FDB XMACH
\r07220 LDB 1,U
\r07230 CMPB #3 break?
\r07240 BEQ QUICKB
\r07250 DOCOL
\r07260 FDB QARROW
\r07270 FDB QSYNC
\r07280 FDB CURSOR
\r07290 FDB XMACH
\r07300 LDD 2,U
\r07310 BNE QUICKC
\r07320 LDB [,U++] from buffer
\r07330 BRA QUICKE
\r07340 QUICKC CMPB #'\
\r07350 BNE *+10
\r07360 DOCOL
\r07370 FDB KEY literal
\r07380 FDB XMACH
\r07390 PULU D
\r07400 STB [,U++] in buffer
\r07410 INC URNUM+1,Y bump
\r07420 LDA [UPREV,Y] update
\r07430 ORA #$80
\r07440 STA [UPREV,Y]
\r07450 QUICKE CLRA
\r07460 STD ,U
\r07470 DOCOL
\r07480 FDB EMIT
\r07485 FDB QSYNC
\r07490 FDB BRANCH
\r07500 FDB QUICKL-*-2
\r07510 QUICKB LEAU 2,U
\r07520 PULS D,X un-nest
\r07530 STD UEBLK,Y
\r07540 STX URNUM,Y
\r07550 PULS Y
\r07560 NEXT
\r07570 *
\r07800 FCC 'NODE.'
\r07810 FCB 5
\r07820 FCB MFORE
\r07830 FDB QUICK-CFAOFF
\r07840 FDB BIF+2
\r07850 FDB 0
\r07860 FDB 0
\r07870 NDOT DOCOL
\r07880 FDB DUP
\r07890 FDB IDDOT
\r07900 FDB SPACE
\r07910 FDB ZERO
\r07920 FDB DDOT
\r07930 FDB CR
\r07940 FDB QTERM
\r07943 FDB DUP
\r07945 FDB ZLESS break?
\r07950 FDB ZBR
\r07955 FDB 4
\r07960 FDB DROP
\r07965 FDB KEY
\r07970 FDB SEMIS
\r07990 *
\r08000 FCC 'VISIT'
\r08010 FCB 5
\r08020 FCB MFORE
\r08030 FDB NDOT-CFAOFF
\r08040 FDB BIF+2
\r08050 FDB 0
\r08060 FDB 0
\r08070 VISIT PSHS Y
\r08080 LDY <UP
\r08090 LDX UVMK,Y save
\r08100 PSHS D,X allocate
\r08110 STS UVMK,Y
\r08120 LDX ,U++
\r08130 PULU D
\r08140 BEQ VISITX vocab
\r08150 LDX ,X
\r08160 BEQ VISITX
\r08170 ADDD #CFAOFF function
\r08180 STD ,S
\r08190 VISITL PSHS X
\r08200 CMPS US0,Y overflow?
\r08210 BHI *+7
\r08220 LDB #$0B
\r08230 JMP QSTERR
\r08240 LDX LFTOFF,X
\r08250 VISITR BNE VISITL
\r08260 CMPS UVMK,Y
\r08270 BHS VISITX
\r08280 LDX ,S node
\r08290 LDD [UVMK,Y] function
\r08300 PSHU D,X
\r08310 DOCOL
\r08320 FDB EXEC
\r08330 FDB QSTACK
\r08340 FDB XMACH
\r08343 LDD ,U++
\r08346 BMI VISITX terminate?
\r08350 PULS X
\r08360 LDX RTOFF,X
\r08370 BRA VISITR
\r08375 VISITX LDS UVMK,Y
\r08380 PULS D,X
\r08390 STX UVMK,Y
\r08400 PULS Y
\r08410 NEXT
\r08490 *
\r08500 FCC 'VLIST'
\r08510 FCB 5
\r08520 FCB MFORE
\r08530 FDB VISIT-CFAOFF
\r08540 FDB EDITOR+2
\r08550 FDB VISIT-CFAOFF
\r08560 FDB VOCAB-CFAOFF
\r08570 VLIST DOCOL
\r08580 FDB LIT
\r08590 FDB NDOT-CFAOFF
\r08600 FDB ROOT
\r08610 FDB FETCH
\r08620 FDB VISIT
\r08630 FDB SEMIS
\r08690 *
\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\0\0u
\12