ROM PBI

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 07:09, 11 mar 2006
KMK (Dyskusja | wkład)
(draft)
← Previous diff
Wersja z dnia 07:10, 11 mar 2006
KMK (Dyskusja | wkład)

Next diff →
Linia 7: Linia 7:
<table border = 1 cellpadding = 5> <table border = 1 cellpadding = 5>
<tr><td><b>Adres</b></td><td><b>Etykieta</b></td><td><b>Opis</b></td></tr> <tr><td><b>Adres</b></td><td><b>Etykieta</b></td><td><b>Opis</b></td></tr>
-<tr><td colspan = 3>Konwersja liczb</td></tr> 
<tr><td>$D803</td><td>DEVID1</td><td> <tr><td>$D803</td><td>DEVID1</td><td>
<p>Znacznik, po którym system operacyjny rozpoznaje, czy ustawienie bitu rejestru PDVREG przyniosło jakiś efekt. Powinien mieć wartość $80.</p> <p>Znacznik, po którym system operacyjny rozpoznaje, czy ustawienie bitu rejestru PDVREG przyniosło jakiś efekt. Powinien mieć wartość $80.</p>

Wersja z dnia 07:10, 11 mar 2006

Pamięć ROM urządzenia połączonego do PBI zajmuje 2k od $D800 do $DFFF i pokrywa się z pakietem matematycznymn. W momencie, kiedy system operacyjny wybiera urządzenie ustawiając odpowiedni bit w rejestrze PDVREG $D1FF, urządzenie odłącza pakiet matematyczny (podanym z zewnątrz sygnałem MPD) włączając na to miejsce własną pamięć.

Pamięć ta pojawia się po ingerencji w rejestr PDVREG nawet wtedy, kiedy ROM systemu operacyjnego jest odłączaony przez skasowanie bitu rejestru PORTB. Dlatego niemożliwe są bezpośrednie transfery danych pomiędzy urządzeniem PBI a pamięcią w obszarze $D800-$DFFF - wszelkie odczyty do tej pamięci lub zapisy z niej powinny być buforowane przez DOS lub inicjalizer.

Podane tu adresy nie są do wykorzystania w programach użytkownika, korzysta z nich wyłącznie system operacyjny.

AdresEtykietaOpis
$D803DEVID1

Znacznik, po którym system operacyjny rozpoznaje, czy ustawienie bitu rejestru PDVREG przyniosło jakiś efekt. Powinien mieć wartość $80.

$D805PDIOR

Parallel Device I/O Routine. Punkt wejścia do procedury obsługującej urządzenia blokowe. Działa ona tak jak SIO, czyli transmituje dane całymi blokami (sektorami). W chwili wejścia do PDIOR parametry transmisji ustawione są w DCB. Po przeprowadzeniu operacji procedura powinna zwrócić status w rejestrze Y (zob. Kody błędów), ustawić znacznik C procesora na 1 (SEC) i zakończyć się przez RTS. Jeśli urządzenie "nie chce" obsłużyć wywołania (bo np. jest to dysk, a ustawione w DCB parametry dotyczą drukarki), procedura powinna skasować znacznik C (CLC) i zakończyć się przez RTS.

$D808PDVINT

Parallel Device Interrupt routine. Procedura obsługi przerwania IRQ wywołanego przez urządzenie. Powinna kończyć się przez RTS (nie RTI!).

$D80BDEVID2

Znacznik analogiczny do DEVID1. Powinien mieć wartość $91.

$D80CPDSPC

Parallel Device Specification. Jeśli urządzenie jest urządzeniem znakowym CIO, bajt ten powinien zawierać jego symbol identyfikacyjny analogiczny do tego, jaki wpisuje się do HATABS; np. dla urządzenia "E:" będzie to bajt o wartości $45 ('E').

Gdy urządzenie jest blokowe (SIO) bajt ten powinien być wyzerowany.

$D80DPDVOPV

Parallel Device Open Vector. Dla urządzeń znakowych CIO powinien wskazywać procedurę otwarcia pliku, jeśli zaś urządzenie nie rejestruje się w CIO, powinien wskazywać rozkaz RTS. Analogicznie jak w przypadku innych urządzeń CIO wektor powinien zawierać adres procedury zmniejszony o 1.

$D80FPDVCLV

Parallel Device Close Vector. Dla urządzeń znakowych CIO powinien wskazywać procedurę zamknięcia pliku, jeśli zaś urządzenie nie rejestruje się w CIO, powinien wskazywać rozkaz RTS. Analogicznie jak w przypadku innych urządzeń CIO wektor powinien zawierać adres procedury zmniejszony o 1.

$D811PDVGBV

Parallel Device Get Byte Vector. Dla urządzeń znakowych CIO powinien wskazywać procedurę odczytu bajtu, jeśli zaś urządzenie nie rejestruje się w CIO, powinien wskazywać rozkaz RTS. Analogicznie jak w przypadku innych urządzeń CIO wektor powinien zawierać adres procedury zmniejszony o 1.

$D813PDVPBV

Parallel Device Put Byte Vector. Dla urządzeń znakowych CIO powinien wskazywać procedurę zapisu bajtu, jeśli zaś urządzenie nie rejestruje się w CIO, powinien wskazywać rozkaz RTS. Analogicznie jak w przypadku innych urządzeń CIO wektor powinien zawierać adres procedury zmniejszony o 1.

$D815PDVSTV

Parallel Device Status Vector. Dla urządzeń znakowych CIO powinien wskazywać procedurę odczytu statusu, jeśli zaś urządzenie nie rejestruje się w CIO, powinien wskazywać rozkaz RTS. Analogicznie jak w przypadku innych urządzeń CIO wektor powinien zawierać adres procedury zmniejszony o 1.

$D817PDVSPV

Parallel Device Special Vector. Dla urządzeń znakowych CIO powinien wskazywać procedurę obsługi operacji specjalnych, jeśli zaś urządzenie nie rejestruje się w CIO, powinien wskazywać rozkaz RTS. Analogicznie jak w przypadku innych urządzeń CIO wektor powinien zawierać adres procedury zmniejszony o 1.

$D819PDVINIT

Parallel Device Initialization routine. Procedura inicjowania urządzenia.

Personal tools