Debuguję sobie Atari800 i chciałbym zweryfikować poprawność kodu emulującego SDX z wpiętym kartridżem zewnętrznym, a konkretnie z takim który też obsługuje przełączanie banków. Akurat ani dokumentacja ani Atariki tego nie wyjaśnia:

1. Kartridż SDX reaguje na operacje na adresach D5E0-D5EF (ew. D5E0-D5FF). Czy kartridż zawnętrzny reaguje na operacje na stronie D5 poza tym zakresem? Czy zależy to od włączenia/wyłączenia kartridża zewnętrznego i/lub SpartaDOSa?
2. Czy kartridż zawnętrzny reaguje na operacje na zakresie D5E0-D5EF (D5E0-D5FF)? Czy zależy to od włączenia/wyłączenia kartridża zewnętrznego i/lub SpartaDOSa?
3. Czy kartridż SDX w jakikolwiek nieudokumentowany sposób reaguje na operacje na stronie D5 poza zakresem D5E0-D5EF (D5E0-D5FF)?

A8CAS - narzędzie do 100% archiwizacji kaset Atari

2

SpartaDOS X steruje zewnętrznymi kartridżami za pomocą zmodyfikowanych linii S4/S5 (RD4/RD5).

Ad. 1. Tak, kartridż zewnętrzny może reagować na D5 niezależnie od SDX, bo sygnał CCTL nie jest podmieniany.
Ad. 2. To zależy od kartridża, niektóre reagują na obce adresy bo mają niepełne dekodowanie (np. Maxflash 8)
Ad. 3. Nie, reaguje tylko na adresy $D5E0 i powyżej.

Sparta najlepiej współpracuje z kartrdżami typu OSS (Action, Basic XL/XE, Mac/65), które dadzą się włączyć i wyłączyć z jej poziomu. W przypadku innych kartridży zwykle przekazywane jest im sterowanie przy starcie SDX i tak już zostaje.

3

Ad1. Acha, czyli jeśli dobrze rozumiem, to mogę sobie przełączać banki w karcie zewnętrznym nawet gdy został on odłączony przez zapis po D5EC. Zgadza się?
Ad.2. OK, rozumiem. Czyli fakt dostępu do D5E0-D5EF nie jest nijak maskowany przez kartridż SDX i dociera do kartridża zewnętrznego.

Dziękuję. Mam jeszcze dwie wątpliwości:
4. Taki np. Bounty Bob przełącza banki przy dostępie pod 8FF6-8FF9/9FF6-9FF9. Czy w sytuacji gdy mam Bounty Boba wetkniętego w Spartę, operacje na ww. adresach będą powodować przełączanie banków kartridża nawet gdy jest on odłączony przez zapis do D5EC?
5. A co jeśli nie mam kartridża wpiętego w Spartę i zrobię zapis do D5E8? Co się wtedy pojawi w przestrzeni adresowej karta? RAM, śmieci, "coś innego"?

A8CAS - narzędzie do 100% archiwizacji kaset Atari

4

Ad 1. Tak, dotyczy to kartridży sterowanych na stronie $D5.
Ad 4. Nie sądzę. Linia S4 która odpowiada za adresy $8000-$9FFF jest zarządzana przez Spartę, czyli kartridż w ogóle nie dostanie informacji o zapisie do rejestrów sterujących.
Ad 5. RAM

5

Dziękuję. Atari800 został poprawiony zgodnie z Twoimi odpowiedziami.

A8CAS - narzędzie do 100% archiwizacji kaset Atari