Diferencia entre revisiones de Biblioteca / Mapeando El Atari / Pagina 6







Añadido:
||1536, 1791|$600, $6FF|Página 6|Página seis: 256 ($FF) bytes
protegidos contra el uso del sistema operativo. El sistema operativo
no utiliza la página seis y puede usarse de forma segura para
subrutinas de lenguaje de máquina, controladores de E/S especiales,
conjuntos de caracteres alterados o cualquier cosa que el usuario
pueda colocar en el espacio. Puede surgir algún problema cuando la
declaración INPUT recupera más de 128 caracteres.
Las ubicaciones de 1536 a 1663 ($600 a $67F) se utilizan
inmediatamente como buffer para los caracteres sobrantes. Para evitar
el desbordamiento, evite que las declaraciones INPUT recuperen más de
128 caracteres. La implementación valFORTH de fig-FORTH (de ValPar
International) utiliza toda la página seis para su código de inicio,
por lo que no está disponible para su uso. Sin embargo, FORTH le
permite reservar otros bloques de memoria para funciones similares.
BASIC A+ utiliza ubicaciones de $0600 - $67F.||
La porción DUP de DOS reside parcialmente aquí, comenzando en 5440
($1540) y llegando hasta 13062 ($1540 a $3306). La ubicación de la
rutina de entrada de inicio del disco del sistema operativo (DOBOOT)
es 62189 ($F2ED). El Atari DOS 2.0S estándar ocupa los sectores del
uno al 83 ($53) en un disco.
||18, 19|$712, $713|DFLADR: Dirección de inicio del archivo DOS.SYS.||
||1801|$709|SABYTE|Registra el límite del número de archivos que
pueden abrirse simultáneamente. Normalmente se establece en tres, el
máximo es siete (uno por cada IOCB disponible -- recuerde que IOCB0 se
utiliza para la visualización en pantalla). Cada fichero disponible
toma 128 bytes para un buffer, si aumentas el número de buffers,
disminuyes tu espacio RAM en consecuencia. Puedes hacer POKE 1801 con
tu nuevo número para aumentar o disminuir el número de ficheros y
luego reescribir el DOS (llamando al DOS desde BASIC y eligiendo la
selección de menú "H") y tener este número como
predeterminado en el nuevo DOS.||
||1802|$70A|DRVBYT|El número máximo de unidades de disco en su
sistema, el valor por defecto del DOS 2.0 es dos. Los menos cuatro
bits se utilizan para registrar qué unidades están disponibles, por lo
que si tiene unidades uno, tres y cuatro, esta ubicación se leería:
00001101 o 13 en decimal.
Cada unidad tiene un buffer separado de 128 bytes reservado para ella
en RAM. Si tiene más o menos que el predeterminado (dos), entonces
POKE 1802 con el número apropiado:
1 drive  =  1 BIT  0 = 00000001
2 drives =  3 BITS 0 & 1 = 00000011
3 drives =  7 BITS 0, 1 & 2 = 00000111
4 drives = 15 BITS 0, 1, 2 & 3 = 00001111
Esto supone que las tiene numeradas secuencialmente. Si no es así,
haga POKE en la traducción decimal apropiada para obtener el código
binario correcto: cada unidad está especificada por uno de los cuatro
bits inferiores, desde el uno en BIT 0 hasta el cuatro en BIT 3. Si
hace PEEK (1802) y obtiene tres, por ejemplo, significa que las
unidades uno y dos están asignadas, no tres unidades.
Puede guardar su modificación en un nuevo disco llamando al DOS y
eligiendo la selección de menú "H". Este nuevo DOS arrancará
con el número de unidades y búferes que haya asignado. Un sistema de
una unidad puede ahorrar 128 bytes de esta manera (256 si se elige un
búfer de datos menos). Véase el Manual del DOS, Apéndice G
((https://archive.org/details/disk-operating-system-iireference-manual
/page/86/mode/2up página 87)).||
||1900|$76C|BSIO|Punto de entrada a las rutinas de E/S del sector de
disco FMS.||
||1906|$772|BSIOR|Punto de entrada al gestor de discos FMS.||
||1913|$779|....|Bandera de verificación de escritura para operaciones
de E/S de disco. POKE con 80 ($50) para desactivar la función de
verificación, 87 ($57) para volver a activarla. La escritura en disco
sin verificación es más rápida, pero puedes obtener errores en tus
datos. He tenido muy pocos errores generados desactivando la función
verify, pero incluso un error en material crítico puede destruir todo
un programa. Tenga cuidado al usar esta ubicación. Puede guardar DOS
(como arriba con la selección de menú «H») sin escribir verify como su
nuevo valor por defecto escribiendo DOS en un nuevo disco. Vea el
Manual del DOS, apéndice F
((https://archive.org/details/disk-operating-system-iireference-manual
/page/84/mode/2up página 85)). La bandera de verificación de escritura
de K-DOS se encuentra en 1907 ($773).||
||1995|$7CB|DFMSDH|Punto de entrada a un manejador de dispositivo
(disco) FMS de 21 bytes. La dirección de este manejador se coloca en
HATABS (posiciones 794 a 831; $31A a $33F) por la rutina de
inicialización del FMS. Cuando CIO necesite llamar a una función FMS,
localizará la dirección de esa función a través de la tabla de
direcciones del manejador. Ver
((https://archive.org/details/Inside_Atari_DOS/page/n39/mode/2up
Capítulos 8 al 11)) de Inside Atari DOS, publicado por COMPUTE!
Books.||
||2016|$7E0|DINT|Rutina de inicialización del FMS. El punto de entrada
es 1995 ($7CB). DUP llama a FMS en este punto. K-DOS utiliza la misma
ubicación para su rutina de inicialización.||
||2219|$8AB|DFMOPN|Rutinas OPEN, incluyendo open para append, update y
output.||
||2508|$900|DFMPUT|Rutinas de bytes PUT.||
||2591|$A1F|WTBUR|Rutinas de E/S en ráfaga.||
||2592-2773|$A20, $AD5|....|En COMPUTE!,
((https://archive.org/details/1982-05-compute-magazine/page/162/mode/2
up mayo y julio de 1982)), Bill Wilkinson analizó BURST I/O, que no
debería tener lugar cuando un archivo está abierto para su
actualización, pero sí lo hace debido a un error menor en DOS 2.0
(consulte también Inside Atari DOS, Capítulo 12). Esto hará que las
escrituras de actualización funcionen correctamente, pero las lecturas
de actualización sean malas. Los siguientes POKE corregirán el
problema. Recuerde guardar DOS nuevamente en un disco nuevo.
POKE 2592,130 ($A20,$82)
POKE 2593,19  ($A21,$13)
POKE 2594,73  ($A22,$49)
POKE 2595,12  ($A23,$0C)
POKE 2596,240 ($A24,$F0)
POKE 2597,36  ($A25,$24)
POKE 2598,106 ($A26,$6A)
POKE 2599,234 ($A27,$EA)
POKE 2625,16  ($A41,$10)
POKE 2773,31  ($AD5,$1F)
Tenga en cuenta que la edición de julio de 1982 de COMPUTE! contenía
un error tipográfico en el que el valor que se iba a insertar en 2773
aparecía erróneamente como 13, no 31). Wilkinson señala que una manera
de desactivar completamente BURST I/O (útil en algunas circunstancias,
como usar DOS BINARY SAVE para guardar el contenido de ROM al disco!)
es por:
POKE 2606,0 ($A2E,$0)
Esto, sin embargo, hará que el sistema CARGUE y GUARDE archivos de
forma considerablemente más lenta, por lo que no se recomienda como un
cambio permanente al DOS.||
||2751|$ABF|DFMGET|Rutinas GET byte, incluidas las rutinas GET
archivo.||
||2817|$B0l|DFMSTA|Rutinas de estado del disco.||
||2837|$B15|DFMCLS|Rutinas IOCB CLOSE.||
||2983|$BA7|DFMDDC|Inicio de las rutinas de comandos dependientes del
dispositivo, incluidos los comandos especiales BASIC XIO.||
||3033|$BD9|XRENAME|Renombrar un fichero.||
||3122|$C32|XDELETE|Borrar un fichero.||
||3196|$C7C|XLOCK, XUNLOCK|Bloquear y desbloquear archivos. Las
rutinas de UNLOCK comienzan en 3203 ($C83).||
||3258|$CBA|XPOINT|Comando POINT del BASIC.||
||3331|$D03|XNOTE|Comando NOTE del BASIC. Consulte el Manual del DOS
para obtener información sobre estos dos comandos BASIC, y consulte De
Re Atari para ver un ejemplo de uso.||
||3352|$D18|XFORMAT|Formatea todo el disquete.||
||3501|$DAD|LISTDIR|Lista el directorio del disco.||
||3742|$E9E|FNDCODE|Descodificación del nombre de archivo, incluida la
prueba de validez de comodines. El nombre de archivo actual es
señalado por ZBUFP en las posiciones 67, 68 ($43, $44).||
||3783|$EC7|....|Introduciendo aquí el valor ATASCII deseado, puede
cambiar el carácter comodín (*; ATASCII 42, $2A) utilizado por el DOS
por cualquier otro carácter de su elección. El DOS modificado puede
guardarse en el disco con la selección "H" del menú DOS.||
||3818,3822|$EEA, $EEE|....|Haciendo POKE en el 3818 con 33 y en el
3822 con 123 ($21 ,$7B;), puede modificar el DOS para que acepte como
válidos nombres de ficheros con signos de puntuación, números y
minúsculas; 33 es el rango bajo del código ATASCII y 127 el rango alto
(los valores más bajos o altos son códigos de control y gráficos y
caracteres inversos). Por supuesto, cualquier DOS sin modificar
seguirá sin aceptar tales nombres de archivo. En realidad podría
cambiar el rango a cualquier valor de cero a 255 a su discreción.
Esto, sin embargo, puede causar otros problemas con códigos ATASCII
como espacios y el comodín (*; ver arriba). Se puede volver a guardar
en disco con la selección de menú "H".||
||3850|$F0A|FDSCHAR|Almacena los caracteres de nombre de archivo
resultantes de las rutinas de descodificación de nombres de archivo.||
||3873|$F21|SFDIR|Rutinas de búsqueda en directorios; busca el nombre
de archivo especificado por el usuario.||
||3988|$F94|WRTNXS|Rutina del sector de escritura de datos.||
||4111|$100F|RDNXTS|Rutina de lectura del sector de datos.||
||4206|$106E|RDDIR|Rutinas de lectura y escritura de sectores de
directorio.||
||4235|$108B|RDVTOC|Leer o escribir los sectores de la tabla de
contenidos del volumen (VTOC).||
||4293|$10C5|FRESECT|Rutina de sectores libres; devuelve el número de
sectores libres en un disco que están disponibles para el usuario.||
||4358|$1106|GETSECTOR|Rutina de obtención de sector; recupera del
disco un sector libre para su uso.||
||4452|$1164|SETUP|SETUP -- Inicialización de los parámetros de FMS.
Prepara al FMS para tratar la operación a realizar y para acceder a un
fichero en particular. Ver Inside Atari DOS,
((https://archive.org/details/Inside_Atari_DOS/page/n33/mode/2up
Capítulo Siete)).||
||4618|$120A|WRTDOS|Escribir nuevo archivo DOS.SYS a la rutina de
disco, incluyendo nuevo archivo FMS al archivo DOS.SYS.||
||4789|$12B5|ERRNO|Inicio de la tabla de números de error FMS.||
||4856, 4978|12F8, 1372|....|Área de almacenamiento FMS diversa:
longitud del sector, cinta de la unidad, nivel de pila, número de
archivo, etc.||
||*|*|*|*||
||5121|$1401|FILDIR|Directorio de archivos, un búfer secuencial de 256
($100) bytes para las entradas al directorio del disco.||
||5377|$1501|ENDFMS|Búfer de directorio de disco (VTOC -- Volume Table
Of Contents). Se reservan 64 ($40) bytes, un byte para cada archivo
posible. También marca el final de FMS. El VTOC (sector 360; $168) es
un mapa secuencial de bits de cada uno de los 720 sectores del disco.
Comienza en el byte diez y continúa hasta el byte 99. Cuando un bit
está activado (uno), indica que el sector asociado está en uso.||
||5440|$1540|DOS|Dirección de inicialización de DUP.SYS. Comienzo de
mini-DOS; la parte residente en RAM de DUP. Usada para el mismo
propósito en K-DOS.||
||5446, 5450|$1546, $154A|....|Contiene la ubicación (LSB/MSB) del VEC
del DOS (ubicación 10; $A). Este es el puntero a la dirección a la que
BASIC saltará cuando DOS sea llamado.||
||5533|$159D|DUPFLG|Bandera para comprobar si DUP ya reside en la
memoria. Cero es igual a DUP no está allí.||
||5534|$159E|OPT|Se utiliza para almacenar el valor de la opción del
menú de disco elegida por el usuario.||
||5535|$159F|LOADFLG|Si en esta posición se lee 128, no es necesario
cargar un archivo de memoria (MEM.SAV).||
||5540|$15A4|SFLOAD|Rutinas para cargar un archivo MEM.SAV si
existe.||
||5888|$1700|USRDOS|Aparece en el archivo de equivalencias DUP.SYS,
pero nunca se explica en los listados.||
||5899|$170B|MEMLDD|Indica que se ha cargado el archivo MEM.SAV. Cero
significa que no se ha cargado.||
||5947|$173B|....|Las rutinas de creación de archivos MEM.SAV
(MEMSAVE) comienzan aquí. Comienzan con el nombre de archivo MEM.SAV
almacenado en formato ATASCII. Las rutinas de escritura comienzan en
MWRITE, 5958 ($1746). La utilidad del DOS MEMSAVE copia los 6000 bytes
inferiores de memoria al disco para evitar que tu programa BASIC sea
destruido cuando llamas al DOS, que entonces carga DUP.SYS en esa área
de memoria.||
||6044,6045|$179C, $179D|INISAV|DOSINI (ver ubicación 12, 13; $C, $D)
ubicación para guardar vectores. Punto de entrada al DOS en una
llamada desde BASIC.||
||6046|$179E|MEMFLG|Indicador que muestra si la memoria se ha escrito
en el disco mediante un archivo MEM.SAV.||
||6418|$1912|CLMJMP|Prueba para ver si el DOS debe cargar MEM.SAV
desde el disco antes de hacer una ejecución en la dirección del
cartucho, luego salta a la dirección del cartucho.||
||6432|$1920|LMTR|Prueba para ver si el DOS debe cargar MEM.SAV antes
de realizar un comando de ejecución en dirección desde el menú DOS.||
||6457|$1939|LDMEM|Rutinas de carga MEMSAVE (para el archivo
MEM.SAV).||
||6518|$1979|INITIO|Entrada de arranque en caliente DUP.SYS. Un
excelente programa para eliminar la necesidad de DUP.SYS y MEM.SAV
(¡por no mencionar el tiempo requerido para cargarlos!) fue presentado
en COMPUTE!, julio de 1982, llamado
((https://archive.org/details/1982-07-compute-magazine/page/106/mode/2
up MicroDOS)); merece la pena examinarlo. Véase también "The
Atari Wedge", COMPUTE!,
((https://archive.org/details/1982-12-compute-magazine/page/240/mode/2
up diciembre)) de 1982.||
||6630|$19E6|ISRODN|Inicio de la rutina de servicio de interrupción
serie para dar salida a los datos necesarios rutinas en DUP.SYS.||
||6691|1A23|ISRSIR|Inicio de las rutinas de servicio de interrupción
en serie en DUP.SYS.||
||6781|1A7D|....|Inicio de los búferes de accionamiento y de datos.
Los búferes de accionamiento se numeran secuencialmente del uno al
cuatro, los búferes de datos del uno al ocho, suponiendo que se
asignen muchos para cada uno. Normalmente, los dos primeros búferes se
asignan a las unidades y los tres siguientes a los datos. Los búferes
tienen una longitud de 128 ($80) bytes cada uno y comienzan en 6908
($1AFC), 7036 ($1B7C), 7162 ($1BFA) y 7292 ($1C7C). Ver posiciones
1801 y 1802 ($709, $70A).||
||7420|$1CFC|....|MEMLO (743, 744; $2E7, $2E8) apunta aquí cuando el
DOS es residente a menos que la asignación del buffer haya sido
alterada. MEMLO apuntará a 7164 para una configuración de una unidad,
dos búferes de datos, un ahorro de 256 bytes. Si se carga el manejador
RS-232 desde la Interfaz 850, MEMLO subirá otros 1728 bytes. El
manejador RS-232 en la Interfaz 850 sólo arrancará (cargará en
memoria) si primero arranca el archivo AUTORUN.SYS en su disquete
maestro Atari o usa otro programa de arranque RS-232 como un paquete
de terminal. El manejador RS-232 arrancará en memoria si no tiene un
disco conectado y lo ha encendido antes de encender el ordenador.
Puede seguir utilizando el puerto de impresora (paralelo) del 850
incluso si el manejador RS-232 no está arrancado.||
||7548|$1D7C|....|Comienzo de la parte no residente del DUP; búfer de
parámetros de 40 ($28) bytes.||
||7588|$1DA4|LINE|Búfer de línea de 80 ($50) bytes.||
||7668|$1DF4|DBUF|Búfer de datos de 256 ($100) bytes para las rutinas
de copia. Las rutinas de copia trabajan en pasadas de 125 bytes, igual
al número de bytes de datos en cada sector del disco. Hay 256 bytes
porque Atari había planeado un disco de doble densidad que tiene 253
bytes de datos en cada sector.||
||7924|$1EF4|....|Área de almacenamiento de variables varias y búferes
de datos.||
||7951, 8278|$1F0F, $2056|DMENU|Aquí se almacenan los datos de
visualización de la pantalla del menú del disco.||
||8191|1FFF|....|Esta es la parte superior de la RAM mínima requerida
para el funcionamiento (8K). Para usar DOS, debe tener un mínimo de
16K.||

Borrado:
||1536, 1791|$600, $6FF|Página 6|Esta zona de memoria está totalmente
disponible para el usuario debido a que el Sistema Operativo no la
ocupa. En ella se pueden ubicar rutinas en lenguaje de máquina con la
plena seguridad que no afecten al Basic o a cualquier sistema
implementado en el Atari.||
La porción DUP de DOS reside parcialmente aquí, comenzando en 5440
($1540) y llegando hasta 13062 ($1540 a $3306). La ubicación de la
rutina de entrada de inicio del disco del sistema operativo (DOBOOT)
es 62189 ($F2ED). El Atari DOS 2.OS estándar ocupa los sectores del
uno al 83 ($53) en un disco.
||18, 19|$712,$713|DFLADR: Dirección de inicio del archivo DOS.SYS.||