Formato de discos SEDORIC

Avatar de Usuario
luiscoco
Mensajes: 2337
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 34 veces
Agradecimiento recibido: 45 veces
Contactar:

Formato de discos SEDORIC

Mensajepor luiscoco » 30 May 2015 04:54

Aparte del formato de los discos virtuales DSK de ORIC, el sistema operativo tiene su formato de grabación.
Logre resumir el formato a partir de "SEDORIC al desnudo"
Este es el resultado

Resumen de sedoric.zip
(18.21 KiB) Descargado 44 veces


Resumen de sedoric
La estructura de los disquetes SEDORIC

Sedoric ocupa 107 sectores en un disco maestro o 16 en un disco ESCLAVO
En 2 Zonas:
1) 8 sectores desde el comienzo del disco (sector 1, pista 0)
a) 1 sector de Versión
b) 1 sector de copyright
c) 1 sector de boot
d) Si es ESCLAVO lleva:
A) 1 descriptor de archivo con las coordenadas pista/sector del sistema
B) 4 sectores para intercambio de memoria ¿creo?
e) Y si es MAESTRO
A) 1 descriptor de archivo con las coordenadas pista/sector del sistema
B) 60 sectores del sistema Sedoric.
C) sectores en 7 grupos de 5 sectores, 1 de descriptor y 4 de datos, que sirven para ser colocados en el BANCO Intercambiable de memoria desde #C400 a #C7FF
En total si es maestro son 3 + 61 + 35 = 99 y si es esclavo 3 + 5 = 8.

2) 8 sectores en la pista 20 (sectores nº 1, 2, 3, 4, 7, 10, 13 y 16.)
a) 1 sector de sistema (Sector 1 de la pista 20)
b) 2 sectores de bitmap (sectores 2 y 3 de la pista 20)
c) 5 sectores de directorio (con capacidad de 15 entradas cada uno para un total de
En total son 1+2+5=8

En total son 3+61+35+8=107 si es maestro y 16 si es esclavo
Puede haber sectores reservados adicionales para directorios.
Los números de pista con el b7 en 1 (superiores a 128) son de la segunda cara del disco.

EN DETALLE
1) El Sector 1 de versión tiene en 0040, el mensaje de VERSIÓN se convierte en:

"SEDORIC V3.006 01/01/96
Upgraded by Ray McLaughlin
and André Chéramy
See SEDORIC3.FIX file for information

2) El Sector 2 en #00D1 contiene el mensaje de COPYRIGHT se muestra:

"SEDORIC V3.0
© 1985 ORIC INTERNATIONAL"

Tenga en cuenta el contenido del byte No. #16, que es aquí un #00 indica que es un disco maestro, si fuera #01 seria esclavo.
A partir de #0017 comienza una rutina de BOOT

3) El Sector 3 (BOOT) contienen solo la descripción del boot
Pista 20
El Sector del sistema (Sector 1 de la pista 20) está estructurado de la siguiente manera:

