SAM Coupé

SAM Coupé je 8bitový domácí počítač uvedený na trh v roce 1989 firmou Miles Gordon Technology plc. (MGT). Jedná se o značně vylepšený klon počítače ZX Spectrum 48K firmy Sinclair Research.

Hardware 
Počítač je osazen procesorem Z80B taktovaným na 6 MHz spolu s obvodem ASIC (tzv. SuperULA), obsahujícím část napodobujíci čip ULA v ZX Spectru. První modely byly vybaveny 256 KB RAM, vnitřně je SAM jednoduše rozšiřitelný na 512 KB. Do slotů pod klávesnicí počítače lze zabudovat jednu či dvě 3,5" disketové mechaniky, které pracují s kdysi standardními DD disketami. Formát disket (vč. kapacity 780 KB) byl odvozen od Disciple a +D, populárních disketových řadičů pro ZX Spectrum, které firma MGT před SAMem vyráběla. Díky obvodu ASIC je na desce plošného spoje pouze sedm dalších integrovaných obvodů. Klávesnice počítače je tvořena 72 klávesami, 10 z nich jsou tzv. funkční klávesy, jejichž funkce je programovatelná uživatelem.

Grafika 

Počítač disponuje čtyřmi grafickými módy. První mód je kompatibilní se ZX Spectrem a umožňuje 2 barvy (pozadí a popředí) z palety 16 s atributy jasu a blikání v poli 8x8 pixelů při rozlišení 256x192. Druhý mód ("Timex mód") umožňuje to samé v poli 8x1 pixelů (tento mód měl jeden z prvních klonů ZX Spectra, počítač Timex Sinclair 2068, na ZX Spectru jej lze dnes vytvořit s pomocí obvodu DMA interface MB-02+). Další módy zobrazují samostatnou barvu pro každý pixel. Mód 3 poskytuje paletu čtyř barev při rozlišení 512x192, barevně plnohodnotný "Atari ST" mód 4 barev šestnáct při rozlišení 256x192. Paletu barev lze vybrat z celkového počtu 128 a na libovolné řádce měnit, stejně jako přepínat mezi grafickými módy. Paměť obrazu může být uložena v libovolné stránce základních 512 KB a ASIC při zobrazování z paměti různou měrou zpomaluje procesor, resp. programy běžící v této části paměti (v ROM i v ext. paměti je bez ohledu na grafický mód vždy plná rychlost 6 MHz). SAMův ASIC neobsahuje blitter, ani nepodporuje sprajty.

Zvuk 
Zvukový čip Philips SAA 1099 umožňuje šestikanálový výstup, jeho schopnosti mírně přesahují dva sdružené zvukové čipy AY-3-8910 (8912), známé ze starších počítačů ZX Spectrum 128K, MSX či Amstrad/ Schneider CPC. SAA 1099 nepodporuje přímo přehrávání digitálních zvuků (samplů). Za velkou přednost SAMa byla vydávána podpora MIDI, neboť SAM byl v době svého vzniku často porovnáván, co do zvukových a grafických možností, s 16bitovým "hudebním" počítačem Atari ST. MIDI současně slouží k propojení více SAMů do sítě (předchůdci tohoto komunikačního systému byla rozhraní pro ZX Spectrum – ZX Interface 1 a Disciple).

Firmware 
Počítač je vybaven pamětí ROM velkou 32KiB s uloženým BASICem, vytvořený dr. Andy Wrightem na základu jeho dřívějšího produktu, proslulého Beta BASICu pro ZX Spectrum. V ROM je mj. obsluha všech grafických módů, palety barev, sítě, myši, tiskárny a magnetofonu (s volitelnou rychlostí nahrávání a dat. kompatibilitou s nahrávkami ze ZX Spectra). SAM Basic využívá celých 512 KB paměti, jak pro text programu, proměnné, procedury, funkce a datová pole, tak pro správu virtuálních obrazovek (screenů). K jeho nastavení slouží přes 600 systémových proměnných. Basicové programy mohou být dlouhé přes 500 KB, systém dovoluje např. 65279 programových řádek, každá řádka může obsahovat až 127 příkazů a velikost řetězců či části (dimenze) polí může být až 64 KB. Přitom systém může zajistit správu paměti tak, aby různými programy navzájem nedocházelo k přepisu basicu, dat, programů ve strojovém kódu, systémových ovladačů a grafiky. Další rozšíření nabízí MasterBasic, např. zrychlení grafických funkcí, pohodlnější editaci programů, trasování jejich běhu, spooling pro tisk, podpora RS-232, třídění řetězců.

Diskový operační systém SAMDOS se vždy při startu počítače zavádí z diskety na konec paměťového prostoru (bootuje) a zabírá jednu 16 KB stránku paměti (s rozšířením Basicu i 32 KB a více). SAMDOS umožňuje číst diskety ze ZX Spectra ve formátu Disciple a PlusD, samostatné programy existují pro čtení a zápis na diskety naformátované na počítači ZX Spectrum řadičem Opus Discovery a dále na počítačích (IBM) PC, Atari ST, Sinclair QL a Acorn Archimedes. Verze MasterDOS podporuje podadresáře, až 7 ramdisků v základní i v rozšířené 4 MB paměti a až 778 souborů na disketě. Alternativním systémem je CP/M, nazvaný u SAMa ProDOS, datově kompatibilní s formátem 3,5" řadičů připojovaných externě k počítačům Amstrad CPC. Novější systém BDOS, obsluhující jako úložná média paměťové karty, umí původní dosové příkazy používané v SAM BASICu, pro programování ve strojovém kódu zachovává služby SAMDOSu (tzv. hook-kódy zavedené poprvé pro ZX Spectrum v ZX Interface 1). BDOS je tak plně kompatibilní s ostatními DOSy pro SAMa a je pro něj upraven i systém ProDOS. V BDOSu naformátovaná média jsou rozdělena na tzv. records o kapacitě diskety, jsou v nich uloženy obrazy disket a přepíná se mezi nimi podobně jako mezi adresáři. Příkazy pro ukládání a načítání dat lze mezi kazetou, disketou a sítí jednoduše přesměrovat příkazem DEVICE.

Software 
SAMovy grafické a zvukové možnosti ukazují ve výborné kvalitě převedené klasické hry jako Manic Miner, Lemmings, Prince of Persia a Street Fighter. Zdařilá je série her vytvořených firmou Enigma Variations: Sphera, Defenders of the Earth, Escape from the Planet of the Robot Monsters, Pipe Mania, Klax, The Famous Five a Futureball. Mnohdy z licenčních (finančních) důvodů nemohly být provedeny oficiální konverze her a proto vedle stařičkých klasik s vylepšenou grafikou jako např. Splat!, Astroball či Booty vznikaly spíše hry více či méně inspirované, s odlišnými názvy: Exodus (podobný Smash TV), T’n’T (Bomb Jack), Wop Gamma (Boulder Dash), Legend of Eshan (The Lords of Midnight) a Batz 'n Balls (Arkanoid). Možnosti vektorové grafiky SAMa ukazují hratelné demo nedokončené hry F-16 Combat Pilot a hra Stratosphere. Pro SAMa také existuje legendární hra Elite, nevyužívá však plné kapacity SAMa a je totožná s verzí pro ZX Spectrum.

Nástup SAMa podporovali autoři známí ze ZX Spectra. Prvním z nich je v manuálu k SAM BASICu uvedeno poděkování, patří mezi ně Simon Goodwin, David Whittaker, Simon White a Bo Jangeborg (autor hry Fairlight a programu Artist pro ZX Spectrum a prvního samovského grafického editoru Flash!). Na vývoji her Manic Miner a Prince of Persia se podílel František Fuka, dále naprogramoval první hudební editor SAMadeus a hru Shanghai. Patrik Rak na SAMa převedl hru Hexagonia. Samovskou scénu výrazně ovlivnila polská demoskupina ESI, která na zvukovou a grafickou úroveň SAMa převedla téměř všechny své hudební výtvory a vybraná dema (demo Lyra III napsala už přímo pro SAMa) a k tomu napsala několik, většinou volně dostupných, her s vynikající hratelností, zejména: Pac Man (později přejmenovaný na Bulgulators), Ice Chicken, Craft a Snakemania.

