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
|
|||
|
|