Weronika nie jest przelotowa, czy będzie....?
Zbudowałem to bo sprawdzić chciałem czy takie coś działać będzie. Działa, więc spełniło się po latach. THE END
Miało być bez fajerwerków i strzelistych konstrukcji. Proste i działające. I takie jest
Konop bardzo się zaangażował więc uwzględniłem jego zapotrzebowanie bo to on będzie się tym bawił i używał w/g swoich pomysłów
$D5C0 - adres rejestru sprzętowego Atari
D0 - programowy reset dla drugiego procesora
D1 - przełącza banki
D4 - $8000-$9FFF
D5 - $A000-$BFFF
D4, D5 konfigurować można wg upodobań programisty
D7 - tzw flaga, do komunikowania się procesorów
Drugi procesor
Bank zawsze ma 16k
D6 - przemieszcza bank z lokacji $C000-$FFFF do $4000-$7FFF i odwrotnie
Standardowo bank jest w $C000.... Co wynika z umieszczenia tu wektora startu dla 6502
D7 - flaga
Rejestry są do zapisu i do odczytu, nieznaczące bity przy odczycie =1
Flaga, to osobny rejestr pod tymi samymi adresami
D7 każdy procesor może zapisywać i odczytywać w dowolnej chwili.
Takie działanie jest jednak bez sensu, bo nic nie wnosi.
Programista musi wiedzieć jak tego używa i kiedy można zapisać, odczytać
Atari zapisuje D7=0 ale odczyta jako D7=1
Drugi procesor zapisuje D7=1 ale odczyta jako D7=0
Jak to działa
D7=0 po starcie Atari odczyta jako D7=1 i jest gotów przełączyć banki
Drugi procesor odczyta D7=0 i czeka na przełączenie
Atari przełączył banki i D7=1, co automatycznie odczyta jako D7=0 nie może przełączyć banków (to programista nie może przełączyć)
W tym czasie drugi procesor odczyta D7=1 , znaczy ma podstawiony nowy bank.
Pracuje?. Jak skończy ustawia D7=1 co odczyta jako D7=0 (że nie ma nowego banku)
Atari odczytuje D7=1 więc jak ma przygotowane dane to może przełączyć bank i ustawić D7=1
Atari może do rejestru "flagi"wpisać 0 lub 1, drugi procesor tylko 1
Nie jest to jakieś fiku miku, ani żadne cudo, po prostu wynika z optymalizacji elektroniki
Fotki modułu...
Poproszę Konopa, bo nie mam zielonego pojęcia jak je zamieścić na AA
To prototyp, starannie wykonany.