Po resecie obszar między Basiciem a grafiką jest zapełniany masą parametrów tzw zmienne systemowe oraz tzn tablicą skoków i potem w tle na przerwaniach po 50 a niektóre nawet po 300 razy na sekundę wykonuje pewne skoki do ROMu z tej tablicy skoków i modyfikuje niektóre z tych zmiennych.
A gdy przełączysz pod ten adres gdzie sie one znajdują blok z RAMdysku który tej tablicy i tych zmiennych nie ma to sie natychmiast zawiesi. Tak szczerze to pierwsze słyszę że w ogóle da sie to na CPC zrobić. Bo gdzieś czytałem że pod adresem &0000 jest albo ROM z OSem (nie mylić z Amsdosem), albo początek RAMu z Basiciem, pod adresem &8000 ZAWSZE jest RAM z końcówką Basica i tymi danymi systemowymi, pod &C000 podłączony jest RAM pamięci ekranu, albo któryś z 16KB bloków z pozostałych ROMów, poczynając od ROMu Basica i Amsdosa w modelach z podłączoną stacją, a kończąc na cudach wszelakich tkwiących w Expansion Port, a pod &4000 i tylko tam można podłaczać 16KB bloki RAMdysku, nigdy więcej niż jeden taki blok na raz.
Dopiero w modelu Plus jest opcja by bloki RAMdysku podłączać także pod adres &C000, z czego korzysta program B-ASIC (tylko dla plusów), i reorganizuje pamięć, by trzymać listingi tego rozszerzonego B-ASICa tam gdzie normalnie była pamięć graficzna, a pamięc graficzną ma domyślnie tam gdzie stary CPC miał Basic, co ułatwia korzystanie z Overscanów, bez gryzienia sie z listingami Basica. Ale nie dam głowy że moja wiedza na temat przełączania bloków jest pełna.
Mapa bloków pamięci w CPC 6128. Każdy blok ma 16KB. Ale tylko 4 z nich można na raz podłączyć do procesora.
Dlatego pod adresy podane w pierwszej kolumnie w razie potrzeby są podłączane inne bloki.
W CPC 664 nie ma Ramdysku a w CPC 464 nie ma także Amsdosa.
---------------------------- ------ - - -
| &FFFF | ROM | ROM | | Tu się podłącza wszelkie inne zewnetrzne ROMy.
| &C000 | Basic | Amsdos | | <- Tu w RAM od &C000 jest pamięć ekranu, ale można to zmienić.
---------------------------- ------ - - -
| &BFFF | <- Tu jest tablica skoków, stos, i dane systemowe które zawsze są w tym samym miejscu.
| &8000 | <- Tu gdzieś jest HIMEM, granica między Basiciem a kodem maszynowym, ale można ją obniżać.
---------------------------------------------- ------ - - -
| &7FFF | RamDysk| RamDysk| RamDysk| RamDysk| | Tu się podłącza wszelkie
| &4000 | 204 | 205 | 206 | 207 | | inne zewnętrzne RAMy.
---------------------------------------------- ------ - - -
| &3FFF | ROM |
| &0000 | CPC OS | <- Tu w RAM od &170 zaczyna się program w Basicu.
-------------------