Atariware Wiki: Cambios en XL-XE

https://www.atariware.cl/wiki     Versión: 10 (14.10.2024 20:03)

Cambios en XL-XE

La información aquí se refiere a los modelos 600XL, 800XL, 1200XL, 65XE y 130XE. Excepto por el 1200XL, los modelos XL y XE son virtualmente idénticos entre sí.

La gran mayoría se mantuvo de las primeras página, pocas fueron reubicadas y otras nuevas se agregaron al final.

Decimal HexadecimalNombreDescripción
43234$A8E2BASIC ROMEntrega la versión de la revisión del Basic que contiene el chip:
  • 162 es revisión A
  • 96 es revisión B
  • 234 es revisión C
52224, 53247$CC00, $CFFFCHARSET2Conjunto de caracteres internacionales, ensamblado de la misma manera que el conjunto de caracteres estándar en 57344 ($E000). Hay dos juegos de caracteres en la serie XL/XE, y puedes cambiar entre ellos por POKE 756,224 "Estándar" o POKE 756,204 "Internacional".
58481$E471SELFTSTEntrar al chequeo del hadware llamado SELFT-TEST, desde basic X=USR(58481) y en ensamblador JMP $E471. En el 1200XL se ira al logo Atari animado que contiene este equipo en particular.
8511$E48FGPDVVVector genérico de propósito general del manejador de dispositivos paralelos. Puede utilizarlo para hablar con cualquier dispositivo de puerto de expansión; mueva esta dirección a HATABS (794-831; $31A-$33F) junto con un nombre de dispositivo apropiado como V: o T:. Véase el apéndice sobre el bus de expansión. Hay siete vectores en esta tabla, correspondientes a las tablas de vectores en 58348 ($E400).
58528, 58560$E4A0, $E4C0....Zona en blanco (todo ceros).
58561$E4C1ICIOInicializar CIO.
58588$E4DCIINRutina de error IOCB no abierto.
58591E4DFCIOEl área CIO incluye las siguientes rutinas:

58640, $E510 - Error de dispositivo inexistente.
58645, $E515 - Cargar manejador de periféricos para OPEN.
58650, $E51A - Ejecutar comando CIO.
58687, $E53F - Ejecutar comando OPEN.
58716, $E55C - Inicializar IOCB para OPEN.
58742, $E576 - Sondear periférico para OPEN.
58748, $E57C - Ejecutar comando CLOSE.
58775, $E597 - Ejecutar comandos STATUS y SPECIAL.
58802, $E5B2 - Ejecutar comando GET.
58910, $E610 - Ejecutar comando PUT.
58992, $E670 - Establecer estado.
58994, $E672 - Completar operación CIO.
59029, $E695 - Computar punto de entrada del manejador.
59067, $E6BB - Disminuir la longitud del buffer.
59080, $E6C8 - Disminuir puntero de buffer.
59089, $E6D1 - Incrementar puntero de buffer.
59096, $E6D8 - Establecer longitud final de buffer.
59114, $E6EA - Ejecutar comando handler.
59124, $E6F4 - Invocar manejador de dispositivo.
59135, $E6FF - Buscar tabla handler.
59158, $E716 - Buscar manejador de dispositivo.
59193E739PHRCargador de periféricos. Incluye las siguientes rutinas:

59193, $E739 - Inicialización.
59326, $E7BE - Realizar sondeo.
59358, $E7DE - Cargar manejador.
59414, $E816 - Obtener rutina byte.
59443, $E833 - Obtener siguiente bloque de carga.
59485, $E85D - Buscar cadena de manejadores.
59540, $E894 - Inicialización de inicio en caliente del manejador.
59544, $E898 - Inicialización de arranque en caliente con encadenamiento.
59550, $E89E - Inicialización en frío.
59584, $E8C0 - Inicializar manejador y actualizar MEMLO.
59648, $E900 - Inicializar manejador.
59669, $E915 - Desvinculación del manejador.
59740E95CSIO La sección SIO incluye las siguientes rutinas:

59740, $E95C - Inicialización.
59761, $E971 - Rutina principal SIO.
59946, $EA2A - Completar operación SIO.
59959, $EA37 - Esperar finalización o ACK.
60040, $EA88 - Enviar buffer al bus serie.
60077, $EAAD - Procesar IRQ de salida serie lista.
60140, $EAEC - Procesar salida serie completa.
60157, $EAFD - Recibir.
60199, $EB27 - Indicar tiempo de espera.
60204, $EB2C - Procesar entrada serie lista IRQ.
60295, $EB87 - Fijar punteros de buffer.
60317, $EB9D - Procesar E/S de casete.
60433, $EC11 - Expiración del temporizador.
60439, $EC17 - Habilitar envío SIO.
60480, $EC40 - Habilitar recepción SIO.
60502, $EC56 - Configurar para enviar o recibir.
60548, $EC84 - Desactivar envío o recepción.
60570, $EC9A - Obtener tiempo de espera del dispositivo.
60585, $ECA9 - Tabla de manejadores de interrupción SIO (seis bytes).
60591, $ECAF - Enviar a dispositivo inteligente.
60608, $ECC0 - Activar temporizador y esperar.
60616, $ECC8 - Calcula la velocidad en baudios.
60718, $ED2E - Ajustar valor VCOUNT.
60733, $ED3D - Fijar velocidad inicial en baudios.
60871, $EDC7 - Procesar tecla BREAK.
60898, $EDE2 - Ajustar parámetros SIO VBLANK.
60921EDF9TPFVTabla de valores de frecuencia POKEY (24 bytes).
60945EE11NTSC/PALTabla de valores constantes.
60957EE1DTABLESMemoria de pantalla y tablas de listas de visualización:

