-------------------------------------------------------------------------
TRSDOS
Setores e cilindros so numerados a partir de 0
os disquetes podem ser de densidade simples ou dupla
Aparentemente os setores sempre tem 256 bytes

SD: 256 bytes por setor, 5 setores por granule, 2 granules por trilha, 1 trilha por cilindro, 40 cilindros por drive
DD: 256 bps, 6 spg, 3 gpt, 1 tpc, 40 cpd

Um cilindro inteiro  usado para o diretrio
Pelo menos um granule  usado para o cdigo de bootstrap

Mximo de 32 setores para o diretrio, por causa de limitaes da HIT
1 setor  sempre reservado para a GAT e 1 para a HIT, os demais setores do cilindro ficam para o diretrio

Cada registro do diretrio tem 32 bytes
Cada setor de diretrio contm 8 registros

Em discos de sistema, os 2 primeiros registros dos 8 primeiros setores so reservados para arquivos de overlay

Mximo de 8 granules por cilindro, restrito pela GAT

Nos bytes da GAT, cada bit 1 indica um granule em use, e bit 0 livre.
O bit 0 corresponde ao primeiro granule relativo, o bit 1 ao segundo etc.

Num disco de densidade simples, com dois granules por cilindro, s dois bits de cada byte so usados. Os bits restantes so setados (1) para indicar que esto indisponveis. 1 byte para cada cilindro, portanto.

A GAT fica no primeiro setor do cilindro de diretrio.

A posio da entrada na tabela de hashes  chamada de Directory Entry Code (DEC) do arquivo.

Todos os arquivos tem pelo menos um DEC.

Arquivos com mais de 4 extents tem um DEC para cada entrada no diretrio extendido e usam mais que um slot de diretrio.

Deve-se manter os arquivos abaixo de 5 extents sempre que possvel (?)

Cada entrada na HIT  mapeada ao setor de diretrio pela posio do DEC na HIT.


HIT
8 linhas
32 colunas

cada linha = 1 registro de diretrio
cada coluna = 1 setor de diretrio (0-31)

Cada byte contm um hash
um byte contendo 00 indica uma posio livre

and 1Fh
add 2
-> Calcula o setor
and E0h
-> calcula o offset no setor


DIR/SYS -> Diretorio

GAT: Tabela de alocao de granules
HIT: ndice para acelerar o acesso ao diretrio

Na GAT tem um Id do disco
Cada byte da GAT corresponde a um cilindro
Cada bit desses bytes corresponde a um granule (1 = ocupado, 0 = livre)


-------------------------------------------------------------------------
Tipos de Floppy:

0CC0 SD 5.25"
1900 DD 5.25"
1980 DD 5.25" (?)
14E0 SD 8"
2940 DD 8"

-------------------------------------------------------------------------
Clculo de Setores Relativos:

Imagem setores absolutos:

T:0 S:0	   T:1 S:0    T:2 S:0    T:3 S:0    T:4 S:0
[0 1][2 3] [0 1][2 3] [0 1][2 3] [0 1][2 3] [0 1][2 3]
[0 1][2 3] [0 1][2 3] [0 1][2 3] [0 1][2 3] [* 1][2 3]
T:0 S:1	   T:1 S:1    T:2 S:1    T:3 S:1    T:4 S:1

Imagem setores relativos:

0 1 2 3  8 9 0 1  6 7 8 9  4 5 6 7  2 3 4 5
4 5 6 7  2 3 4 5  0 1 2 3  8 9 0 1  * 7 8 9

Parmetros deste disco imaginrio:
Setores Por Trilha = 4, Granules Por Trilha = 2, Trilhas = 5, Lados = 2

Exemplo de Codificao:

Trilha 4, Granule 2 (0-based):

(Trilha "4" * (2*2) + 3) * 2 = 36 Perfeita!!!

Exemplo de Decodificao:

36 / (4*2) = 4 resto 4 (Trilha 4)
4 / 4 = 1 resto 0 (Lado 1, Setor 0) OK

22 / 8 = 2 resto 6 (Trilha 2)
6 / 4 = 1 resto 2 (Lado 1, Setor 2) OK

27

27 / 8 = 3 resto 3 (Trilha 3)
3 / 4 = 0 resto 3 (Lado 0, Setor 3) OK	PERFEITO!!!

-------------------------------------------------------------------------

TRSDOS v2.3: 
- Cilindro do diretrio no 3o byte do setor de boot
- Trilhas e setores comeam em 0
- O formato do diretrio parece ser o mesmo (GAT, HIT, FPDE etc.)

