Musím opravit jedno tvrzení:
"grafický režim 256x192 pixelů, každý pixel může nabývat jedné ze čtyř /OPRAVA: ŠESTNÁCTI/ barev..."
Jinak řečeno o grafických módech SAMa:
Mode 1: 256*192 bodů, 2 barvy ze 16 pro 8*8 pixelů - mód ZX Spectra, 6144 bajtů pixelů + 32*24, tj. 768 bajtů atributů
Mode 2: 256*192 bodů, 2 barvy ze 16 pro 8*1 pixel, 6144 bajtů pixelů + 32*192, tj. 6144 bajtů atributů
Mode 3: 512*192, 4 barvy, 24576 bajtů
Mode 4: 256*192, 16 barev, 24576 bajtů
Barvy je možno vybrat z celkové palety 128 barev (s HW rozšířením Kaleidoscope 32768 barev - to se však příliš dlouho neprodávalo).
Více barev než 16 (256*192 bodů) nebo 4 (512*192) jde zobrazit v rámci přepínání palety 16 (nebo 4) barev na řádek. Přepínání barevných palet a dokonce i grafických módů v rámci zobrazeného screenu provádí ASIC čip (kromě stránkování emuluje i hw porty ZX Spectra 48k) a lze tak činit přímo příkazy SAM Basicu (resp. Master Basicu).
Textové režimy se tvoří v grafice, v režimu 256*192 obvykle znaky o velikosti 8*8 až 8*12, 6*8, 4*8 bodů. Rozlišení 512*192 je používáno pro znaky o šířce 6 či 8 bodů, tedy obvykle 64*24 znaků či 85*24 znaků (proměnlivou velikost znaků nastavíte příkazem CSIZE v SAM Basicu).
Práce s přepínáním obrazovek dovoluje např. textovku s grafikou v módu 4 (16 barev), pod tím ikony v 16 barvách s jinými 16 barvami, a v dolní polovině obrazovky mód 3 se 64 znaky na řádek ve 4 barvách. Nejspodnější informační (stavový) řádek může mít opět další odlišné 4 barvy.
S trochou šikovnosti lze na obrazovku dostat obrázky s 32 barvami z Amigy. SAM Basic to už nepodporuje, ale při využití přerušení, se správným načasováním, lze přepnout balík barev a dokonce graf. mód i uprostřed řádky!
Levným a efektivním řešením je přepínání obrazovek (obdoba jednoduššího řešení se 2 obrazovkami u ZX Spectra 128k). I SAM Basic dovoluje v rámci základní paměti 512 KB otevřít si větší počet obrazovek (OPEN SCREEN), střídavě v nich tvořit grafiku (náhravat obrázky), z nichž lze některou zobrazit (DISPLAY).
Obrazovku lze také vypnout, neboť grafika vlastně SAMa zpomaluje :o), takže některé programy při vybraných operacích, např. assembler Comet při překladu zdrojového textu do binárky, vypínají obraz - v takovém případě počítač "běží" na maximu 6 MHz.
Ještě dvě zajímavosti:
1. Autorem SAM Basicu je autor Beta Basicu pro ZX Spectrum Dr. Andy Wright, SAM Coupe přečte spectrácké kazety, diskety s formátem dobově nejkvalitnějšího disk. řadiče Disciple či Plus D a spustí basicové programy, tedy i vykreslí grafikou. I když SAM Coupe dokáže plně emulovat ZX Spectrum i na úrovni strojového kódu a přístupu k periferiím, je v emulačním módu o trochu rychlejší, takže časování některých kritických rutin v trikové grafice spectráckých programů (hlavně dem) je třeba upravit :-)
2. SAM měl mít původně 64 barev, ale když Bo Jangeborg (autor spectráckých her Fairlight 1 a 2 a graf. programů Artist 1 a 2) začal psát - SAMovi a jeho graf. možnostem na míru - graf. balík "Flash!" , doporučil počet barev zvýšit.
Emulátor SAMa (troufám si tvrdit, že jeden z nejkvalitnějších emulátorů i s ohledem na možnosti nastavení) naleznete na: http://www.simonowen.com/
Ta chybicka se vloudila diky memu chaotickemu psani poznamek :-) Proste jsem si kdysi napsal rozliseni 256x192x4, ale problem je v tom, ze nekdy tu ctverku chapu jako pocet bitu na pixel (tj. zname bpp) a nekdy jako pocet barev :-)
Dekuji za vycerpavajici popis SAMa. To zpomalovani vypoctu pri zapnute grafice je celkem logicke (vyplyva to z rezimu pristupu do pameti) a napriklad u Atarka se vypnutim DMA pro grafiku dal urychlit vypocet az o tricet procent! (pouzival jsem to napriklad u svych "fraktalovacu"). Jeste si to pamatuju: vypnuti DMA: POKE 559,0, opetovne zapnuti: POKE 559,34.
Samozrejme, ze to zpomaleni zalezelo na nahozenem grafickem rezimu, cim mene informaci na obrazovce, tim mensi zpomaleni.
Ten soucasny pristup byl reseny dvema sbernicema? Na Atarku se totiz pri pristupu GFX cipu (tj. Anticu) do pameti poslal CPU signal HALT a procesorek se slusne na jeden nebo vice taktu odpojil od sbernice (vystupy na velkou impedanci). Trosku to obchazel az obvod ve vyssich modelech, tj. Atari 130XE.
Neviem ako na SAMovi ale na Amige boli dva druhy pamate - Fast RAM a Chip RAM.
Do FAST mal pristup len procesor a CHIP bola zdielana s chipsetom. Na urovni zbernice to zrejme tiez muselo byt nejako rozdelene.
ROM image je soucasti dodavky emulatoru (jako samostatny file), tak proc hledat :-)
Pro ty, co se chteji presvedcit, ze se jedna o pravou ROM ;-), jeden odkaz:
sam.speccy.cz
Samozrejme si lze do emulatoru nastavit i upravene, cizi, tedy "externi" ROMky, napr. 16k ze ZX Spectra...