; ** 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
                                                                                                                      