SAM COUPE je takove vylepsene ZX, presto ale stale muze fungovat jako klasicke ZX a to ve dvou rezimech:
A) ZX 16kB - klasicky ZX mod kompatibilni se starym gumakem 16kB. Dosahne se toho tak, ze se vypne(odpoji) hornich 32kB ramky a pokud neni pripojeny 1MB ramdisk, bude v tomto prostoru citelny vzdy bajt #FF, stejne jako u ZX Spectra se 16kB.
B) ZX 48kB - tady neni co dodat, proste klasicky ZX mod bez rozsirene ramky.
SAM COUPE ma vlastni romku, jinou nez ZX. Proto je treba pred prechodem do ZX rezimu take zajistit, ze ve spodnich 16kB bud kopie originalni ZX48 romky, nebo nejaka jina ZX kompatibilni. Na SAM COUPE se to resi takto:
1) nahraje kamkoli to samacke ramky 256/512kB zx romku, treba z diskety
2) prepne se do allram rezimu tak, aby blok pameti ram se ZX romkou lezel od adresy 0 v adresovem prostoru 64kB. Nakonec jeste aktivujeme ochranu proti zapisu do spodnich 16kB pro dokonalou emulaci ZX rom. (samotny allram rezim by byl na nic, protoze romka i ZX software casto zapisuji do oblasti rom. Proto ma SAM tuto vychytavku s blokovanim zapisu)
3) jako posledni krok uz staci jen nastavit pomoci 16ti OUTu spravnou paletu ZX barev a prepnout do grafickeho modu ZX. A samozrejme je take nutne nastavit, v jake strance ram lezi videoramka. SAM ma totiz az 32 samostatnych ZX videoramek, vlastne videoram muze lezet v jakekoli 16kB strance SAM ram.
4) to je asi tak cele, ted uz jen RST 0 pro ZX reset, nebo primo spustit snapshot ze ZX tak, ze se nahraje blok ram a obnovime registry CPU.
Donedavna nikoho nenapadlo, ze by na SAM COUPE mohl behat i software pro ZX128. S timto rezimem jsem prisel az ja. Pokud pripojite 1MB ramdisk, bude po prepnuti do ZX16 modu v hornich 32kB adresoveho prostoru viditelna pamet ramdisku. Ramdisk ma dva strankovaci porty - OUT 128,xx prepina stranky externi ram v oblasti 32768-49151 a OUT 129,xx prepina stranky externi ram v oblasti 49152-65535. Pro emulaci zrcadleni stranky 2 jako u ZX128 je nutne pouzit OUT 128,2 a port 129 nam zustane jako nahrada za strankovaci port ZX128. Staci vzit nejakou ZX hru, ktera strankuje ZX ram na portu 32765 a prepsat toto cislo portu na 129 a zaroven se musi vynulovat ostatni bity portu, ktere prepinaji treba videoramku. V ramdisku oproti ZX128 zadna druha videoram nelezi, takze muzeme pouzivat jen napevno nastavenou prvni vram. Na port 129 doporucuju zapisovat jen hodnoty 0-7, nebo 16-23, jine hodnoty nastavi jinou stranku ram a to nechceme. ZX software vyuzivajici obe videoramky na SAM COUPE bude bud nepouzitelny, nebo muze obraz trochu blikat, pripadne pojede bez problemu. Zalezi jak je to napsane. Nektere hry a programy pouzivaji jen jednu videoram a po uprave na SAMa fungujou uzasne.
A ted jak to je s casovanim:
SAM ma CPU na 6MHz, ale po prepnuti do ZX grafickeho modu zamerne umele brzdi CPU tak, aby jel asi jen o 15% rychleji nez na ZX. Casovani obrazu je take jine, ale to neni zadna veda, vzdyt ZX48,ZX128,DIDAKTIK M,TIMEX 2048,PENTAGON i SCOPRION maji kazdy jine casovani a zase tolik to nevadi. SAM neni vyjimkou. V rezimu ZX48 je celych 64kB adresoveho prostoru zpomalovano ulou, protoze SAM nema zadnou rychlou ramku, ale jen jednu velkou videoram. I pres zpomalovani je ale rychlost trosku vyssi nez na ZX. Casovani instrukci je trosku jine(brzdeno pravidelne WAITem) a ZX hudba pro speaker na SAMovi hraje trochu falesne(to zpusobuje to umele zpomalovani CPU na rychlost blizici se 3.5MHz). V rezimu ZX16 s pripojenou externi 1MB ram zistame zajimavy model, protoze spodnich 32kB jede na rychlosti podobne ZX, zatimco od 32768 do 65535 je vsude superrychla ramka a CPU tu bezi nebrzdene na 6.0 MHz. A prave od adresy 32768 je i na ZX Spectru rychla pamet, takze drtiva vetsina her ma prave casove narocne rutiny v teto oblasti. Na SAM COUPE se to projevi jako az dvojnasobne zrychleni(turbo), ale u dobre psanych her rychlost zustava stejna, jen se zlepsi plynulost. U starsich her muze opravdu dochazet k poradnemu zrychleni, zde bych doporucil pouzivat rezim ZX48.
Co klavesnice a ostatni porty ? :
Membrana klavesnice je dvojvrstva jako u ZX gumaka a je zapojena shodne jako gumak. Klavesy, ktere ma SAM navic, jsou oddelene a citelne na jinych portech. Port klavesnice zustava #FE a ma plnou 8bit adresaci. Atributovy port #FF je rovnez citelny a pouzitelny u her k synchronizaci s obrazem. Port pro nastaveni barvy borderu ma navic jeste jeden bit, ktery doboluje pouzit BRGHT pro barvu okraje obrazovky. Joystick u SAMa je napojeny na klavesnici a je kompatibilni se SINCLAIR 1 nebo SINCLAIR 2.
Co kazetak ? :
Abych se priznal, nezkousel jsem v ZX modu nahravat z kazetaku, ale melo by to jit. lepsi ale bude primo nahravat TAP,SNA a Z80 soubory z diskety/image na IDE/z CD/DVD s ISO. Existuje totiz jakysi ZX emulator, coz je zmodifikovana ZX48rom s dalsim kodem, ktery umoznuje pouzivat NMI menu a ma browser pro CD/DVD, nebo nahrava z diskety s FAT12, z +D diskety ci z IDE. No, kdo by dnes pouzival kazetak...
Co sbernice a moznost pripojeni ZX periferii ? :
SAM ma jiny systemovy konektor, ale obsahuje stejne signaly jako ZX (+ dalsi navic). Da se zhotovit redukce ze SAM sbernice na ZX sbernici. Takovou redukci pripojite k SAM coupe a na konci mate klasickou ZX sbernici pro dalsi periferie. Tohle jeste rozeberu detailne... Prozatim tady je obrazek moji stare redukce:
http://velesoft.speccy.cz/samcoupe/sam-zxbus/zxbus-convertor-old.jpgPodarilo se mi rozbehat D40 i DIVIDE....