Zapis danych na FDD

0

siema!
W Opolu, na Uniwerku powstaje dośwaidczalny system operacyjny startujący z dyskietki. Byłbym bardzo wdzięczny za jakiekolwiek informacje na temat zapisu sektorów w assemblerze.
Za każdą informacje będzie [browar]

0

Jak zawsze, gdy pojawia się pytanie o Assemblerze pod DOSa nie pozostaje mi nic innego, jak odesłać do listy przerwań Ralpha Browna.
Tu jest wersja on-line: http://www.ctyme.com/rbrown.htm.
A dla leniwych:

DISK - WRITE DISK SECTOR(S)
INT 13h
AH = 03h
AL = number of sectors to write (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer
Return:CF set on error
CF clear if successful
AH = status (see #00234)
AL = number of sectors transferred
(only valid if CF set for some BIOSes)

[http://www.ctyme.com/intr/rb-0608.htm]

0

Chodziło mi o coś więcej niż opis przerwania.... A tak poza tym, to nie trzeba sie koniecznie odwoływać do angielskich assemblerowców, dobra jest bowiem książka pana Andrzeja Dudka "Jak pisać wirusy", gdzie jest kompletna lista przerwań BIOS-a i opis funkcji MS-DOSa bodajże w wersji 5.0. Chodziło mi w moim pytaniu raczej o strukturę nośnika, opis ścieżek, ile się mieści itp.

0

2HD:
głowice: 0..1
ścieżki: 0..79
sektory: 1..18
512 bajtów/sektor

FAT12:
0 sektor/1 ścieżka - informacje techniczne o dysku
sektory systemowe:
1..9 - FAT
10..18 - kopia FAT
19..32 - katalog główny
sektory użytkowe:
33..2879

Budowa FAT12:
Tablica 12-bitowych elementów, których wartość jest numerem jednostki alokacji (w FAT12 j.a. = sektor) z następną częścią pliku lub specjalnym kodem (np. oznaczającym uszkodzony sektor, wolne miejsce, koniec pliku etc.). Oczywiście zapisane są bajtach. Czyli jeżeli chcesz dostęp do elementu nr 2 to musisz odczytać 2 bajty 3 i 4 (jeden element zajmuje półtora bajta).

Budowa Katalogu głównego:
Bajty:
0..7 - nazwa DOS
8..10 - rozszerzenie
11..30 - dane użytkowe (np. czy to jest katalog, jaka jest długość pliku, czas modyfikacji etc.)
31 - nr pierwszej jednostki alokacji w tablicy FAT początku pliku

Chyba dobrze napisałem, ale jak ktoś znajdzie błędy to śmiało poprawiać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1