C100- bytes nº 00/03 unidades de disco, contiene el número de pistas y caras, aquí #D2 = #52 (es decir, 82 pistas por lado) + #80 (bandera de doble cara) para las unidades A, B, C y D.
C104- bytes nº04 tipo de teclado (b6 = 1 si TIPO ACCENT y b7 = 1 si AZERTY) aquí #40 = 0100 0000, solamente b6 es 1, teclado QWERTY con acentos.
C105- bytes nº05/06 número de línea inicial para RENUM (aquí #0064 = 100)
C107- bytes nº07/08 interlineado para RENUM (aquí #0000A = 10)
C109- bytes nº09/1D Nombre del disco (21 bytes) (aquí "_____________ XX / XX / XX")
C11E- bytes nº1E/59 INIT, instrucciones de inicio (60 bytes) (aquí, no hay instrucción)
C15A- bytes nº5A/FF no utilizados (colocados a #00) (el INIT puede ser más largo)


El primer sector del Bitmap (Sector 2 de la pista 20) está estructurado así:

C200- bytes nº00 siempre contiene #FF
C201- bytes nº01 siempre contiene #00
C202- bytes nº02/03 número de sectores libres (aquí # 025F = 607)
C204- bytes nº04/05 número de archivos (aquí # 0000 = ninguno)
C206- bytes nº06 número de pistas por caras (aquí # 2A = 42)
C207- bytes nº07 número de sectores por pista (aquí # 11 = 17)
C208- bytes nº08 número de sectores para directorio (aquí # 01 = 1)
C209- bytes nº09 copia del byte nº06, b7 es 0 si es una cara o a 1 si doble cara. Aquí, se trata de un disco de solo una cara #2ª(42) y para un disco de 2 caras #AA(170=128+42).
C20A- bytes nº0A #00 si el maestro, #01 si es esclavo o #47 ("G") si es juegos (Games). Aquí estamos, por tanto, en presencia de un disco maestro.
C20B- bytes nº0B/0F siempre contiene # 00 (no utilizado)
C210- bytes nº10/FF Bitmap: cada bit representa un sector Este sector es libre si el bit correspondiente esta a 1 o está ocupada si es 0. Se leen los bits de cada byte de derecha a izquierda (dirección b0 -> b7) pero bytes se leen de izquierda a derecha (dirección de bytes nº#10 -> nº#FF).

El segundo sector del mapa de bits (sector 3 de la pista No. 20):
Contiene la misma información que el anterior excepto que los bytes 02/03 contienen el total de sectores y no los libres, entre los 2 BITMAP pueden mantener el marcaje de (240+240)*8 = 3840 sectores o archivos de 983040 bytes máximo.

El sector 4 de la pista 20 contiene el directorio (primer sector)
C300- bytes nº00/01 coordenadas (pista / sector) del siguiente sector de directorio (solo un sector está en uso, por lo que no hay siguiente)
C302- bytes nº02 nº byte de la primera entrada libre (# 00 si esta completo)
C303- bytes nº03/0F siempre contiene #00 (sin usar)
C310- bytes nº10/FF 15 “entradas” de directorio (una línea de 16 bytes por entrada)
Hay 4 sectores mas de directorio reservados siempre, los sectores 7, 10, 13 y 16, espaciados de esa forma para poderlos leer en una sola vuelta del disco. Por lo tanto hay un máximo de 15*5 = 75 archivos sin aumentar la cantidad de sectores de directorio.

Cada "entrada" de directorio se estructura de la siguiente manera:

Bytes nº00 a 08 nombre completando a la derecha con blancos (#20)
Bytes nº09 a 0B extensión (ídem)
Byte nº0C Nº de pista de su descriptor
Byte nº0D Nº de sector de su descriptor
Byte nº0E número de sectores para el archivos (incluido lo(s) descriptores)
Byte nº0F atributo de protección (b6 = 1, Protegido si b7 = 1, Desprotegido si b7 = 0) (#40 = 0100 0000 para desprotegido y #C0 = 1100 0000 para Protegido. b0-b5 = HH = son la parte alta el número de sectores, raramente utilizados a excepción de archivos muy grandes "fusiones".

Los descriptores estan estructurado de la siguiente manera:

C100- bytes nº00/01 "link" (coordenadas del próximo descriptor). Si apunta a #0000. No hay sector 0 en la pista nº0, lo que indica que no hay ningún otro descriptor, ya que un número de sector nunca puede ser cero.
C102- Byte nº02 contiene #FF (sólo si es el primer sector descriptor)
(El puntero X se posiciona en este #FF, y permite las demás lecturas)
C103- Byte nº03 (C101 + X) tipo de archivo (ver manual de la página 100). Aquí # 40 o 0100 0000, indica que se trata de un tipo de archivo "bloque de datos" (b6 = 1).
C104- bytes nº04/05 (C102 + X y C103 + X) dirección (normal) de inicio (o número de fichas de acceso directo al archivo). #C400 Aquí es el comienzo del BANCO Nº 7, Superposición de RAM.
C106- bytes nº06/07 (C104 + X y C105 + X) dirección (normal) del final (o la longitud de una ficha de acceso directo al archivo). #C7FF Aquí está el final del BANCO nº7 superposición en la memoria RAM.
C108- bytes nº08/09 (C106 + X y C107 + X) son las direcciones ejecución si AUTO, #0000 si no AUTO.
C10A- bytes nº0A/0B (C108 + X y C109 + X) número de sectores a cargar. El BANCO nº7 incluye 4 sectores, de ahí el #0004 que se muestra aquí.
C10C- bytes nº0C/FF (C100 + Y y C101 + Y) lista coordenadas de pistas/sectores a cargar. Aquí el primer sector del BANCO Nº 7 se encuentra en el sector 11 (#0B) en la pista #5 (#05), y el último sector en el nº14 (#0E) de la misma pista. En el primer descriptor hay espacio para 122 pares de dos bytes. Si el número de sectores a cargar excede 122, cuando alcanza el puesto #00 (final BUF1), cargue el siguiente descriptor cuya estructura es simplificada:
C100- bytes nº00/01 "link" (coordenadas del próximo descriptor)
C102- bytes nº02/FF (C100 + Y y C101 + Y) lista de coordenadas de pista/sector a otros sectores a cargar (Y de #02 a #EF como máximo), 127 pares de 2 bytes. Si el número de sectores a la carga excede 122 + 127 = 249, cargue el descriptor siguiente etc…

Como se graba un archivo

Se verifica la cantidad de sectores de directorio (no necesariamente), se leen estos sectores de directorios a partir del sector 4 de la pista 20 y enlazándose a través de ellos por medio de sus campos de coordenadas pista/sector, buscando entradas en cero para agregar el archivo si no hay se continúa hasta que no hay mas entradas libres, se debe agregar un nuevo sector y reservarlo, agregando también la cantidad de sectores ocupados por el Dir.

Además se escribirán los sectores del descriptor del archivo y sus sectores de datos que se crean en orden ascendente, recordando marcar los sectores ocupados y actualizando los contadores de cantidad de archivos, cantidad de sectores libres.

También existen archivos que son la unión de otros varios, aun no se para que

Como se borra un archivo:

Se marcan a 1 los bits correspondientes a los sectores a liberar en los sectores de BITMAP, se escriben ceros sobre la entrada y extrañamente en lugar de marcar esta entrada como libre o borrada como hacen otros sistemas, se mueve la última entrada valida de este sector hasta ocupar la entrada borrada, esto también hace que el listado de DIR se desordene.

También se hace un chequeo especial para ver si la cantidad de archivos que existen después de borrar cabe en menos sectores de Dir. y si es así se reconstruyen los directorios

Recordando marcar los sectores ocupados y actualizando los contadores de cantidad de archivos, cantidad de sectores libres.

Volver a “Oric”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado