SAM Coupé

(c) Simon Owen, CC BY-SA 3.0
Počítač SAM Coupé s 512 KB RAM

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ů.[1] 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.[2]

Grafika

Příklad obrázku v grafickém módu 4

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ů[2] 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.[3] Simcoupe je dostupné i pro Raspberry PI a Rasbian.

Technické informace

Zadní strana s porty
  • 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)[4]
  • myš: připojená paralelně ke směrovým šipkám a klávese CNTRL[4]

Používané porty

desítkověšestnáctkověvýznam
12880stránkování externí RAM v adresovém prostoru od 32768 do 49151
12981stránkování externí RAM v adresovém prostoru od 49152 do 65535
224 - 231E0 - E7první disketová jednotka
232, 233E8, E9první paralelní tiskárna[5][6]
234, 235EA, EBdruhá paralelní tiskárna[5][6]
236 - 239EC - EFsériový interface[5][6]
240 - 247F0 - F7druhá disketová jednotka
248F8čtení: poloha světelného pera
Na portu 248/F8 souřadnice X, na portu 504/1F8 souřadnice Y
zápis nastavení barevné palety
Další porty pro nastavování barevné palety: 504/1F8, 760/2F8, 1016/3F8, 1272/4F8, 1528/5F8, 1784/6F8, 2040/7F8, 2296/8F8, 2552/9F8, 2808/AF8, 3064/BF8, 3320/CF8, 3576/DF8, 3832/EF8, 4088/FF8. Celkem 16 portů, jeden pro každou barvu.
249F9čtení: klávesnice, zdroj přerušení, zápis: číslo mikrořádku, na jehož konci má být vyvoláno přerušení
250FAstránkování RAM v adresovém prostoru od 0 do 32767
251FBstránkování RAM v adresovém prostoru od 32768 do 65535
252FCumístění videopaměti, grafický režim, MIDI in/out
253FDdata MIDI
254FEklávesnice, magnetofon, reproduktor, barva okraje, světelné pero, MIDI through
255FFčtení: právě vykreslovaná barva, zápis: zvukový čip Philips SAA 1099
další port pro Philips SAA 1099 je 511/1FF

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í:

76543210
čtenídetekce připojení
externí RAM
magnetofonsvětelné pero/sériový vstupklávesnice
zápiszákaz zobrazování
(pouze v grafických módech 3 a 4)
zapnutí MIDI throughnejvyšší bit
barvy borderu
reproduktormagnetofonnižší tři bity barvy borderu

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.[7]

Schéma stránkování paměti počítače SAM Coupé (s 512 KiB RAM a 4 MiB externí RAM)
65535
49152
ROM 1RAM 1RAM 2...RAM 31RAM 0EXTRAM 0EXTRAM 1...EXTRAM 254EXTRAM 255
49151
32768
RAM 0RAM 1...RAM 30RAM 31EXTRAM 0EXTRAM 1...EXTRAM 254EXTRAM 255
32767
16384
RAM 1RAM 2...RAM 31RAM 0 
16383
0
ROM 0RAM 0RAM 1...RAM 30RAM 31

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í:

76543210
zákaz zápisu v části RAM
od 0 do 16383
1 = připojena ROM 11 = odpojení ROM 0číslo stránky RAM v adresovém prostoru od 0 do 16383
do adresového prostoru od 16384 do 32767 je připojena stránka 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í:

76543210
1 = od 32768 do 65535
je připojena externí RAM
při grafickém módu 3 určují
nejvyšší dva bity barevné palety
číslo stránky RAM v adresovém prostoru od 32768 do 49151
do adresového prostoru od 49152 do 65535 je připojena stránka 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í:

76543210
MIDI in/MIDI outnastavení grafického módučíslo stránky RAM ve které je umístěna videoram

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.[8] Hodnota odeslaná na tyto porty určuje číslo připojené stránky.[p 1]

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.[9] 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).

