Recuerdos de 8 Bits


Aquellos Maravillosos Bits


Artículo realizado por
José Conde "Rewin".







La memoria del Spectrum 16K

El spectrum (único y último :´-( snif ) manejaba la memoria en lo que de aquellas se llamaban octetos (bytes despues de la explosión del esnobismo). Las direcciones de memoria iban de la 0 a la FFFFh.
En el spectrum 16 K, unicamente existían las posiciones de memoria de la 0 a la 7FFFh. Esta se dividía así:

ROM

RAM

0-3FFFh (16 KB)

4000h-7FFFh (16 KB)


Para inspeccionar el contenido de una casilla de memoria, empleamos la instrucción Basic PEEK . Este programa, lista los primeros 21 octetos de la ROM (y sus direcciones):

10 PRINT "Direcciones"; TAB 8; "Octeto"
20 FOR a=0 TO 20
30 PRINT a; TAB 8; PEEK a
40 NEXT a



Para variar el contenido de una dirección de memoria (sólo si es RAM), empleamos la sentencia POKE (introducir), cuya forma es:


POKE dirección, nuevo contenido


Por ejemplo, si se escribe:

POKE 31000,57

El octeto de la dirección 31000 se le da el nuevo valor 57. Si escribimos:
PRINT PEEK 31000

comprobamos que hemos modificado la dirección.
Los nuevos valores introducidos en la memoria han de estar comprendidos entre el -255 y el +255.

Ahora hecharemos un vistazo más extenso a la memoria RAM:

La memoria está dividida en zonas diferentes para almacenar distintos tipos de información. Esta es la distribución de la memoria:

Zona
Direcciones
Fichero de presentación visual
16384-22528
Atributos
22529-23296
Memoria intermedia de la impresora
23297-23552
Variables del sistema
23553-23724
Mapas de Microdrive
23735-CHANS
Información para canales + 80h
CHANS-PROG
Programa en Basic
PROG-VARS
Variables + 80h
VARS-E_LINE
Comando o línea de programa que se está corrigiendo + NL + 80h
E_LINE-WORKSP
Entrada de datos + NL + Espacio tareas eventuales
WORKSP-STKBOT
Pila de la calculadora
STKBOT-STKEND
Reserva
STKEND-sp
Pila de Máquina + Pila de GOSUB + ?
sp-RAM TOP
3Eh
RAM TOP-UDG
Gráficos definidos por el ususario
UDG-P_RAMT


Estas zonas son lo suficientemente grandes para contener la información que contienen realmente, por lo que si se añade algo más en algún punto determinado, se hace sitio empujando hacia arriba todo lo que queda por encima de este punto. Y al contrario, si se borra información, entonces todo se empuja hacia abajo.

El archivo para la representación en pantalla almacena una imagen de televisión. Cada carácter de la pantalla posee un cuadrado de 8x8 puntos y cada punto puede tomar el valor 0 (papel) o 1 (tinta):así, utilizando la notación binaria se puede almacenar la configuración como 8 octetos, uno para cada fila. Sin embargo, estos 8 octetos no se almacenan juntos, sino que lo hacen los 32 caracteres de una línea sencilla, como una traza de 32 octetos, ya que esto es lo que necesita el haza electrónico de la televisión a medida que barre la pantalla de izquierda a derecha. Como quiera que la imagen completa tiene 24 líneas de 8 barridos cada una, podría esperarse que hubiera que hubiera que almacenarse 172 barridos, en total, correlativos, pero no es verdad. Primero vienen las trazas superiores de las líneas 0 a 7. A continuación se repite el mismo proceso para las líneas 8 a 15, y tras ello se hace lo mismo para las líneas 16 a 23.

Los atributos son los colores, etc., para cada posición de carácter, mediante el uso de ATTR . Todo ello se almacena línea tras línea en el orden que se espera.

La memoria temporal de la impresora almacena los caracteres destinados a impresión.

Las variables del sistema contienen varios elemntos de información que indican el ordenador en qué estado se halla. Nos conformaremos con citar que existen algunas (llamdas CHANS, PROG, VARS, E_LINE, , etc.) que contienen las direcciones de los límites entre las distintas zonas de la memoria. No son variables de Basic, por lo que sus nombres noi serán identificados por el ordenador.

Los mapas de la unidad de Microdrive sólo existen cuando se utiliza este dispositivo, por lo que, normalmente, sus posiciones están vacías.

La zona para información de los canales contiene información, pertinenete sobre los dispositivos de entrada y salida, es decir, el teclado(con la mitad inferior de la pantalla), la mitad superior de la pantalla y la impresora.

Cada línea del programa Basic tiene la forma:

Campo
Longitud
Número de línea 2 octetos
Longitud del texto+ENTER 2 octetos
Texto xxxxx
ENTER 1 octeto (00001101)






RECUERDOS DE 8 BITS
a
MACEDONIA Magazine