[ASM] Porty do obsługi dysku twardego
Ostatnio zmodyfikowano 2013-05-21 15:02
Brezniew Temat założony przez niniejszego użytkownika |
[ASM] Porty do obsługi dysku twardego » 2013-05-20 22:13:21 Witam. Pisę system operacyjny, już wiele rzeczy jest wykonanych ale pisząc bootloader nie mam satysfakcji przez kod: mov ah, 2 mov al, 10 xor ch, ch mov cl, 2 mov dh, 0 mov bx, 0x1000 mov es, bx mov bx, 0 int 0x13
Ten kod ładuje 2 sektor na dysku(512b) pod adres 0x1000, moim celem jest całkowite uniezależnienie(nie wykorzystywanie) funkcji, przerwań i innych elementów zdefiniowanych w biosie a więc postanowiłem napisać prostą procedurę która by robiła to samo co powyższy kod. Zamierzam w tym celu wykorzystać porty o adresach od 0x320 do 0x32F, ale nie wiem gdzie wysłać odpowiednie danie i z kąt pobrać dane do załadowania pod adres 0x1000. Co do obsługi portów to wiem jak to działa, wielokrotnie ich używałem, co do tych portów to chodzi mi o konkretną strukturę danych rejestrów. |
|
DejaVu |
» 2013-05-21 00:49:46 Napiszę do znajomego, który swego czasu pisał bootloadery na potęgę - może zabierze głos w Twoim temacie ;) |
|
Brezniew Temat założony przez niniejszego użytkownika |
» 2013-05-21 14:30:36 Dzięki. A co do tych adresów portów to nie jestem do końca do nich pewny, znalazłem też inne porty, ale nie mam debugera w emulatorze i nie mam możliwości przetestowania tych portów. |
|
Elaine |
» 2013-05-21 14:48:48 |
|
Brezniew Temat założony przez niniejszego użytkownika |
» 2013-05-21 15:02:00 @up No niby tak, ale ja muszę się zmieścić 446b a tamtego kodu tam nie upakuje, a ja potrzebuję tylko kodu do odczytania tych 512b z dysku. 2 problem to że nie mogę użyć kody c. Ale jeszcze poczytam może coś da się z tego wykorzystać. Na razie dzięki. |
|
« 1 » |