vyšší část adresyšestnáctkovědvojkově239 (šestnáctkově F9)254 (šestnáctkově FE)
76543210
254FE11111110F3F2F1VCXZSHIFT
253FD11111101F6F5F4GFDSA
251FB11111011F9F8F7TREWQ
247F711110111CAPSTABESC54321
239EF11101111DEL+-67890
223DF11011111F0*=YUIOP
191BF10111111EDIT:;HJKLRETURN
1277F01111111INV.,BNMSYMBOLmezerník
255FF11111111   CNTRL

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

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.[4] 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.[4]

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.[10]

Schéma stránkování paměti vývojové verze počítače SAM Coupé
65535
49152
ROM 1RAM 0RAM 1RAM 2RAM 3RAM 4RAM 5RAM 6RAM 7RAM 8RAM 9RAM 10RAM 11RAM 12RAM 13RAM 14RAM 15
49151
32768
RAM 0RAM 1RAM 2RAM 3RAM 4RAM 5RAM 6RAM 7RAM 8RAM 9RAM 10RAM 11RAM 12RAM 13RAM 14RAM 15
32767
16384
RAM 1
16383
0
ROM 0RAM 0

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.[10]

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

  1. Protože externí paměť je tvořena paměťovými moduly o velikosti 1 MiB, nejvyšší dva bity hodnoty odeslané na port 128 nebo 129 vlastně určují číslo modulu, který bude použit. Číslo modulu je nastavitelné pomocí jumperů.
  2. Klávesa SHIFT odpovídá klávese CAPS SHIFT ZX Spectra, klávesa SYMBOL klávese SYMBOL SHIFT a klávesa RETURN klávese ENTER.

Reference

  1. SOUTH, Phil. Rage Hard!. Your Sinclair. March 1989, čís. 39, s. 76. Dostupné online. Dostupné také na: [1]. ISSN 0269-6983. 
  2. a b Sam Coupé. Crash. March 1990, čís. 74. Dostupné online. 
  3. SimCoupe - A SAM Coupé Emulator
  4. a b c d GORDON, Bruce; WRIGHT, Andy  . SAM Coupe Technical Manual version 3.0. [s.l.]: Miles Gordon Technology, 1990. Dostupné online. 
  5. a b c http://www.mono.org/~unc/Coupe/Tech/io.html
  6. a b c Archivovaná kopie. www.sadsnail.freeserve.co.uk [online]. [cit. 2012-08-07]. Dostupné v archivu pořízeném dne 2005-01-25. 
  7. Lee. SAM Coupé a ... stránkování paměti. ZX Magazín. 1994, čís. 1/94, s. 13. ISSN 1210-4833. 
  8. 1MB memory for SAM COUPE na velesoft.speccy.cz
  9. Lee. SAM Coupé a ... klávesnice. ZX Magazín. 1992, čís. 6/92, s. 34–37. 
  10. a b Beyond the Spectrum — a superclone takes shape / SAM. Crash. March 1988, čís. 50 (Special Golden Issue), s. 58–60. Dostupné online. Dostupné také na: [2]. ((anglicky)) 

Literatura

  • COOKE, Simon. The Unofficial SAM Coupe Technical Manual v1.0. [s.l.]: Entropy, 1994. Dostupné online. 

Externí odkazy

Média použitá na této stránce

SAM Coupé (white bg and shadow).jpg
(c) Simon Owen, CC BY-SA 3.0
Sam Coupé home computer
Sam mode4.png
Autor: 4throck, Licence: CC BY-SA 4.0
SAM Coupé mode 4 example image, to showcase the display hardware capabilities and limitations. Original: https://commons.wikimedia.org/wiki/File:Ara_macao,_Ara_ararauna_and_Ara_militaris.jpg
SAM Coupé rear.jpeg

Rear of a SAM Coupé. Photographed by me. Released into the public domain. Ports and buttons from left-to-right: Break, MIDI Out, MIDI In, Joystick, Mouse, Reset, Expansion Port, Casette, Stereo sound output/Light Pen input, On/Off, SCART (non-standard), Power/TV-Output

Unfortunately, the SAM Coupé logo has worn off this machine.