Periféricos
Gabriel J. García Gómez
[email protected]
Francisco Javier Gil Chica
[email protected]
Disco 3 ½ 1,44Mb
Pista 4
Sectores físicos totales: 18 x 80 x 2 = 2880
18 x 4 x 2 + 1 = 145
Sector físico 145
79
Sector 2
0
1
18
Sector físico 9
d0, p0, c0, s10
Directorio Raíz
Sector físico 10
d0, p0, c0, s11
FAT1
FAT2
Cara 0
Cara 1
Sector físico 1
d0, p0, c0, s2
Sector físico 32
d0, p0, c1, s15
Sector físico 19
d0, p0, c1, s2
Sector de arranque
Sector físico 0
disco 0, pista 0, cara 0, sector 1
Sector físico 18
d0, p0, c1, s1
Entradas FAT (Sectores lógicos): 2 - 2848
Sector de
Arranque
Sectores físicos:
0
Tablas FAT
FAT1
FAT2
1-9
10 - 18
Directorio Raíz
Área de datos
19 - 32
33 - 2879
00
03
0B
A
11
B
13
G
15
H
16
I
C
18
J
1A
K
C  Bytes por sector (512)
F  Número de ejemplares de FAT (2)
G  Entradas del Directorio Raíz (224)
H  Número de sectores del volumen (2880)
J  Número de sectores por FAT (9)
K  Número de sectores por pista (18)
L  Número de cabezales (2)
1C
L
M
0D
0E
10
D
E
F
1FF
1E
…
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
Res. Res. 007 002 00A 000 000 009 000 FFF 010 000 003 000 000 000 FFF
Archivo 1  4,A,10
Archivo 2  C ,3,2,7,9
000
FF0 – FF6
FF7
FF8 – FFF
???
 Bloque libre
 Bloque reservado s.o.
 Bloque defectuoso
 Último bloque de un archivo
 Siguiente bloque de un archivo
…
Estructura de una entrada de un directorio (32 bytes):
00
N0
08
0B
Nombre
Extensión
A
8
3
1
00
Última entrada del directorio
2E
Archivo se refiere a directorio actual
0C
16
Reservado
18
Fecha 1er bloque
Hora
2
10
1C
1A
2
1F
Tamaño
2
4
7
E5
Archivo se borró
A
15
Hora
11
-
10
8
0
Segundos / 2
5
Mes
H RO
4
Minutos
9
Año desde 1980
B Sub VL S
5
Horas
15
Fecha
-
0
0
4
Día
Estructura de una entrada de un directorio (32 bytes):
00
08
0B
Nombre
Extensión
A
8
3
1
0C
16
Reservado
10
18
Hora
2
1C
1A
Fecha 1er sector
2
1F
Tamaño
2
Directorio Raíz  14 sectores, con 512 bytes por sector  14 x 512 / 32 = 224 entradas como máximo.
32 bytes
Archivo/Directorio 1
Archivo/Directorio 2
Archivo/Directorio 3
.
.
.
Archivo/Directorio 15
Archivo/Directorio 16
4
Un poco de trabajo ;-)
http://www.ctyme.com/intr/int.htm
fopen  Utilizar modo de apertura binario
setbuf  Desactiva el uso de buffers intermedios (Necesario por un error en la lectura por compatibilidad)
 Siempre justo después de fopen
fseek  Para situarse dentro del fichero de la imagen
fread  Para leer
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
Res. Res. 007 002 00A 000 000 009 000 FFF 010 000 003 000 000 000 FFF
00000111 00100000 00000000
Si la entrada FAT es par:
4 bits bajos del byte
76543210 hgfe dcba zyxwvuts
3n
2
y los 8 bits del byte
3n
2
Si la entrada FAT es impar:
Los 8 bits del byte
dcba76543210 zyxwvutshgfe
1
1
3n
2
y los 4 bits altos del byte
3n
2
…
Descargar

Dir