60957, $EE1D - Asignación de memoria de pantalla.
60973, $EE2D - Recuento de entradas en la lista de pantallas.
61005, $EE4D - Modos gráficos ANTIC.
61021, $EE5D - Vulnerabilidad de la lista de pantallas.
61037, $EE6D - Columnas de desplazamiento a la izquierda.
61053, $EE7D - Conteo de columnas de modo.
61069, $EE8D - Modo conteo de filas.
61085, $EE9D - Recuento de desplazamiento a la derecha.
61101, $EEAD - Máscaras de visualización.
61116EEBCPHEEntrada del manejador de periféricos, incluye las siguientes rutinas:

61177, EEF9 - Sondeo PH en OPEN.
61222, EF26 - Rutina Put-byte para IOCB abierto provisionalmente.
61294EF6ESINRutina de inicialización de pantalla. Incluye otras rutinas de manejo de pantalla:

61326, $EF8E - Realizar pantalla OPEN.
61332, $EF94 - Ejecutar OPEN de editor.
61340, $EF9C - Completar comando OPEN.
61824, $F180 - Rutina obtener byte de pantalla.
61839, $F18F - Obtener datos bajo el cursor.
61860, $F184 - Rutina poner byte en pantalla.
61828, $F184 - Comprobar fin de línea.
61898, $F1CA - Trazar punto.
61929, $F1E9 - Pantalla.
61960, $F208 - Establecer condiciones de salida.
61982, $F21E - Estado de la pantalla.
61997, $F22D - Editor de pantalla SPECIAL (sólo RTS).
61998, $F22E - Editor de pantalla CERRAR.
62026, $F24A - Get-byte del editor (ver abajo).
62128, $F2B0 - Editor put-byte (ver abajo).
62142, $F2BE - Carácter de proceso.
62026$F24AGETCHARNueva ubicación para la rutina "obtener carácter" (solía estar en 63038). Si utiliza las rutinas para la visualización en pantalla en Lenguaje de Máquina para Principiantes, tendrá que cambiar esta dirección para el correcto funcionamiento XL.
62128$F2B0OUTCHARNueva ubicación para la rutina "poner carácter". Véase la nota en 62026. Varios programas hacen uso de una llamada ilegal a las rutinas "get character" y "put character", antes en 63038 y 63140 ($F63E y F6A4), ahora en las localizaciones 62026 y 62128 ($F24A y $F2B0), respectivamente. Es posible que pueda corregir algunos problemas en su software buscando y sustituyendo los vectores antiguos por las nuevas ubicaciones.
62200$F2F8IGNIgnorar carácter y hacer get-byte de teclado.
62205$F2FDKGBRutina GET-BYTE del teclado. El manejador de teclado sigue e incluye las siguientes rutinas:

62432, $F3E0 - Manejador de carácter de escape.
62438, $F3E6 - Mover el cursor hacia arriba.
62451, $F3F3 - Mover cursor abajo.
62464, $F400 - Mover cursor a la izquierda.
62474, $F40A - Mover el cursor al margen derecho.
62476, $F40C - Fijar columna del cursor.
62481, $F411 - Mover punto del cursor.
62491, $F41B - Mover el cursor al margen izquierdo.
62496, $F420 - Limpiar pantalla.
62528, $F440 - Mover cursor a inicio (esquina superior izquierda).
62586, $F47A - Manejador de caracteres de tabulación.
62613, $F495 - Fijar tabulador.
62618, $F49A - Borrar tabulador.
62623, $F49F - Insertar carácter.
62677, $F4D5 - Borrar carácter.
62732, $F50C - Insertar línea.
62752, $F52D - Borrar línea.
62806, $F556 - Sonar timbre.
62815, $F55F - Cursor hacia abajo.
62821, $F565 - Doble byte doble decremento.
62825, $F569 - Almacenar datos para desplazamiento fino.
62840, $F578 - Decremento simple de doble byte.
62880, $F5A0 - Establecer entrada de lista de visualización de desplazamiento.
62892, $F5AC - Convertir fila/columna del cursor a dirección.
62986, $F60A - Avanzar rutinas del cursor.
63073, $F661 - Retorno con desplazamiento.
63077, $F665 - Retorno.
63150, $F6AE - Restar punto final.
63164, $F6BC - Comprobar rutinas de rango del cursor.
63256, $F718 - Restaurar datos antiguos bajo el cursor.
63267$F723BMIRutinas bitmap para el editor y el manejador de pantalla.
63479$F7F7SCRRutinas de desplazamiento de pantalla.
63665$F8B1CBCRutinas de cálculo de recuento de búferes; varios seguimientos de teclado, editor y pantalla, incluyendo:

