Rejestr sterujący Sic!
From Atariki
Wersja z dnia 19:03, 7 lip 2011 Miker (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 19:08, 7 lip 2011 Miker (Dyskusja | wkład) (+ket, + popr.) Next diff → |
||
Linia 1: | Linia 1: | ||
Opis rejestru sterującego [[Sic!]] | Opis rejestru sterującego [[Sic!]] | ||
- | + | ---- | |
* Rejestr znajduje się pod adresem $D500. Ze względu na niepełne dekodowanie adresu rejestr zajmuje w rzeczywistości obszar od $D500 do $D51F (32 bajty). | * Rejestr znajduje się pod adresem $D500. Ze względu na niepełne dekodowanie adresu rejestr zajmuje w rzeczywistości obszar od $D500 do $D51F (32 bajty). | ||
* Rejestr jest do zapisu i odczytu: reaguje na zapis, ale zapisaną wartość można z niego odczytać w dowolnej chwili. | * Rejestr jest do zapisu i odczytu: reaguje na zapis, ale zapisaną wartość można z niego odczytać w dowolnej chwili. | ||
* Stan początkowy (po włączeniu zasilania) to $00. Odpowiada to obecności kartridża 8k w obszarze $A000-$BFFF. | * Stan początkowy (po włączeniu zasilania) to $00. Odpowiada to obecności kartridża 8k w obszarze $A000-$BFFF. | ||
+ | ---- | ||
* Funkcje bitów: | * Funkcje bitów: | ||
**7 = 0 – włączona blokada zapisu do pamięci flash | **7 = 0 – włączona blokada zapisu do pamięci flash | ||
**6 = 0 – nieparzysty blok 8k widoczny w obszarze $A000-$BFFF | **6 = 0 – nieparzysty blok 8k widoczny w obszarze $A000-$BFFF | ||
**5 = 0 – parzysty blok 8k niewidoczny w obszarze $8000-$9FFF | **5 = 0 – parzysty blok 8k niewidoczny w obszarze $8000-$9FFF | ||
- | == | + | ---- |
- | Bity 4-0 wybierają nr banku 16k z zakresu od 0 do 31 (bit 0 jest najmniej znaczącym bitemu nru banku). Bank $00 to adresy $00000-$03FFF pamięci flash, bank $01 to adresy $04000-$07FFF pamięci flash itd. | + | Bity 4-0 wybierają nr banku 16k z zakresu od 0 do 31 (bit 0 jest najmniej znaczącym bitem numeru banku). |
+ | |||
+ | Bank $00 to adresy $00000-$03FFF pamięci flash, bank $01 to adresy $04000-$07FFF pamięci flash itd. | ||
Bity 6 i 5 decydują, czy odpowiednia połówka banku wybranego bitami 4-0 będzie widoczna w odpowiednich obszarach pamięci Atari. Bit 5 steruje widocznością pierwszej połówki (adresy $8000-$9FFF w Atari oraz niższa połowa banku 16k pamięci flash). Bit 6 steruje widocznością drugiej połówki (adresy $A000-$BFFF w Atari oraz wyższa połowa banku 16k pamięci flash). | Bity 6 i 5 decydują, czy odpowiednia połówka banku wybranego bitami 4-0 będzie widoczna w odpowiednich obszarach pamięci Atari. Bit 5 steruje widocznością pierwszej połówki (adresy $8000-$9FFF w Atari oraz niższa połowa banku 16k pamięci flash). Bit 6 steruje widocznością drugiej połówki (adresy $A000-$BFFF w Atari oraz wyższa połowa banku 16k pamięci flash). | ||
W efekcie, przy pamięci flash o pojemności 256k, jej połowa (128k) jest dostępna zawsze w obszarze $8000-$9FFF, a druga połowa – w obszarze $A000-$BFFF. | W efekcie, przy pamięci flash o pojemności 256k, jej połowa (128k) jest dostępna zawsze w obszarze $8000-$9FFF, a druga połowa – w obszarze $A000-$BFFF. | ||
- | == | + | ---- |
Przykładowe wartości rejestru: | Przykładowe wartości rejestru: | ||
- | |||
*$00 – adresy $02000-$03FFF pamięci flash widoczne pod $A000-$BFFF. | *$00 – adresy $02000-$03FFF pamięci flash widoczne pod $A000-$BFFF. | ||
*$20 – adresy $00000-$03FFF pamięci flash widoczne pod $8000-$BFFF. | *$20 – adresy $00000-$03FFF pamięci flash widoczne pod $8000-$BFFF. | ||
Linia 22: | Linia 24: | ||
*$40 – pamięć flash niewidoczna | *$40 – pamięć flash niewidoczna | ||
*$A0 – jak $20, ale dodatkowo z wyłączoną blokadą zapisu do pamięci flash. | *$A0 – jak $20, ale dodatkowo z wyłączoną blokadą zapisu do pamięci flash. | ||
- | == | + | ---- |
Adresy sterujące pamięciami flash znajdują się odpowiednio: | Adresy sterujące pamięciami flash znajdują się odpowiednio: | ||
- | |||
# $5555 – pod $9555 w banku nr 1 (dostęp: wpisać $A1 do $D500) | # $5555 – pod $9555 w banku nr 1 (dostęp: wpisać $A1 do $D500) | ||
# $2AAA – pod $AAAA w banku nr 0 (dostęp: wpisać $A0 do $D500) | # $2AAA – pod $AAAA w banku nr 0 (dostęp: wpisać $A0 do $D500) | ||
+ | [[Kategoria: Programowanie Atari 8-bit]] |
Wersja z dnia 19:08, 7 lip 2011
Opis rejestru sterującego Sic!
- Rejestr znajduje się pod adresem $D500. Ze względu na niepełne dekodowanie adresu rejestr zajmuje w rzeczywistości obszar od $D500 do $D51F (32 bajty).
- Rejestr jest do zapisu i odczytu: reaguje na zapis, ale zapisaną wartość można z niego odczytać w dowolnej chwili.
- Stan początkowy (po włączeniu zasilania) to $00. Odpowiada to obecności kartridża 8k w obszarze $A000-$BFFF.
- Funkcje bitów:
- 7 = 0 – włączona blokada zapisu do pamięci flash
- 6 = 0 – nieparzysty blok 8k widoczny w obszarze $A000-$BFFF
- 5 = 0 – parzysty blok 8k niewidoczny w obszarze $8000-$9FFF
Bity 4-0 wybierają nr banku 16k z zakresu od 0 do 31 (bit 0 jest najmniej znaczącym bitem numeru banku).
Bank $00 to adresy $00000-$03FFF pamięci flash, bank $01 to adresy $04000-$07FFF pamięci flash itd.
Bity 6 i 5 decydują, czy odpowiednia połówka banku wybranego bitami 4-0 będzie widoczna w odpowiednich obszarach pamięci Atari. Bit 5 steruje widocznością pierwszej połówki (adresy $8000-$9FFF w Atari oraz niższa połowa banku 16k pamięci flash). Bit 6 steruje widocznością drugiej połówki (adresy $A000-$BFFF w Atari oraz wyższa połowa banku 16k pamięci flash).
W efekcie, przy pamięci flash o pojemności 256k, jej połowa (128k) jest dostępna zawsze w obszarze $8000-$9FFF, a druga połowa – w obszarze $A000-$BFFF.
Przykładowe wartości rejestru:
- $00 – adresy $02000-$03FFF pamięci flash widoczne pod $A000-$BFFF.
- $20 – adresy $00000-$03FFF pamięci flash widoczne pod $8000-$BFFF.
- $60 – adresy $00000-$01FFF pamięci flash widoczne pod $8000-$9FFF.
- $40 – pamięć flash niewidoczna
- $A0 – jak $20, ale dodatkowo z wyłączoną blokadą zapisu do pamięci flash.
Adresy sterujące pamięciami flash znajdują się odpowiednio:
- $5555 – pod $9555 w banku nr 1 (dostęp: wpisać $A1 do $D500)
- $2AAA – pod $AAAA w banku nr 0 (dostęp: wpisać $A0 do $D500)