Na SAMovi lze bez úprav spouštět programy pro ZX Spectrum 48K. Pro dosažení funkčnosti klasického ZX Spectra je nutno pouze od počátku paměťového prostoru uložit obsah 16 KB paměti ROM ZX Spectra. K pohodlnější emulaci se podobně jako na moderních počítačích používá program-emulátor, který přesměruje ukládání dat na disk a u her upraví ("patchuje") uživatelské ovládání. Řada aplikací a zejména hry ve verzích 128K jsou upraveny pro systém SAMa a provozovány jako samostatné programy.

Rozšíření systému 
SAM byl často porovnáván se šestnáctibitovými počítači, jako vylepšený osmibit působil exoticky v době rozvoje systémů Atari ST, Acorn Archimedes a Amiga, jimž však neměl a nemohl konkurovat. Lze jen spekulovat, zda se vůbec mohl prosadit nějaký modernizovaný osmibitový systém, např. nástupce legendárního C64, nejlepší osmibit všech dob - Commodore 65 (C64DX). Jiné, starší osmibity, jako např. Sharp MZ800, Commodore 128, Amstrad/Schneider CPC6128 či Vtech Laser 700 požadavky doby doháněly především rozšířeními paměti, ve srovnání s flexibilním systémem SAMa však neměly modernizovaný operační systém, nové možnosti nevyužívaly jinak než pro ramdisk (C128 měl paměť rozdělenou po 64K, pro basicový program a pro proměnné) a ani nenabízely širší paletu barev. Po SAMovi vznikly podstatně vylepšené osmibity už jen u firmy Amstrad: v roce 1990 kancelářský PcW16 a herní 464 Plus a 6128 Plus.

K nejběžnějším rozšířením SAMa dnes patří 512 KB základní paměti, 1 MB rozšířené paměti, hodiny reálného času (RTC), rozbočovač ext. sběrnice, myš a rozhraní IDE, díky němuž lze připojit harddisk a DVD mechaniku, k tomu obsahově mírně změněná ROM, umožňující navíc bootovat také z IDE zařízení. Diskety jako záznamová zařízení mnozí uživatelé nahradili paměťovými kartami CompactFlash (CF), MultiMediaCard (MMC) a Secure Digital (SD). Do jednoho i obou slotů pro disketové jednotky lze zapojit 8bitová rozhraní ATOM Lite+ s až čtyřmi IDE-CF adaptéry. Firma Quazar, výrobce řady doplňků, např. 16bitové zvukové karty Quazar Surround, rozhraní pro připojení PC klávesnice a interface se zvukovým čipem SID, vyvinula v roce 2007 interface Trinity se slotem pro SD/MMC karty (podporovaným BDOSem) a s ethernetovým rozhraním, díky němuž SAM komunikuje na Internetu. Existuje prototyp rozšíření, které by SAMa urychlilo (náhrada procesoru rychlejším ekvivalentem o taktu 20 až 24 MHz).

Hardware SAMa byl převeden do moderní náhrady starých čipů, programovatelných obvodů, v deskách ZX-UNO a MIST. Na moderních domácích PC je dále SAM se svými doplňky věrně emulován několika programy. Nejrozšířenějším emulátorem je SimCoupe na plaformách Windows 95/98/Me/NT/2000/XP/2003, Mac OS X 10.3 a novější, GNU/Linux, Pocket PC (ARM/MIPS/SH3), BeOS R5 / Zeta, QNX 6.3.x, OS/2 Warp, DOS a kompatibilní, Sun Solaris, Amiga OS 4, PlayStation Portable a GP2X. Simcoupe je dostupné i pro Raspberry PI a Rasbian.

Technické informace 

 procesor: Z80B, taktovací frekvence 6 MHz
 paměť RAM: 256 nebo 512 KiB, externí RAM 1, 2, 3 nebo 4 MiB
 paměť ROM: 32 KiB,
 hudební čip: Philips SAA 1099,
 joysticky: připojené paralelně ke klávesám 1 - 5 (první joystick) a 6 - 0 (druhý joystick)
 myš: připojená paralelně ke směrovým šipkám a klávese CNTRL

