Téma ukládání čehokoliv na kazety asi nikoho zajímat nebude, ale podívejme se na to z hlediska chápání vnitřního fungování Sama. Když jsem kdysi měl doma jen Sama, hodně jsem pracoval na emulátorech ZX Spektra pro Sama. Dělal jsem si svůj vlastní (samozřejmě "nejlepší"
) emulátor, ale ten asi ani neznáte, protože těch emulátorů během let vznikla celá řada, prostě to byla upravená ZX ROM s nějakým přidanými funkcemi pro ukládání snapshotů na diskety apod. Někteří autoři si dali i práci s úpravou časování LOAD a SAVE rutin v ZX ROM, což dost pomáhalo (ale nutné to nebylo), protože Sam pořád běží o něco rychleji než Spectrum. Nicméně taky jsem si všiml, že všechny ty emulátory mají SAVE blbě. Čáry na obrazovce mají jiný vzhled a zvuk je trošku vyšší, CPU očividně běží rychleji, časování těch rutin v ZX ROM je tedy špatně. Neměl jsem osciloskop, takže jsem jen podomácku jak MacGyver využil "co dům dal" a odladil jsem si lepší SAVE než měli ostatní. Potud dobré, ale dodnes nevím proč. Proč se to tak chová, proč rychlost CPU při SAVE v grafickém MODE 1 je jiná než normálně. K téhle záhadě jsem nikde zatím neviděl nějaké vysvětlení.
Co vím (pokud si to ještě dobře pamatuju):
V reklamních materiálech píší 6 MHz, ale ve skutečnosti normálně v MODE 3 a 4 má CPU nějakou určitou rychlost cca 4.5 MHz, která kolísá a v BORDERu je to rychlejší než při vykreslování PAPERu. Pokud se Sam přepne do MODE 1, tak CPU je pomalejší a proto líp běží ty staré programy pro ZX Spectrum. Jenže při SAVE ze ZX ROM (která je nahraná do RAM, samozřejmě) je to CPU najednou zase o dost rychlejší. Ale pořád je pomalejší než v MODE 4. A otázkou je proč. Měl jsem i přesně změřené ty rychlosti, ale to jsem bohužel už zapomněl. Jen tak od boku střelím, že to bylo zhruba 4.5 MHz v MODE 4, 3.5 MHz v MODE 1 a 4.1 MHz při SAVE v MODE 1. (Opravdu jen střílím od boku, abyste měli představu, o čemu tu píšu. Ta rychlost při SAVE v MODE 1 je blíž k tomu MODE 4 než k MODE 1.)
Přemýšlel jsem i o tom, zda tohle podivné chování nesouvisí s tím, že CPU nějak mění rychlosti při OUT na porty. Nevím přesně, kterých portů se to týká a proč se to děje, ale všiml jsem si v praxi, když jsem dělal převody 128k her s AY hudbou, že některé ty hry v menu byly jakoby zrychlené, dokud se nepřevedla ta AY hudba na SAA. Prostě ten OUT na porty AY zrychloval tu hru. Někde jsem četl, že to bylo kvůli generování dalšího přerušení. Ale není vyloučeno, že se tím zároveň i měnila rychlost CPU, to totiž jen tak v nějaké cizí hře je velmi těžké poznat.