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