· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Disk parameter table (DPT)

Disk parameter table (DPT)

개요

Interrupt $0x1e 에 해당하는 벡터위치에 DPT의 위치주소가 담겨있습니다. 우리는 이 값을 통해서 플로피의 정보를 얻어볼수 있습니다. Interrupt 0x1e 는 0x1e * 4 = 0x0078 에 해당하는 주소이며 이 주소에 DPT가 담겨져 있는 메모리를 가르키는 주소값이 존재하게 됩니다. 여기서 Interrupt 0x1e는 "Disk Initialization Parameter Table Vector" 라고 부릅니다. 그리고 DPT는 "Disk parameter table"이라고 합니다.

참고로 아래의 내용중에 시간의 단위는 Milli second입니다.

디스크로부터 읽는 것은 Interrupt $0x13 을 사용하는 방법이 있고 PIO 방식도 있으니 그 부분은 가장 많이 알려져 있는 "랄프브라운의 인터럽트 리스트"를 참고하시면 될겁니다.
offset 설명
00H Bit 0~3까지 4bit는 Head의 지연시간을 가집니다. Bit 4~7까지 4bit는 Head가 자유로워지는에 걸리는 시간입니다.
01H Bit 0은 DMA의 사용가능 여부입니다. Bit 1~7까지 7Bit는 Head의 접근시간에 대하여 2를 나누어 1을 뺀 값의 시간을 뜻합니다.
02H Motor의 전원이 완전히 꺼지기까지의 Clock tick수를 의미합니다.
03H FM 또는 MFM모드에 대하여 각각 내용이 다른데 그냥 섹터당 바이트수를 128로 나눈값으로 생각하시면 무난할듯.
04H Track당 Sector수 (본래 의미는 Track에서 마지막 섹터번호입니다.)
05H Sector당 byte수 (본래 의미는 Sector간격입니다.)
06H Format을 결정하는 값 (0x80이면 섹터당 128byte이고 그 외의 값은 필자도 정확히 모르며 정확하지 않아도 잘 되네요.)
07H Format간격 (포맷시에 하나의 그룹을 단위로 포맷을 하게 되는데 이때 이 그룹간격)
08H 위와 비슷한데 Data형식 지정자라고 해야 할까? (필자는 이것에 대해서도 잘 모르겠습니다.)
09H Head가 접근후에 준비까지의 시간
0AH Motor가 기동되어 준비될때까지의 시간
0BH Motor가 중지될때까지의 시간 (디스켓 빼려면 이것이 정지될때까지는 빼지 말라고 할수 있겠죠?)



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-06-25 15:58:43
Processing time 0.0027 sec