Rejestry modułu SpartaDOS X

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 22:00, 28 kwi 2010
KMK (Dyskusja | wkład)
(SpartaDOS X 4.3 - link fix)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)
(red.)
Linia 7: Linia 7:
Rejestr sprzętowy pokrywa adresy $D5E0-$D5EF ($D5Ex). Rejestr sprzętowy pokrywa adresy $D5E0-$D5EF ($D5Ex).
-'''Tabela: Znaczenie bitów rejestru sprzętowego $D5Ex'''+== Znaczenie bitów rejestru sprzętowego $D5Ex ==
<table <table
style="text-align: left;" border="1" style="text-align: left;" border="1"
- cellpadding="2" cellspacing="2">+ cellpadding="5" cellspacing="2">
<tr> <tr>
<td style="font-weight: bold;">Bit</td> <td style="font-weight: bold;">Bit</td>
Linia 31: Linia 31:
</table> </table>
-Do manipulacji na rejestrze używa się w programach instrukcji STA w+Do manipulacji rejestrem używa się w programach instrukcji STA w
połączeniu z odpowiednim adresem, np.: połączeniu z odpowiednim adresem, np.:
Linia 42: Linia 42:
Tego samego rodzaju rejestr sprzętowy użyto także w [[Diamond GOS]], lecz zastosowano adresy $D5D0-$D5DF. Tego samego rodzaju rejestr sprzętowy użyto także w [[Diamond GOS]], lecz zastosowano adresy $D5D0-$D5DF.
-Bity 0-2 określające bank SDX podlegają sprzętowej negacji przy ustalaniu banku kości EPROM, tak więc STA $D5E0 wybiera ostatni bank EPROMu (obszar 8kB od offsetu $E000), STA $D5E1 - bank 6, a STA $D5E7 - bank 0 EPROMu. Wynika z tego, że plik do zaprogramowania kości musi zawierać banki SpartaDOS X w kolejności malejącej, bank 0 jako ostatni (czyli 7 bank EPROMu). W takiej również postaci są dostępne i rozpoznawane pliki z obrazami kartridża SDX dla emulatora [[Atari800]].+Bity 0-2 określające bank SDX podlegają sprzętowej negacji przy ustalaniu banku kości EPROM, tak więc STA $D5E0 wybiera ostatni bank EPROMu (obszar 8 KB od offsetu $E000), STA $D5E1 - bank 6, a STA $D5E7 - bank 0 EPROMu. Wynika z tego, że plik do zaprogramowania kości musi zawierać banki SpartaDOS X w kolejności malejącej, bank 0 jako ostatni (czyli 7 bank EPROMu). W takiej również postaci są dostępne i rozpoznawane pliki z obrazami kartridża SDX dla emulatora [[Atari800]].
-==SpartaDOS X 4.3==+== SpartaDOS X 4.4 ==
-W SpartaDOS X 4.3 dodano możliwość obsługi większej ilości banków. W przystosowanych do tej wersji rozwiązaniach+W SpartaDOS X 4.4 dodano możliwość obsługi większej liczby banków. W przystosowanych do tej wersji rozwiązaniach
-sprzętowych, takich jak [http://trub.atari8.info/index.php?ref=intsdx_128kb intSDX 128kB], czy [http://trub.atari8.info/index.php?ref=atrax_128 Atrax SDX 128] zwiększono rozmiar rejestru do 5-ciu bitów. Dodatkowy bit (4) pełni taką samą rolę jak bity 0 i 1, tzn. numer wybieranego banku jest określony przez bity 4,2,1,0, co daje łącznie 16 banków ($0-$F). Znaczenie pozostałych bitów (0-3) pozostaje bez zmian. Dla 5-bitowego rejestru sprzętowego zajęte są adresy $D5E0-$D5FF.+sprzętowych, takich jak [http://trub.atari8.info/index.php?ref=intsdx_128kb intSDX 128kB], czy [http://trub.atari8.info/index.php?ref=atrax_128 Atrax SDX 128] zwiększono rozmiar rejestru do pięciu bitów. Dodatkowy bit (4) pełni taką samą rolę jak bity 0 i 1, tzn. numer wybieranego banku jest określony przez bity 4,2,1,0, co daje łącznie 16 banków ($0-$F). Znaczenie reszty bitów (0-3) pozostaje bez zmian. Pięciobitowy rejestr sprzętowy zajmuje adresy $D5E0-$D5FF.
[[Kategoria:Programowanie Atari 8-bit]] [[Kategoria:Programowanie Atari 8-bit]]

Aktualna wersja

W oryginalnym kartridżu SpartaDOS X (SDX) znajduje się rejestr sprzętowy o rozmiarze 4 bitów. Używa się go do następujących celów:

  • wybór banku SDX - zajęcie obszaru pamięci $A000-$BFFF przez jeden z ośmiu banków kartridża
  • wyłączenie kartridża SDX - zwolnienie obszaru $A000-$BFFF i udostępnienie dla BASICa, zewnętrznego kartridża, programu typu EXE itp.
  • włączenie/wyłączenie zewnętrznego kartridża - zarządzanie (na drodze sprzętowej) kartridżem wpiętym "przelotowo" do modułu SDX.

Rejestr sprzętowy pokrywa adresy $D5E0-$D5EF ($D5Ex).

Znaczenie bitów rejestru sprzętowego $D5Ex

Bit Funkcja
0, 1 wraz z bitem 2 określają numer wybieranego banku (gdy bit 3 jest skasowany, w przeciwnym wypadku nie mają znaczenia)
2 a) gdy bit 3 jest skasowany: wraz z bitami 0,1 określa numer wybieranego banku
b) gdy bit 3 jest ustawiony: włącza (0) lub wyłącza (1) zewnętrzny kartridż
3 a) gdy skasowany - wybranie banku kartridża SDX (numer określany za pomocą bitów 0,1,2)
b) gdy ustawiony - wyłączenie kartridża SDX

