A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Oficina

6. O setor de boot

Sab

26

Mai

2007


14:48

(16 votos, média 4.75 de 5) 


O BPB (BIOS Parameter Block)

Os primeiros 62 bytes de um setor de boot são conhecidos como BPB (BIOS Parameter Block - Bloco de Parâmetros da BIOS). Lembre-se de que o conteúdo do setor de boot é transferido para o endereço de memória 0000:7C00. Analisando o setor de boot mostrado anteriormente, o BPB mostra o seguinte:

	7C00	eb3c		db instrução JMP
	7C02	90		db instrução NOP
	7C03	'MSDOS5.0'	db OEMname
	7C0B	0200		dw bytesPerSector; 00 02 -> 02 00
	7C0D	01		db sectPerCluster
	7C0E	0001		dw reservedSectors; 01 00 -> 00 01
	7C10	02		db numFAT
	7C11	00e0		dw numRootDirEntries; e0 00 -> 00 e0
	7C13	0b40		dw numSectors; ignorar numSectorsHuge
	7C15	f0		db mediaType
	7C16	0009		dw numFATsectors
	7C18	0012		dw sectorsPerTrack
	7C1A	0002		dw numHeads
	7C1C	00000000	dd numHiddenSectors
	7C20	00000000	dd numSectorsHuge
	7C24	00		db driveNum
	7C25	00		db reserved
	7C26	29		db signature
	7C27	5a541826	dd volumeID
	7C2B	'NO NAME   '	db volumeLabel
	7C36	'FAT12   '	db fileSysType

A Tabela de Parâmetros do Disquete

Os 11 bytes com início em 0000:7C3E são imediatamente sobrepostos com informações copiadas de outra parte da memória. Esta informação é a Tabela de Parâmetros do Disquete. Estes dados são apontados pela INT 1E e são os seguintes:

	7C3E = Taxa de passo (step rate) e
		tempo de descarga da cabeça (head unload time).
	7C3F = Tempo de carga da cabeça (head load time) e
		flag de modo do DMA.
	7C40 = Retardo para o motor desligar.
	7C41 = Bytes por setor.
	7C42 = Setores por trilha.
	7C43 = Comprimento da lacuna entre os setores.
	7C44 = Comprimento dos dados.
	7C45 = Comprimento da lacuna entre os setores durante a formatação.
	7C46 = Valor do byte da formatação.
	7C47 = Tempo do ajuste da cabeça (head settling time).
	7C48 = Retardo até que o motor atinja a velocidade normal.

Os 11 bytes seguintes, com início em 0000:7C49, também são sobrepostos pelos seguintes dados:

	7C49 - 7C4C = endereço do setor do disquete (como LBA)
			da área de dados.
	7C4D - 7C4E = número do cilindro onde deve ser feita a leitura.
	7C4F - 7C4F = número do setor onde dever ser feita a leitura.
	7C50 - 7C53 = endereço do setor do disquete (como LBA) do
			diretório raiz.

Informações adicionais