1 00010 * EQUates and MACRO definitions for BIF
\r00020 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
\r01000 *
\r{ bifc_vm.c:
\r01010 * JMP to next icode word
\r01020 NEXT MACRO
\r01030 JMP [,Y++]
\r01040 ENDM
\r01050 *
\r}
\r{ symbol.h:
\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 *
\r}
\r{ bifc_vm.c
\r01400 * initiate an icode list
\r01410 DOCOL MACRO
\r01420 JSR <XCOL
\r01430 ENDM
\r01440 *
\r}
\r{ symbol.c
\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 *
\r}
\r{ unused
\r02000 * add D to top of stack
\r02010 ADDTOP MACRO
\r02020 ADDD ,U
\r02030 STD ,U
\r02040 JMP [,Y++]
\r02050 ENDM
\r02060 *
\r}
\r