;›;         ADEFS.ASM›;›; Copyright 1983 by Action Computer Services›; All Rights Reserved.›;›; last modified July 29, 1983›;›RAMzap = 1 ; to zap or not to zap, that is the question?›;›; Page Zero defs:›;›; Alloc/Free defs, also used by compiler›AFbase EQU $80›AFlast EQU $82›AFcur  EQU $84›AFsize EQU $86›AFbest EQU $88›props  EQU $88›AFbsze EQU $8A›op     EQU $8A›lstToken EQU $8B ; prev. token value››; current window data / comp. vars›sp     EQU $8C›choff  EQU $8D›lnum   EQU $8E›curProc EQU $8E ; 2 bytes›dirty  EQU $8F›top    EQU $90 ; -> top line›bot    EQU $92 ; -> bottom line›whaddr EQU $92 ; -> current DO frame›cur    EQU $94 ; -> current line›x      EQU $96 ; don't use in comp.›y      EQU $97 ; don't use in comp.›nlines EQU $98›chan   EQU $98 ; current input file›yTop   EQU $99›defFlg EQU $99›indent EQU $9A›stackPtr EQU $9A ; op stack offset››buf    EQU $9B ; -> edit buf›insert EQU $9D ; insert/replace flag›delNxt EQU $9E ; ->, USED BY LEX››; arguments and temps›args   EQU $A0›arg0   EQU $A0›arg1   EQU $A1›arg2   EQU $A2›arg3   EQU $A3›arg4   EQU $A4›arg5   EQU $A5›arg6   EQU $A6›arg7   EQU $A7›arg8   EQU $A8›arg9   EQU $A9›arg10  EQU $AA›arg11  EQU $AB›arg12  EQU $AC›arg13  EQU $AD›arg14  EQU $AE›arg15  EQU $AF››; compiler vars›stBase   EQU $B0 ; s.t. base (page)›stGlobal EQU $B1 ; global hash table›stLocal  EQU $B3 ; local hash table›codeOff  EQU $B5 ; relocation offset›device   EQU $B7 ; default device›global   EQU $B8 ; global/local flag›stack    EQU $B9 ; value stack›frame    EQU $BB ; -> current frame›symtab   EQU $BD ; -> next s.t. entry›stMax    EQU $BF ; s.t. top (page)›addr     EQU $C0 ; token address›token    EQU $C2 ; token value›; following defs can be used during›; program execution (user program)›dirtyF   EQU $C3›spLn     EQU $C4 ; error char   ›curLn    EQU $C5 ; error line›curNxt   EQU $C7 ; next error line›nxtAddr  EQU $C9 ; next token address›; $CB-$CD never referenced›stG2     EQU $CE ; only used if big s.t.›arrayPtr EQU $D0 ; array mem. list›spNxt    EQU $D2 ; next error char›nxtToken EQU $D3 ; next token value›;›; ACTION! vars ($480 - $57D)›;›w1     EQU $480   ; window 1 data›top1   EQU $48F›ChCvt  EQU $490   ; char convert›codeBase EQU $491 ; 2 bytes›codeSize EQU $493 ; 2 bytes›stSp   EQU $495   ; s.t. size (pages)›mpc    EQU $496   ; edit/mon flag›gbase  EQU $497   ; 2 bytes›type   EQU $499›list   EQU $49A   ; listing flag›numArgs EQU $49B›cmdLn  EQU $49C   ; command line offset›param  EQU $49D›opMode EQU $49E›curWdw EQU $49F   ; window memory offset›curY   EQU $4A0   ; current Y reg (0/1/unknown)›lastCh EQU $4A1   ; last char›curCh  EQU $4A2   ; current char›SpareM EQU $4A3   ; -> spare mem›numWd  EQU $4A5   ; number of windows›allocErr EQU $4A6 ; INC on Alloc error›delBuf EQU $4A7   ; 6 bytes›frstChar EQU $4AD ; used for big s.t.›tagList EQU $4AE  ; 2 bytes›ChCvt1 EQU $4B0›w2     EQU $4B1   ; window 2 data›bckgrnd EQU $4C0  ; background color›procSP EQU $4C1   ; Break stack pointer›argBytes EQU $4C2›trace  EQU $4C3   ; trace flag›bigST  EQU $4C4   ; big s.t. flag›; $4C5 available››Jmps   EQU $4C6   ; see EDIT.CAR›; Jump table goes to $4FF›SegEnd EQU $4C6   ; segment RAM vec›curBank EQU $4C9  ; current ROM bank›stMask EQU $4CA   ; BIGST mask›Error  EQU $4CB   ; Error RAM vec›wSize  EQU $4CE   ; split window size›lineMax EQU $4CF  ; editor line max›ChCvt2 EQU $4D0›ExpEnd = $4D1     ; expression RAM vec›DclEnd = ExpEnd+3 ; declaration RAM vec›CGEnd = DclEnd+3  ; code generator RAM vec›AREnd = CGEnd+3   ; array ref RAM vec›SPLEnd = AREnd+3  ; end RAM vec›Alarm = SPLEnd+3  ; Bell RAM vec›EOLch = Alarm+3   ; editor EOL char›LSH = EOLch+1     ; math routines:›; LShift›; RShift›; MultI›; DivI›; RemI›; SArgs›ChCvt3 EQU $4F0›tvDisp EQU $4F1 ; display on/off›DispTb EQU $4F2 ; misc RAM vecs:›; normal character in ed›; ctrl-shift char in ed›SmtEnd = $4F8 ; statement RAM vec›; illegal monitor command RAM vec›STMrAdr = $4FE ; ST lookup routine address››subBuf  EQU $500  ; 40 bytes›findBuf EQU $528  ; 40 bytes›numBuf  EQU $550  ; 24 bytes›stkBase EQU $577››opStack EQU $580›; $580 TO ? is used for output of›; FASC routine.  Should not exceed›; 16 bytes, $58F (worst case?).›tempBuf EQU $590  ; 40 bytes›argTypes EQU $5B8 ;  8 bytes›EOF     EQU $5C0  ;  8 bytes›inbuf   EQU $5C8  ; 36 bytes›abt     EQU $5EC  ;  4 bytes›temps   EQU $5F0  ; 16 bytes›;›; system vars›;›WARMST EQU $8›DOSVEC EQU $A›DOSINI EQU $C›code   EQU $E   ; ap. high mem.›BRKKEY EQU $11›RTCLOK EQU $12›ADRESS EQU $64›LMARGIN EQU $52›RMARGIN EQU $53›ROWCRS EQU $54›COLCRS EQU $55›DINDEX EQU $57›SAVMSC EQU $58›OLDROW EQU $5A›OLDCOL EQU $5B›OLDADR EQU $5E›OLDCHR EQU $5D›csrCh = $5D›RAMTOP EQU $6A›FR0    EQU $D4›FR1    EQU $E0›CIX    EQU $F2›INBUFF EQU $F3›FLPTR  EQU $FC›SDMCTL EQU $22F›TXTMSC EQU $294›TABMAP EQU $2A3›COLOR4 EQU $2C8›MEMTOP EQU $2E5›MEMLO  EQU $2E7›CH     EQU $2FC›LBUFF  EQU $580   ; fp ASCII buf›CONSOL EQU $D01F›KBCODE EQU $D209›DMACTL EQU $D400›WSYNC  EQU $D40A›AFP    EQU $D800›FASC   EQU $D8E6›IFP    EQU $D9AA›FPI    EQU $D9D2›FADD   EQU $DA66›FSUB   EQU $DA60›FMUL   EQU $DADB›FDIV   EQU $DB28›LOG    EQU $DECD›LOG10  EQU $DED1›EXP10  EQU $DDCC›PLYEVL EQU $DD40›ZFR0   EQU $DA44›ZF1    EQU $DA46›FLD0R  EQU $DD89›FLD0P  EQU $DD8D›FLD1R  EQU $DD98›FLD1P  EQU $DD9C›FST0R  EQU $DDA7›FST0P  EQU $DDAB›FMOVE  EQU $DDB6›COLDSV EQU $E477›;›; window record offsets›;›Wsp    EQU 0›Wch    EQU 1›Wlnum  EQU 2›Wdirty EQU 3›Wtop   EQU 4›Wbot   EQU 6›Wcur   EQU 8›Wx     EQU 10›Wy     EQU 11›Wnlns  EQU 12 ; num lines›WyTop  EQU 13›Windent EQU 14›;›; system defs›;›EOL    EQU $9B›ESC    EQU $1B›;›; bank switching defs›;›ML = $B000›EL = $A000›LL = $A000›;LL = $8000›CL = $A000›;CL = $9000›BANK = $D500›EBANK = 3›LBANK = 0›CBANK = 4››