63768, $F918 - Borrar línea.
63804, $F93C - Comprobar carácter de control.
63820, $F94C - Guardar valores de fila y columna.
63831, $F957 - Restaurar fila y columna.
63842, $F962 - Intercambiar el cursor con la posición normal del cursor.
63875, $F983 - Sonido de pulsación de tecla.
63895, $F997 - Fijar cursor en el borde izquierdo.
63910, $F9A6 - Fijar la dirección del contador de exploración de memoria.
63919, $F9AF - Ejecutar comando ESPECIAL de pantalla.
64260$FB04TMSKAquí empiezan varias tablas de pantallas y teclados:

64260, $FB04 - Máscaras de bits.
64264, $FB08 - Colores de pantalla por defecto (PF0-3, BAK).
64269, $FB0D - Rutinas de caracteres de control (cada entrada es de tres bytes; carácter de control y dirección de dos bytes de la rutina de procesamiento).
64317, $FB3D - Rutinas de teclas de función desplazadas (1200XL).
64329, $FB49 - Constantes de conversión de ATASCII a interno.
64333, $FB4D - Constantes de conversión de interno a ATASCII.
64337, $FB51 - Definición de teclado (ver abajo).
64529, $FC11 - Definición de teclas de función.
64337$FB51....Inicio de la tabla de definición de teclado de 192 bytes; ver posición 121, 122 ($79, $7A).
64537$FC19KIRRutinas de procesamiento IRQ de teclado; comprueba y procesa carácter, CONTROL-1, tecla HELP, CONTROL y teclas de función (1200XL; aunque el código para las teclas de función permanece en las series 800XL y XE).
64708$FCC4FDLProcesar la interrupción de la lista de visualización para el desplazamiento fino.
64728$FCD8CINRutina de inicialización del casete, seguida de rutinas de E/S del casete y tabla de constantes NTSC/PAL para la longitud de la cabeza de fichero y la duración del pitido.
65177$FE99PINInicialización de la impresora y rutinas de E/S incluyendo:

65218, $FEC2 - Impresora abrierta.
65227, $FECB - Poner byte en la impresora.
65261, $FEED - Llenar el buffer de la impresora.
65270, $FEF6 - Realizar put de impresora.
65287, $FF07 - Impresora cerrada.
65300, $FF17 - Configurar DCB para impresora.
65348, $FF44 - Tiempo de espera de la impresora desde STATUS.
65355, $FF4B - Procesar modo de impresión.
65395$FF73VFRRutinas de verificación de la suma de comprobación de la ROM para el primer banco de 8K.
65426$FF92VSRRutinas de verificación de la suma de comprobación de la ROM, segundo banco de 8K, incluyendo rutinas para examinar la región de la suma de comprobación y la tabla de direcciones a verificar.
65518, 65529$FFEE, $FFF9....Suma de comprobación y datos de identificación para el área ROM 57344-65535 ($E000-$FFFF--ver 49152, $C000 para más información):

65518, $FFEE - Fecha de revisión D1 y D2 (BCD de cuatro bits).
65519, $FFEF - Fecha de revisión M1 y M2.
65520, $FFF0 - Fecha de revisión Y1 e Y2.
65521, $FFF1 - Byte de opción; debe leerse 1 para el 1200XL (mi 800XL lee 2).
65522-26, $FFF2-6 - Número de parte en la forma AANNNNNN.
65527, $FFF7 - Número de revisión (de nuevo, el mío lee 2).
65528-9, $FFF8-9 - Suma de comprobación, bytes (LSB/MSB).

65527 y 65528 deben leerse 221 ($DD) y 87 ($57) para las ROMS 400/800 revisión A; 243 ($F3) y 230 ($E6) para las ROMS B. Las versiones PAL leen 214/87 ($D6/$57) y 34/88 ($22/$58), respectivamente. El 1200XL debe leer 10 a 65527 para la revisión A y 11 para la revisión B. El 600XL debe leer 1 a 65527, y el 800XL, 2. Para el 1200XL, 64728 ($FCD8) no debe leer 162 ($A2).
65530, 65535$FFFA, $FFFFVectores máquinaContiene vectores de servicio NMI, RESET (encendido) e IRQ, inicializados a 49176 ($C0l8), 49834 ($C2AA) y 49196 ($C02C), respectivamente.