Do manipulacji rejestrem używa się w programach instrukcji STA w połączeniu z odpowiednim adresem, np.:

  • STA $D5E0-$D5E7 - wybór banku 0-7 (biblioteka SDX, używana w programach typu COM jest umieszczona w banku 1)
  • STA $D5EC - wyłączenie kartridża SDX i kartridża zewnętrznego (jak X.COM)
  • STA $D5E8 - wyłączenie kartridża SDX oraz włączenie kartridża zewnętrznego (jak CAR.COM).

Wartość wprowadzana za pomocą STA nie ma znaczenia, zazwyczaj jest to 0.

Tego samego rodzaju rejestr sprzętowy użyto także w Diamond GOS, lecz zastosowano adresy $D5D0-$D5DF.

Bity 0-2 określające bank SDX podlegają sprzętowej negacji przy ustalaniu banku kości EPROM, tak więc STA $D5E0 wybiera ostatni bank EPROMu (obszar 8 KB od offsetu $E000), STA $D5E1 - bank 6, a STA $D5E7 - bank 0 EPROMu. Wynika z tego, że plik do zaprogramowania kości musi zawierać banki SpartaDOS X w kolejności malejącej, bank 0 jako ostatni (czyli 7 bank EPROMu). W takiej również postaci są dostępne i rozpoznawane pliki z obrazami kartridża SDX dla emulatora Atari800.

SpartaDOS X 4.4

W SpartaDOS X 4.4 dodano możliwość obsługi większej liczby banków. W przystosowanych do tej wersji rozwiązaniach sprzętowych, takich jak intSDX 128kB, czy Atrax SDX 128 zwiększono rozmiar rejestru do pięciu bitów. Dodatkowy bit (4) pełni taką samą rolę jak bity 0 i 1, tzn. numer wybieranego banku jest określony przez bity 4,2,1,0, co daje łącznie 16 banków ($0-$F). Znaczenie reszty bitów (0-3) pozostaje bez zmian. Pięciobitowy rejestr sprzętowy zajmuje adresy $D5E0-$D5FF.

Personal tools