-*-TEXT-*- Directory Documentation This directory contains the 68000 assembly language version of the Scheme interpreter microcode. It also contains all support routines that are written in assembly language. All of the .ASM files here must be assembled on the 68000 and linked to build the interpreter. One important convention for use of this directory: files are all set up to be edited in EMACS' MIDAS mode, which means that they all contain page breaks and tabs. The Pascal system doesn't understand these things, and so the minimum processing necessary to assemble the files is to run M-X UNTABIFY over them. DO NOT SAVE THE UNTABIFIED VERSION BACK ON DISK!!!! The .ASM files should remain as they are; restoring the tabs is very painful. The simplest method is to save the file, run UNTABIFY, then save the untabified version as foo.UNTAB. Transmit the .UNTAB version up to the Chipmunk. These files should be stored on the ASM: directory on the Chipmunk. Their object should be stored on the CODE: directory. ********************************************************************** ASUTIL.ASM Assembly language versions of some useful functions, e.g. ASSQ, string handling, symbolic interning, etc. BASMOD.ASM "Base Module" of the interpreter. Actually the executive, this is where SCODE is interpreted, primitives dispatched, etc. BIGNUM.ASM Bignum package in assembler. EXT68.ASM The Pascal calling interface. This should be changed so that it accepts as an argument the actual environment frame; this will eliminate copying the arguments. FASLOAD.ASM The fasloader. Contains all the code necessary to locate and intern symbols in loaded, relocated SCODE. Uses the RELBLK module to relocate all the pointers in a code block. FIXNUM.ASM Fixnum package in assembler. FLONUM.ASM Interface to Pascal's flonum code. GCLOOP.ASM The core loop of the GC. HEXREP.ASM Some code for translating between ASCII hex representations and 32-bit integers. This has a Pascal interface on it, since this particular computation is hard to do in Pascal. LOOKUP.ASM Environment lookup routines. PSUBRS1.ASM Basic primitive subroutines. Includes things like type predicates, interim fixnum arithmetic. This module should likely be flushed. PSUBRS2.ASM Compound data structure primitives and GC interface. RACKS.ASM Rack operations. RELBLK.ASM Code to relocate all of the pointers in a block of SCODE. SCHLOD.ASM Scheme interpreter initialization. This code initializes all of the registers, sets up memory, and starts the interpreter. TRACE.ASM Assembly language hooks into the interpreter for PASPRT. This contains a number of DEFed addresses that can be referenced from the debugger. The callable routines are all set up to return to the address TROUT, at which a breakpoint can be set to stop them. UDEFS.ASM Type tables, dispatch tables, error codes.