; ** ZGRASS FIXED ADDRESS RAM ** ; ** NO VALUE INITIALIZATION ALLOWED HERE ** ; ; RAM POSITION-SIZE EQUATES: BOTRAM=08000H RAMSTRT=08950H RAMEND=0BFFFH MAXFRG=80H FRAGSIZ=00800H .LOC BOTRAM STAKTOP: .BLKW 100 STACK: ; FOLLOWING WORD MUST BE ON AN EVEN ADDRESS: .BLKW 1 ; FREE FOR FUTURE EXPANSION CLEARS: ;CLEAR FROM HERE TO USREND AT RESTART TEMPHDR:.BLKW 1 ;TEMPORARY LIST HEAD ARGSTK: .BLKW 195 ;ARG STACK ARGEND: .BLKW 5 ;SLOP AREA SAVESP: .BLKW 1 ;HOLDS SP FOR ERROR MACTOP: .BLKW 1 ;CURRENT MIB HELD HERE CSFLAG: .BLKB 1 ;^S FLAG HELD HERE TTYBEG: .BLKB 128 ;TTYBUFFER TTYEND: TTYPTR: .BLKW 1 ;CONSUMER POINTER TTYINT: .BLKW 1 ;PRODUCER POINTER TEMPS: .BLKW 1 ;LISTHEAD FOR TEMPS OUTOFF: .BLKB 1 ;USED BY PRINT DOLPLH: .BLKB 2 ;FOR DOLOOP STUFF DOLPPT: .BLKB 2 ;DITTO FSTINT: .BLKB 16*26 ;ROOM FOR 16 INTEGERS FSTDOL: .BLKB 16 ;ROOM FOR $ ;NEXT BYTE UP FOR GRABS--TOM UARTFL: .BLKB 1 ; UART MODE FLAG (TTY OR TAPE) OLDKEY: .BLKB 1 ; KEYCODE FROM LAST SCAN VDCHAR: .BLKB 1 ; CHAR TO TYPE ON VDM SCREEN OLDCUR: .BLKB 1 ; CURSOR RESTORE ADDR OLDCHR: .BLKB 1 ; CHARACTER BENEATH CURSOR ;STORAGE NEEDED BY EDIT EDNAME: .BLKB 2 ;HOLDS NAMEBLOCK ADDR FIRST: ; ** TEMP ** NUMBUF: .BLKB 2 ; CURRENT: ; ** TEMP ** EDNEWS: .BLKB 2 ;HOLDS NEW STRING ADDR POINTER: ; ** TEMP ** EDCCNT: .BLKB 2 ;HOLDS ^F COUNT BOTTOM: ; ** TEMP ** EDPTRL: .BLKB 2 ;HOLDS CURRENT LINE EDPTRC: .BLKB 2 ;HOLDS CURRENT CHAR PTR EDBCNT: .BLKB 2 ;HOLDS ALLOC'D BC COUNT ;TAPE STORAGE AREA TAPCON: .BLKW 1 ; CONSUMER POINTER TAPPRO: .BLKW 1 ; PRODUCER POINTER TAPBUF: .BLKB 128 ; ACTUAL BUFFER TBFEND: ; ONE PAST LAST BUFFER CELL KEYPTK: .BLKB 1 ;FOR KEYPAD SCANNER SUBSTUFF: .BLKB 2 ;FOR KEYPAD/LINEP USE MACSTUFF: .BLKB 2 ;TO SEE IF MACROS/ ;SUBRTNS ARE PENDING RMDTMP: .BLKB 5 ; NOLAS REMAINDER TMP AREA SOPRSP: .BLKW 1 SOPRSZ: .BLKB 1 CPLFLG:.BLKB 1 ;COMPILER FLAG PRINTR: .BLKB 2 ;PRINTER LOOPCNT:.BLKB 2 ;FOR LOOPMAX CMD VIPLH: .BLKW 1 ;VIP LIST HEADER ;NOLA'S EVAL STORAGE FOLLOWS OPRL=20 OPRSTK: .BLKB OPRL ;OPERATOR STACK OPRSP: .BLKW 1 ;OPERATOR STACK POINTER OPRSZ: .BLKB 1 ;OPERATOR STACK SIZE PCNT: .BLKB 1 ;PAREN COUNT RANSHT: .BLKB 4 ;FOR RANDOM NUMBERS ; ; ; VOICE CONTROL BLOCKS VOICE0: .BLKB 5 ; NOISE .BLKB 5 ; TONE A .BLKB 5 ; TONE B .BLKB 1 ; TONE C V3PTR: .BLKB 4 ; STRING ADDRESS FOR FEEDBACK DEVMCR: DUMBST: .BLKB 2 ; STRING USED FOR FEEDBACK IF ON DEVVAR: DEVCL0: .BLKW 1 DEVCL1: .BLKW 1 DEVCL2: .BLKW 1 DEVCL3: .BLKW 1 DEVCL4: .BLKW 1 DEVCL5: .BLKW 1 DEVCL6: .BLKW 1 DEVCL7: .BLKW 1 DEVBL: .BLKW 1 DEVMO: .BLKW 1 DEVNT: .BLKW 1 DEVHCB: .BLKW 1 DEVVBL: .BLKW 1 GWADDR: DEVWXR: .BLKW 1 ; GRAPHICS WINDOW X RIGHT DEVWXL: .BLKW 1 ; GRAPHICS WINDOW X LEFT DEVWYT: .BLKW 1 ; Y TOP DEVWYB: .BLKW 1 ; Y BOTTOM SCRWIN: ; BUILT IN CHARACTER WINDOW AREA .BLKW 12 DEVIF: .BLKW 1 HCAREA: .BLKW 16 ; HAND CONTROL AREA DEVXCD: .BLKW 1 DEVYCD: .BLKW 1 DEVNM: .BLKW 1 DEVVN: .BLKW 1 DEVTNA: .BLKW 1 DEVVA: .BLKW 1 DEVTNB: .BLKW 1 DEVVB: .BLKW 1 DEVTNC: .BLKW 1 DEVVC: .BLKW 1 DEVVS: .BLKW 1 DEVVD: .BLKW 1 ;FLAGS SET BY CONTROL CHARACTERS FLAGS: DEVFB: .BLKB 1 ;KEY-AUDIO ON/OFF 0=ON BACKGR: .BLKB 1 ;NO CNTLB CNTRLC: .BLKB 1 ;CNTRLC DDTON: .BLKB 1 ;SINGLE STEP ON/OFF 0=OFF VDNLF: .BLKB 1 ;CHARACTER TO SCREEN ECHO ON/OFF 0=ON FOREGR: .BLKB 1 ;VIP STUFF ON/OFF 0=ON .BLKB 1 ;NO CNTLG FCNTH: .BLKB 1 ;NO CHTLH FCNTI: .BLKB 1 ;TAB FCNTJ: .BLKB 1 ;CNTRLJ CLEARS ALL FLAGS FCNTK: .BLKB 1 ;CNTRLK ;CLEAR SCREEN FCNTL: .BLKB 1 ;NO CNTRL .BLKB 1 ;CR .BLKB 1 ;CNTRLN NOISE OFF CNTRLO: .BLKB 1 ;PRINT OFF TILL ZLINEP PONOFF: .BLKB 1 ;PRINT ON/OFF (ON SET BY Q) .BLKB 1 ;CTRLQ (USES PONOFF THOUGH) .BLKB 1 ;CNTRLR (RESETS COLOR MAP) CHARSL: .BLKB 1 ;CHARSET S/L 0=SMALL .BLKB 1 ;CNTRLT SETS CHARW TO 2 LINES .BLKB 1 ;CNTRLU FCNTV: .BLKB 1 ;NO CNTRLV .BLKB 1 ;SETS CHARW TO WHOLE SCREEN LISTON: .BLKB 1 ;CNTRLX (LIST ON/OFF) 0=OFF FCNTY: .BLKB 1 ;CNTRLY DOES A USEMAP CNTRLZ: .BLKB 1 ;CNTRLZ FLAG 0=NO ACTION ; NOLAS STUFF FREELST: .BLKB 2 FWDPTR: .BLKW 1 ; GRAPHICS STUFF INCRO: .BLKB 2 MNMX: .BLKB 2 PIXVAL: .BLKB 1 WRMODE: .BLKB 1 OLDXY: .BLKB 2 USREND: KBLOCK: .BLKB $MIBEND+129 ;FOR NORMAL TTY MIB CSBLOK: .BLKB $MIBEND+129 ;FOR ^S MIB VIPFLG: .BLKB 1 ;FOR VIP TRIGGER MACSAV: .BLKB 2 ;FOR SAVING MACTOP CPLTMP: .BLKB 2 ;FOR SAVING CPL ADDR LOCTAB: .BLKB 2 ;LOCAL CPL LISTHEAD LOCNUM: .BLKB 1 ;LOCAL VARIABLE COUNTER ONECNT: .BLKB 1 ;FOR ONERROR LOOPS ARGNUM: .BLKB 1 ;FOR ARG COUNTER/GETERR CPLERP: .BLKB 2 ;FOR COMPILE-TIME ERRORS TAPFLG: .BLKB 1 ; BALLY BASIC TAPE INTERFACE IN USE FLAG WINPTR: .BLKW 1 ; ACTIVE WINDOW POINTER VSTRTBL: .BLKW 4 ; POINTERS TO PLAY STRINGS INTTMR: .BLKB 1 ; INTERRUPT DIVIDER TIMER MCTMR: .BLKB 1 ; MORSE CODE TIMER MCCHAR: .BLKB 1 ; MORSE CODE CHAR COPY XDELTA: .BLKW 1 ; GRAPHICS GOODIES YDELTA: .BLKW 1 XINCRO: .BLKW 1 YINCRO: .BLKW 1 LMX: .BLKW 1 LMN: .BLKW 1 LCTR: .BLKW 1 XOLDE: .BLKW 1 YOLDE: .BLKW 1 CURPOS: ; EDITOR CURSOR POSITION CURPSX: .BLKB 1 CURPSY: .BLKB 1 TXTMOD: .BLKB 1 ; TEXT MODE FLAG TXTSCF: TXTSSX: .BLKB 1 TXTSSY: .BLKB 1 DISCO: .BLKB 1 ; DISC TO USE FOR GET/PUT JUNK: .BLKB 81 ;FOR GRABS TMPARG: .BLKB 32 ; USED FOR CALLING COMMANDS FROM ASM LANG TXTWIN: .BLKB 24 ; WINDOW FOR 'TEXT' COMMAND KEYTRK: .BLKB 8 ; KEYBOARD TRACKING AREA KEYFLG: .BLKB 1 ; SHIFT LOCK/MODE FLAG BYTE STRSIZ: .BLKB 2 ; EDITOR STRING SIZE NSADDR: .BLKB 2 ; NEW STRING ADDR EDPO: .BLKB 2 ; OLD POINTER EDPN: .BLKB 2 ; NEW POINTER EDOCX: .BLKB 2 ; OLD CX EDOCY: .BLKB 2 ; OLD CY EDNCX: .BLKB 2 ; NEW CX EDNCY: .BLKB 2 ; NEW CY NEWBOT: .BLKB 2 ; NEW BOTTOM EDLONG: .BLKB 2 ; LONGEST LENGTH CHANGED CURCX: .BLKB 2 ; CURSOR CX CURCY: .BLKB 2 ; CURSOR CY TOP: .BLKB 2 ; EDITOR TOP OF SCREEN EDSTR: .BLKB 2 ; EDITOR STRING ADDRESS EDMODE: .BLKB 1 ; EDITOR MODE ;NOLA'S CPL STUFF-BUFFER ALSO USED BY INPUT INPLIN: CPLIN: .BLKB CP.MXL+CP.MXL ;MAX LENGTH OF CPL BUFFER CPREF: .BLKB CP.MXR ;MAX NUMBER OF SKIPS/GOTOS ICPLIN: .BLKB 2 ;INDEX INTO CPLIN ICPREF: .BLKB 2 ;INDEX INTO CPLREF CURLIN: .BLKB 1 ;CURRENT LINE ZGREND: ;FIRST LOC OF USER ALLOC'D .RELOC ;STORAGE--USED BY CORINI