Página 6 a la 15

Decimal HexadecimalNombreDescripción
1536, 1791$600, $6FFPágina 6Pá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.

Las localizaciones 1792 a la dirección especificada por LOMEM (localizaciones 128, 129; ($80, $81) – el puntero a la memoria baja del BASIC) también son utilizadas por el DOS y el Sistema de Gestión de Archivos (FMS). Consulte el código fuente del DOS e Inside Atari DOS para más detalles. Las direcciones que siguen son las del DOS 2.0S, el DOS oficial de Atari en el momento de escribir esto. Hay otro DOS disponible como alternativa al DOS 2.0 — K-DOS ™, de K-BYTE (R). El K-DOS no está basado en menús, sino en comandos. No utiliza todas las mismas posiciones de memoria que el DOS Atari, aunque utiliza una versión modificada del FMS Atari. (Otro DOS manejado por comandos, llamado OS/A+, es completamente compatible con el DOS 2.OS y está disponible en OSS, los creadores del DOS 2.0S).


DecimalHexadecimalNombreDescripción
1792, 5377$700, $1501Página 7 a la 15Sistema de gestión de archivos RAM. FMS proporciona la interfaz entre BASIC o DUP y la unidad de disco. Es un controlador de dispositivo sofisticado para todas las operaciones de entrada y salida que involucran el dispositivo «D:».
Permite a los usuarios del disco usar los comandos especiales del disco XIO en el BASIC (vea el área IOCB 832 a 959: $340 a $3BF). Es residente en RAM debajo de su RAM del BASIC y proporciona el punto de entrada a DOS cuando BASIC lo llama.
5440, 13062$1540, $3306 DUP.SYS RAM. La parte superior variará según la cantidad de espacio de almacenamiento en búfer asignado a la unidad y a los búferes de sector.
6780, 7547$1A7C, $1D7B Búfers de unidad y búferes de datos sectoriales. La cantidad de memoria variará según la cantidad de buffers asignados.
7548, MEMLO$1D7C, $3306(máxima)Porción no residente de DUP.SYS, rutinas de utilidad de DOS. DUP proporciona las utilidades elegidas en la página del menú de DOS, no en BASIC. No reside en la RAM cuando utiliza BASIC u otro cartucho; más bien se carga cuando se llama a DOS desde BASIC o durante el arranque automático (y ningún cartucho lo reemplaza).
Cuando se carga DUP, sobrescribe la parte inferior de la memoria. Si desea salvar su programa de la destrucción, debe haber creado un archivo MEM.SAV en el disco antes de llamar a DOS desde su programa. Consulte el Manual de referencia de DOS.

Las ubicaciones 1792 a 2047 ($700 a $7FF; página siete) son el área de inicio del usuario. MEMLO y LOMEM apuntan a 1792 cuando no se carga ningún programa DOS o DUP. Esta área luego se puede utilizar para sus programas BASIC o en lenguaje de máquina.
La dirección de memoria libre más baja es 1792 y los programas pueden extenderse hacia arriba desde aquí. Hay un búfer de una página antes del espacio de programa utilizado para la tokenización de declaraciones BASIC, al que apuntan las ubicaciones 128, 129 ($80, $81).
En realidad, un programa puede comenzar desde cualquier dirección por encima de 1792 y por debajo de la lista de visualización en pantalla siempre que no sobrescriba este búfer si es un programa en BASIC. Además, 1792 es el comienzo de la parte FMS de DOS cuando se reside.


Cuando se inicia el software, el puntero MEMLO en 743,744 ($2E7, $2E8) en la base de datos del sistema operativo (ubicaciones 512 a 1151; $512 a $47F) apunta a la primera ubicación de memoria libre encima de ese software; de lo contrario, apunta a 1792.
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.


El sector uno es el sector de arranque. Los sectores del dos al 40 ($28) son la porción FMS y los sectores del 41 ($29) al 83 son la porción DUP.SYS de DOS. Para obtener más información, consulte los listados de fuentes de DOS y SO y Inside Atari DOS.

FMS, DOS.SYS y DUP.SYS


Los registros de arranque del disco (sector uno en un disco) se leen en 1792 ($700). A partir de $700 (1792), el formato es:


ByteHexadecimalEtiqueta y uso
0$700BFLAG: El indicador de inicio es igual a cero (sin usar).
1$701BRCNT: Número de sectores consecutivos a leer (si el archivo es DOS, entonces BRCNT es igual a uno).
2, 3$702, $703BLDADR: Dirección de carga del sector de arranque ($700).
4, 5$704, $705BIWTARR: Dirección de inicialización.
6$706JMP XBCONT: Vector de continuación de arranque; $4C (76): comando JMP a la siguiente dirección en los bytes siete y ocho.
7,8$707, $708Dirección de continuación de lectura de arranque (LSB/MSB).
9$709SABYTE: Número máximo de archivos abiertos simultáneamente. El valor predeterminado es tres (ver 1801 a continuación).
10$70ADRVBYT: Bits de unidad: el número máximo de unidades conectadas al sistema. El valor predeterminado es dos (ver 1802 a continuación).
11$70B(sin usar) Dirección de asignación de búfer, establecida en cero.
12, 13$70C, $70DSASA: Dirección de inicio de la asignación de búfer. Apunta a 1995 ($7CB) cuando se carga DOS.
14$70EDSFLG: Bandera de DOS. El indicador de inicio está establecido en un valor distinto de cero. Debe ser distinto de cero para la segunda fase del proceso de inicio. Indica que el archivo DOS.SYS ha sido escrito en el disco; cero equivale a ningún archivo DOS, uno equivale a un disco de sector de 128 bytes, dos equivale a un disco de sector de 256 bytes.
15, 16$70F, $710DFLINK: Puntero al primer sector del archivo DOS.SYS.
17$711BLDISP: Desplazamiento al byte 125 del enlace del sector ($7D). El byte de enlace del sector es el puntero al siguiente sector del disco que se leerá. Si es cero, se ha llegado al final del archivo.
18, 19$712,$713DFLADR: Dirección de inicio del archivo DOS.SYS.
20+$714+Continuación del archivo de carga de arranque. Consulte el Manual del usuario del sistema operativo y el Capítulo 20 de Inside Atari DOS.

Los datos del sector de arranque se colocan en las ubicaciones 1792 a 1916 ($700 a $77C). Los datos del resto de DOS.SYS se encuentran a partir de 1917 ($77D). Todas las cargas de archivos binarios comienzan con 255 ($FF). El siguiente cuatro bytes son las direcciones inicial y final (LSB/MSB), respectivamente.


1801$709SABYTERegistra 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$70ADRVBYT

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, página G-87.

1900$76CBSIOPunto de entrada a las rutinas de E/S del sector de disco FMS.
1906$772BSIORPunto 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, página F.85. La bandera de verificación de escritura de K-DOS se encuentra en 1907 ($773).
1995$7CBDFMSDHPunto 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 Capítulos 8 al 11 de Inside Atari DOS, publicado por COMPUTE! Books.
2016$7E0DINTRutina 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$8ABDFMOPNRutinas OPEN, incluyendo open para append, update y output.
2508$900DFMPUTRutinas de bytes PUT.
2591$A1FWTBURRutinas de E/S en ráfaga.