Página Cero
Las posiciones de cero a 255 ($0 a $FF) se denominan "página cero" y tienen especial importancia para los programadores de lenguaje ensamblador ya que la máquina accede a estas ubicaciones más rápida y fácilmente.
Las ubicaciones cero a 127 ($0 a $7F) están reservadas como la página cero del sistema operativo, mientras que de 128 a 255 ($80 a $FF) son la página cero del BASIC y la usada por el usuario en RAM.
Las ubicaciones cero a 1792 ($0 a $700) se usan como sistema operativo y (si el cartucho está presente) 8K BASIC RAM (excepto la página seis). Las ubicaciones cero a 8191 ($0 a $1FFF) son el mínimo requerido para la operación (8K).
Las ubicaciones dos a siete no se borran en ninguna operación de arranque.
Nombre | Decimal | Hexadecimal | Descripción |
---|---|---|---|
POKMSK | 16 | $10 | Tecla BREAR, Para desactivar esta tecla debemos usar los siguientes comandos : POKE 16,112:POKE 53774,112 |
APPMHI | 14, 15 | $D, $E | Ubicación más alta usada por BASIC (LSB, MSB) |
RTCLOK | 18,19,20 | $12, $13, $14 |
Reloj del computador, Para cálculo de tiempo debemos usar la siguiente fórmula: TIEMPO = INT((PEEK(18)*65536+PEEK(19)*256+PEEK(20))/60) Para mostrar la hora en modo "hora:minuto:segundo" se requiere un programa específico. |
BPTR | 61 | $3D | Esta localización es un puntero para el siguiente byte a usar en el buffer del casete. |
FEOF | 63 | $3F | Fin de archivo de casete: Si contiene un cero, significa que aún quedan datos, cualquier otro número indica que se ha encontrado el fin de archivo. |
SOUNDR | 65 | $41 | Sonido de entrada/salida (I/O): Pokee esta dirección con un cero y el traspaso de información a los periféricos será silenciosa. Con otro número regresará el sonido. |
FMZSPG | 67, 73 | $43, $49 | Sistema de administrador de archivos de disco (FMS) página cero de registros (siete bytes). |
ATRACT | 77 | $4D | Cambio de color automático: Si su programa no utiliza el teclado por más de 7 minutos, pokee esta dirección con cero periódicamente para evitar la rotación de colores. Para comenzar inmediatamente la rotación pokee 77 con 128. |
LMARGN | 82 | $52 | Margen izquierdo: El Sistema Operativo pone aquí un 2. Si desea cambiar este margen, ponga aquí el número correspondiente al margen deseado. Ej: POKE 82,20 (20=número de columnas a la izquierda del margen.) |
RMARGN | 83 | $53 | Igual que 82 pero refleja la posición del margen derecho, inicializada en 39. Estas posiciones sólo son válidas para gráfico 0 y ventana de texto. Dicha ventana consiste en 4 líneas de gráfico cero en la parte inferior de otro modo gráfico, por ejemplo: gráfico 8. |
ROWCRS | 84 | $54 | Posición de fila actual del cursor: Cero corresponde a la parte superior de la pantalla. |
COLCRS | 85, 86 | $55, $56 | Posición de columna actual del cursor: Cero corresponde a la posición izquierda de la pantalla. Debe usarse el siguiente cálculo: COL = PEEK(85) + PEEK(86)*256 |
SAVMSC | 88, 89 | $58, $59 | Inicio de la pantalla en RAM: Estas posiciones determinan en que parte de la RAM se encuentra el primer byte (parte superior izquierda) de la pantalla. Para imprimir el carácter A con poke usar la siguiente instrucción: POKE PEEK(88)+PEEK(89)*256,ASC("A")-32. |
RAMTOP | 106 | $6A | Cantidad de RAM en páginas (una página=256 bytes). Para ubicar el fin de la memoria RAM use la siguiente instrucción: RAM=PEEK(106)*256. Para reservar Memoria debe usar la siguiente instrucción: POKE 106,PEEK(106)-número de páginas a reservar. |
LOMEM | 128, 129 | $80, $81 | Puntero al comienzo de la RAM disponible. Trabaja conjuntamente con 743 y 744. Es una buena idea modificar este puntero para reservar memoria para datos o rutinas en Assembler. |
VNTP | 130, 131 | $82, $83 | Puntero al comienzo de la tabla de nombres de variables del Basic. |
VNTD | 132, 133 | $84, $85 | Puntero al fin de la tabla anterior. |
VVTP | 134, 135 | $86, $87 | Puntero de la tabla de valores de las variables. |
STMTAB | 136, 137 | $88, $89 | Puntero al comienzo del programa de Basic codificado. |
STMCUR | 138, 139 | $8A, $8B | Puntero a la línea codificada que está siendo utilizada actualmente por el Basic. |
STARP | 140, 141 | $8C, $8D | Dirección de las matrices y variables alfanuméricas. Fin del programa codificado. |
MEMTOP | 144, 145 | $90, $91 | Fin de la memoria utilizada por el Basic. |
160, 161 | $A0, $A1 | Número de línea en la cual se encuentra trabajando el Basic. | |
STOPLN | 186, 187 | $BA, $BB | Línea en la cual se detuvo la ejecución del programa Basic. |
ERRSAVE | 195 | $C3 | Número de error que causo la detención del programa o la utilización de la instrucción "TRAP". |
FR0 | 212, 217 | $D4, $D9 | Usados por el paquete de coma flotante. |