Přeskočit na obsah

SAM Coupé

Z Wikipedie, otevřené encyklopedie
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.

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]

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.

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).

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.

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

[editovat | editovat zdroj]

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

[editovat | editovat zdroj]
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

[editovat | editovat zdroj]
desítkově šestnáctkově význam
128 80 stránkování externí RAM v adresovém prostoru od 32768 do 49151
129 81 stránkování externí RAM v adresovém prostoru od 49152 do 65535
224 - 231 E0 - E7 první disketová jednotka
232, 233 E8, E9 první paralelní tiskárna[5][6]
234, 235 EA, EB druhá paralelní tiskárna[5][6]
236 - 239 EC - EF sériový interface[5][6]
240 - 247 F0 - F7 druhá disketová jednotka
248 F8 č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.
249 F9 čtení: klávesnice, zdroj přerušení, zápis: číslo mikrořádku, na jehož konci má být vyvoláno přerušení
250 FA stránkování RAM v adresovém prostoru od 0 do 32767
251 FB stránkování RAM v adresovém prostoru od 32768 do 65535
252 FC umístění videopaměti, grafický režim, MIDI in/out
253 FD data MIDI
254 FE klávesnice, magnetofon, reproduktor, barva okraje, světelné pero, MIDI through
255 FF č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í:

7 6 5 4 3 2 1 0
čtení detekce připojení
externí RAM
magnetofon světelné pero/sériový vstup klávesnice
zápis zákaz zobrazování
(pouze v grafických módech 3 a 4)
zapnutí MIDI through nejvyšší bit
barvy borderu
reproduktor magnetofon nižší tři bity barvy borderu

Stránkování paměti

[editovat | editovat zdroj]

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 1 RAM 1 RAM 2 ... RAM 31 RAM 0 EXTRAM 0 EXTRAM 1 ... EXTRAM 254 EXTRAM 255
49151
32768
RAM 0 RAM 1 ... RAM 30 RAM 31 EXTRAM 0 EXTRAM 1 ... EXTRAM 254 EXTRAM 255
32767
16384
RAM 1 RAM 2 ... RAM 31 RAM 0 
16383
0
ROM 0 RAM 0 RAM 1 ... RAM 30 RAM 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í:

7 6 5 4 3 2 1 0
zákaz zápisu v části RAM
od 0 do 16383
1 = připojena ROM 1 1 = 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í:

7 6 5 4 3 2 1 0
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í:

7 6 5 4 3 2 1 0
MIDI in/MIDI out nastavení 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

[editovat | editovat zdroj]

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)
7 6 5 4 3 2 1 0
254 FE 11111110 F3 F2 F1 V C X Z SHIFT
253 FD 11111101 F6 F5 F4 G F D S A
251 FB 11111011 F9 F8 F7 T R E W Q
247 F7 11110111 CAPS TAB ESC 5 4 3 2 1
239 EF 11101111 DEL + - 6 7 8 9 0
223 DF 11011111 F0 * = Y U I O P
191 BF 10111111 EDIT : ; H J K L RETURN
127 7F 01111111 INV . , B N M SYMBOL mezerník
255 FF 11111111       CNTRL

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

Joysticky a myš

[editovat | editovat zdroj]

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é

[editovat | editovat zdroj]

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 1 RAM 0 RAM 1 RAM 2 RAM 3 RAM 4 RAM 5 RAM 6 RAM 7 RAM 8 RAM 9 RAM 10 RAM 11 RAM 12 RAM 13 RAM 14 RAM 15
49151
32768
RAM 0 RAM 1 RAM 2 RAM 3 RAM 4 RAM 5 RAM 6 RAM 7 RAM 8 RAM 9 RAM 10 RAM 11 RAM 12 RAM 13 RAM 14 RAM 15
32767
16384
RAM 1
16383
0
ROM 0 RAM 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.

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

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]