92 lines
3.5 KiB
Plaintext
92 lines
3.5 KiB
Plaintext
; =====> SCHEMED.REF
|
||
; Copyright 1984,1985 by Texas Instruments Incorporated.
|
||
; All Rights Reserved.
|
||
; Last Modification: 06 January 1986
|
||
|
||
extrn pagetabl:word ; Page Table
|
||
extrn attrib:word ; Page Attribute Table
|
||
extrn nextcell:word ; Next available location table
|
||
extrn pagelink:word ; Page link table
|
||
extrn ptype:word ; Page type table
|
||
extrn psize:word ; Page size table
|
||
|
||
extrn PAGESIZE:word ; Page size
|
||
|
||
; Table of pages for allocation by type
|
||
extrn pagelist:word ; Page table
|
||
extrn listpage:word ; [0] Page number for list cell allocation
|
||
extrn fixpage:word ; [1] Page number for fixnum allocation
|
||
extrn flopage:word ; [2] Page number for flonum allocation
|
||
extrn bigpage:word ; [3] Page number for bignum allocation
|
||
extrn sympage:word ; [4] Page number for symbol allocation
|
||
extrn strpage:word ; [5] Page number for string allocation
|
||
extrn vectpage:word ; [6] Page number for vector allocation
|
||
extrn contpage:word ; [7] Page number for continuation allocation
|
||
extrn clospage:word ; [8] Page number for closure allocation
|
||
extrn freepage:word ; [9] Page number for free pages list
|
||
extrn codepage:word ; [10] Page number for code page allocation
|
||
extrn refpage:word ; [11] Page number for ref cell allocation
|
||
extrn portpage:word ; [12] Page number for port cell allocation
|
||
|
||
; Table of page attributes by data object type
|
||
extrn pageattr:word
|
||
|
||
; System tables
|
||
extrn hash_pag:byte, hash_dis:word ; oblist's hash table
|
||
extrn prop_pag:byte, prop_dis:word ; property list hash table
|
||
extrn obj_ht:byte ; object hash table
|
||
|
||
; Table of bits to "or" in
|
||
extrn bitable:word
|
||
|
||
extrn nextpage:word ; Next unused page number
|
||
extrn lastpage:word ; Last unused page number
|
||
extrn nextpara:word ; Next available paragraph number
|
||
|
||
; The interpreter's registers
|
||
extrn reg0_pag:word, reg0_dis:word, reg0:dword
|
||
extrn reg1_pag:word, reg1_dis:word, reg1:dword
|
||
extrn FNV_pag:word, FNV_dis:word, FNV_reg:dword
|
||
extrn GNV_pag:word, GNV_dis:word, GNV_reg:dword
|
||
extrn CB_pag:word, CB_dis:word, CB_reg:dword
|
||
extrn TRNS_pag:word, TRNS_dis:word, TRNS_reg:dword
|
||
extrn tmp_page:word, tmp_disp:word, tmp_reg:dword
|
||
extrn tm2_page:word, tm2_disp:word, tm2_reg:dword
|
||
extrn tmp_adr:word, tm2_adr:word
|
||
extrn PREV_pag:word, PREV_dis:word, PREV_reg:dword
|
||
extrn CON_PAGE:word, CON_DISP:word
|
||
extrn TOS:word, FP:word, BASE:word
|
||
extrn FNV_save:word, STL_save:word
|
||
extrn nil_reg:dword
|
||
|
||
; The Scheme runtime stack
|
||
extrn S_stack:byte
|
||
|
||
; Scheme-reset state variables
|
||
extrn FP_save:word, RST_ent:word
|
||
|
||
; Scheme debugger entry point offset
|
||
extrn ERR_ent:word
|
||
extrn VM_debug:word ; flag indicating VM debug mode
|
||
extrn s_break:word ; flag indicating shift-break key depressed
|
||
|
||
; Current port
|
||
extrn iooffs:word, ioseg:word
|
||
|
||
; Abort stack pointer
|
||
extrn abadr:word
|
||
|
||
; Machine Type (Manufacturer) Flag
|
||
extrn PC_MAKE:word
|
||
|
||
; Access to Lattice C's character attribute data structures
|
||
extrn _ctype:byte
|
||
_U equ 1 ; uppercase
|
||
_L equ 2 ; lowercase
|
||
_N equ 4 ; number
|
||
_S equ 8 ; space
|
||
_P equ 16 ; punctuation
|
||
_C equ 32 ; control character
|
||
_B equ 64 ; blank
|
||
_X equ 128 ; hexadecimal digit
|
||
|