Stránkování paměti 
Protože procesor Z80 umožňuje adresovat pouze 64 KiB paměti, je celá paměť o velikosti 288 KiB nebo 544 KiB rozdělena na stránky o velikosti 16 KiB, které se připínají do adresového prostoru procesoru. Kteroukoli z patnácti nebo 32 stránek RAM lze přistránkovat do jakékoliv paměťového bloku. Od adresy 0 do 16383 je možné připojit stránku ROM 0, od adresy 49152 do adresy 65535 je možné připojit stránku ROM 1. Stejně tak je na stránky rozdělena externí RAM, její stránky lze ale připojovat pouze od adresy 32765 do 49151 a od 49152 do 65535. Videoram může být umístěna do kterékoliv stránky paměti RAM.

Ke stránkování paměti jsou použity porty 250 a 251. Port 250 je použit pro stránkování v části paměti od 0 do 32767, význam jednotlivých bitů hodnoty odeslané na tento port je následující:

Port 251 je použit pro stránkování v části paměti od 32768 do 65535, význam jednotlivých bitů hodnoty odeslané na tento port je následující:

Port 252 je použit pro umístění videoram a nastavení grafického režimu, význam jednotlivých bitů hodnoty odeslané na tento port je následující:

Pro stránkování externí RAM jsou používány porty 128 a 129. Port 128 je použit pro nastavení stránky v adresovém prostoru od 32768 do 49151, port 129 je použit pro nastavení stránky v adresovém prostoru od 49152 do 65535. Hodnota odeslaná na tyto porty určuje číslo připojené stránky.

Používané porty 

SAM Coupé využívá i bity portu 254, které u ZX Spectra nejsou použity. Význam jednotlivých bitů hodnoty odeslané na port 254 a čtené z tohoto portu je následující:

Klávesnice 
Způsob čtení stavu klávesnice je stejný jako u počítačů ZX Spectrum. Klávesy, které odpovídají klávesnici ZX Spectra jsou čteny na portu 254 (bity 0 - 4), přidané klávesy jsou čteny na portu 239 (bity 5 - 7). Stav kterých kláves je čten, je určeno nejvyššími 8 bity adresy portu. Adresa konkrétní pětice (resp. trojice) kláves, jejichž stav má být čten, je určena jako vyšší část adresy*256+254 (resp. jako vyšší část adresy*256+239).

Klávesy odpovídající klávesám ZX Spectra jsou vyznačeny tučně.

Joysticky a myš 

K počítači SAM Coupé je možné připojit dva joysticky. První joystick je připojen paralelně ke klávesám 1 - 5, druhý joystick je připojen ke klávesám 6 - 0. Joysticky jsou kompatibilní s joysticky Sinclair left (Sinclair joystick 1) a Sinclair right (Sinclair joystick 2) ZX Interface 2 a ZX Specter +2, +2A a +3.

Podobným způsobem je připojena myš paralelně ke klávese CNTRL a kurzorovým šipkám.

Vývojová verze počítače SAM Coupé 
Počítač SAM Coupé prošel různými stádii, ve kterých se jeho hardware podstatně lišilo od hardware obsaženého ve finální variantě počítače. Jedna z vývojových verzí je popsána v časopise Crash č. 50. Popsaná vývojová verze obsahuje 256 KiB paměti RAM stránkované na portu 229 a způsob stránkování je odlišný od stránkování ve finální variantě počítače.

Paměť této vývojové verze je možné rozšířit pomocí 512 KiB externí RAM. Místo obvodu Philips SAA 1099 používá popisovaná vývojová verze obvod AY-3-8912, ale připojený na jiných portech než u ZX Spectra 128K, nicméně o změně zvukového generátoru se už v té době uvažovalo.

Mezi nejzajímavější nápady pro organizaci paměti patřil nerealizovaný návrh na připojení videopaměti (pro zápis do ní) do oblasti ROM (která naopak slouží jen pro čtení instrukcí), což mělo ulehčit přesunům dat při přepínání velkých bloků paměti.

Odkazy

Poznámky

Reference

Literatura

Externí odkazy 
 
 sam.speccy.cz – popis SAMa coby Spectrum Advanced Machine, software pro Atom Lite(+) a mnoho odkazů (česky i anglicky)
 worldofsam.org – přehled HW a SW vybavení
 oldcomp.cz – české diskusní fórum s rubrikou pro SAMa
 simonowen.com/blog/- emulace SAMa na Raspberry PI

Domácí počítače
Sinclair ZX Spectrum