CC51B - Arquitectura de Computadores : Tarea #3
El ZX Spectrum 48K
Variables del Sistema

[ Indice | Anterior | Siguiente ]


Variables del Sistema

Las variables del sistema corresponden a un bloque de memoria entre las direcciones 23552 y 23734 que son usadas para almacenar distintos valores, y estados de programas en ejecución. En la tabla, la columna #Bytes indica el número de bytes usados, una X señala que introducir valores en estas direcciones (vía POKE) puede producir una caida del sistema y una N, para direcciones donde la introducción de un valor no tendrá efecto.



#Bytes  Dir.    Nombre  Uso


N8	23552	KSTATE	Used in reading the keyboard.
Nl	23560	LAST K	Stores newly pressed key.
1	23561	REPDEL	Time (in 50ths of a second   in 60ths of a second
			in N. America) that a key must be held down
			before it repeats. This starts off at 35, but you
			can POKE in other values.
1	23562	REPPER	Delay (in 50ths of a second   in 60ths of a
			second in N. America) between successive
			repeats of a key held down: initially 5.
N2	23563	DEFADD	Address of arguments of user defined function if
			one is being evaluated; otherwise 0.
Nl	23565	K DATA	Stores 2nd byte of colour controls entered from
			keyboard .
N2	23566	TVDATA	Stores bytes of coiour, AT and TAB controls
			going to television.
X38	23568	STRMS	Addresses of channels attached to streams.
2	23606	CHARS	256 less than address of character set (which
			starts with space and carries on to the copyright
			symbol). Normally in ROM, but you can set up
			your own in RAM and make CHARS point to it.
1	23608	RASP	Length of warning buzz.
1	23609	PIP	Length of keyboard click.
1	23610	ERR NR	1 less than the report code. Starts off at 255 (for 1) 
			so PEEK 23610 gives 255.
X1	23611	FLAGS	Various flags to control the BASIC system.
X1	23612	TV FLAG	Flags associated with the television.
X2	23613	ERR SP	Address of item on machine stack to be used as
			error return.
N2	23615	LIST SP	Address of return address from automatic listing.
N1	23617	MODE	Specifies K, L, C. E or G cursor.
2	23618	NEWPPC 	Line to be jumped to.
	23620 	NSPPC 	Statement number in line to be jumped to.
			Poking first NEWPPC and then NSPPC forces a
			jump to a specified statement in a line.
2	23621	PPC	Line number of statement currently being
			executed.
1	23623	SUBPPC	Number within line of statement being
			executed.
1	23624	BORDCR	Border colour * 8; also contains the attributes
			normally used for the lower half of the screen.
2	23625	E PPC	Number of current line (with program cursor).
X2	23627	VARS	Address of variables.
N2	23629	DEST	Address of variable in assignment.
X2	23631	CHANS	Address of channel data.
X2	23633	CURCHL	Address of information currently being used for
			input and output.
X2	23635	PROG	Address of BASIC program.
X2	23637	NXTLIN	Address of next line in program.
X2	23639	DATADD	Address of terminator of last DATA item.
X2	23641	E LINE	Address of command being typed in.
2	23643	K CUR	Address of cursor.
X2	23645	CH ADD	Address of the next character to be interpreted:
			the character after the argument of PEEK, or the
			NEWLINE at the end of a POKE statement.
2	23647	X PTR	Address of the character after the ? marker.
X2	23649	WORKSP 	Address of temporary work space.
X2	23651	STKBOT	Address of bottom of calculator stack.
X2	23653	STKEND	Address of start of spare space.
N1	23655	BREG	Calculator's b register.
N2	23656	MEM	Address of area used for calculator's memory.
			(Usually MEMBOT, but not always.)
	23658	FLAGS2	More flags.
X1	23659	DF SZ	The number of lines (including one blank line) in
			the lower part of the screen.
2	23660	S TOP	The number of the top program line in automatic
			listings.
2	23662	OLDPPC	Line number to which CONTINUE jumps.
	23664	OSPCC	Number within line of statement to which
			CONTINUE jumps.
N1	23665	FLAGX	Various flags.
N2	23666	STRLEN	Length of string type destination in assignment.
N2	23668	T ADDR	Address of next item in syntax table (very
			unlikely to be useful).
2	23670	SEED	The seed for RND. This is the variable that is set
			by RANDOMIZE.
3	23672	FRAMES	3 byte (least significant first), frame counter.
			Incremented every 20ms. See Chapter 18.
2	23675	UDG	Address of 1st user defined graphic You can
			change this for instance to save space by having
			fewer user defined graphics.
1	23677 	COORDS 	x-coordinate of last point plotted.
1	23678		y-coordinate of last point plotted.
1	23679	P POSN	33 column number of printer position
1	23680	PR CC	Less significant byte of address of next position
			for LPRINT to print at (in printer buffer).
1	23681		Not used.
2	23682	ECHO E	33 column number and 24 line number (in lower
			half) of end of input buffer.
2	23684	DF CC	Address in display file of PRINT position.
2	23686	DFCCL	Like DF CC for lower part of screen.
X1	23688	S POSN	33 column number for PRINT position
X1	23689		24 line number for PRINT position.
X2	23690	SPOSNL	Like S POSN for lower part
	23692	SCR CT	Counts scrolls: it is always 1 more than the
			number of scrolls that will be done before
			stopping with scroll? If you keep poking this
			with a number bigger than 1 (say 255), the
			screen will scroll on and on without asking you.
1	23693	ATTR P	Permanent current colours, etc (as set up by
			colour statements).
1	23694	MASK P	Used for transparent colours, etc. Any bit that is 1
			shows that the corresponding attribute bit is
			taken not from ATTR P, but from what is already
			on the screen.
N1	23695	ATTR T	Temporary current colours, etc (as set up by
			colour items).
N1	23696	MASK T	Like MASK P, but temporary.
	23697	P FLAG	More flags.
N30	23698	MEMBOT	Calculator's memory area; used to store numbers 
			that cannot conveniently be put on the calculator 
			stack.
2	23728		Not used.
2	23730	RAMTOP 	Address of last byte of BASIC system area.
2	23732	P RAMT 	Address of last byte of physical RAM.