pondělí 22. července 1996

Detekce hardware

autor: Kamil Ševeček

Existuje již hodně programů, které na ZX-Spectru dokáží komunikovat s různými perifériemi. K pohodlné práci s I/O zařízeními jistě patří také sama detekce těchto zařízení. A abyste tedy i vy uměli správně zjistit přítomnost periferií, sepsal jsem tento článek, ve kterém bych vás chtěl naučit alespoň některé z nich.

Přítomnost Banky B (32kB Didaktiku Gama)
ld a,1
ld bc,(50000)
ld (50000),a
out (127),a
xor a
ld (50000),a
out (127),a
ld a,(50000)
ld (50000),bc
or a

Rutinka vrací obsah příznak nastaven takto: Zero znamená 48kB x NotZero 80kB.

Přítomnost ZX-Spectra 128 kB
ld a,17
ld de,(50000)
ld (50000),a
ld bc,32765
out (c),a
ld a,16
ld (50000),a
out (c),a
ld a,(50000)
ld (50000),de
or a

Rutina indikuje stav v příznaku Zero takto: Zero znamená 48kB x NotZero 128kB.

Přítomnost disketové mechaniky D40/D80
ld a,177
out (135),a
in a,(135)
cp 177

Nastavený Zero indikuje přítomnost D40/D80 x NotZero D40/D80 nepřipojena.

Obvod AY-3-8912
ld a,7
ld bc,65533
out (c),a
ld a,63
ld b,191
out (c),a
ld b,255
in a,(c)
cp 63

Zero indikuje přítomnost interface AY-3-8912 x NotZero AY-3-8912 nepřipojen.

A nyní trošku odbočím od autodetekce a povím vám o několika zajímavých skutečnostech, kterých můžete ve svých programech také využívat.

Pro efekt v demech se hodí zapínání a vypínání diody na disketové mechanice D40/D80 (pěkně do rytmu s nějakou hudbou).

Dioda na D40/D80
Zapnutí:
ld a,1
out (137),a

Vypnutí:
xor a
out (137),a

Poslední dnešní rutinkou bude docela užitečná věcička. Jedná se o zablokování funkce snapu na mechanice D40/D80. V zásadě jde vlastně o to, že M-DOSu zapíšete do bufferu, ve kterém si drží informace o připojených mechanikách, že žádnou mechaniku připojenu nemá a není tedy kam snapovat. Pokusy jsem zjistil, že některé podprogramy M-DOSu tento buffer s informacemi obnovují, ale SNAP to naštěstí nedělá. Zde to tedy je:

Zablokování SNAPu na D40/D80
xor a
ld (15872),a

Pozor! Nezapomeňte, že musíte mít nastránkovanou ROM D40/D80.

Loučím se s vámi při nějakém dalším článku v ZXM.

Karta s D/A převodníky k interface UR4

autor: Petr Simandl

Karta

Popis funkce

Zařízení sestává ze čtyř osmibitových D/A převodníků a řídící logiky, která umožňuje dva režimy činnosti. První z nich je jednoduché vybrání jednoho nebo více D/A převodníků nastálo, až do dalšího případného přeprogramování. Zápis dat na vybrané převodníky se provádí skrz jediný port.
Druhý režim umožňuje též vybrat jeden nebo více D/A převodníků, ale po každém zápisu dat se samočinně rotují vybrané převodníky v kruhu. Zápis dat se provádí opět skrz jediný port.
Výběr D/A převodníků a volba pracovního režimu se provádí skrz druhý nezávislý port. Analogové signály jsou rozděleny po dvou tak, že první dva tvoří levý kanál a druhé dva pravý kanál výstupního signálu.

Popis zapojení

D/A převodníky jsou realizovány odporovou sítí R-2R. Tolerance hodnot použitých rezistorů musí být alespoň 1%. Data pro jednotlivé D/A převodníky jsou zachyceny pomocí obvodů typu 74HC574. Tyto obvody obsahují osm neinvertujících D klopných obvodů na jejichž výstupy se přepíše stav vstupů při vzestupné hraně hodinového signálu. Hodinové vstupy jednotlivých klopných obvodů mohou být blokovány přes diody D1-D4 z výstupů obvodu 4035. Obvod 4035 je čtyřbitový posuvný registr s možností přednastavení. Sériový vstup J/K je propojen s výstupem Q3 a tím je zajištěno, že přednastavená kombinace na výstupech bude rotovat v kruhu. Přednastavení a rotace je synchronní se vzestupnou hranou hodinového signálu. Obvod má také asynchronní nulovací vstup. Ovládání hodinových signálů obvodů 74HC574 a 4035 zajišťuje obvod 8255 v interface UR4. Porty A a B tohoto obvodu jsou naprogramovány do výstupního strobovacího režimu. V tomto režimu slouží k obsluze přenosu brány A bity 3,6 a 7 brány C a k obsluze přenosu brány B bity 0,1 a 2 brány C. Vždy při zápisu na bránu A nebo B se na příslušných bitech brány C vygeneruje zápisový puls, který je tvořen logickou úrovní 0 a je dlouhý přibližně 350ns. Ve schématu jsou tyto signály označeny jako STA a STB. Signál STA, generovaný při zápisu na port A, ovládá zápisové hodinové vstupy obvodů 74HC574 a zároveň hodinový vstup obvodu 4035. Tím je umožněno vždy po zápisu automatické rotování přednastavené kombinace na jeho výstupech. Signál STB je použit jen k ovládání hodinového vstupu obvodu 4035 a zajišťuje zápis dat z brány B na jeho výstupy.

Schéma zapojení



Schéma zvukové karty - 30K

Popis programování

Port A ... data na D/A převodníky
Port B ...
     bity 0-3 výběr převodníků 1-4 (log.0  povolení, log.1 zákaz)
     bit 4 ovládání funkce obvodu 4035 log.0 ... rotace výstupů
                                       log.1 ... přednastavení
     bit 5 nulování výstupů

Příklady
a) výběr všech čtyř D/A převodníků
     OUT 127,173       ;porty A a B ve výstupním strobovacím módu
     OUT 63,16         ;b0..b3 log.0 ... povolení všech
     OUT 31,data       ;data na D/A převodníky

b) výběr druhého D/A převodníku
     OUT 127,173
     OUT 63,29         ;b1 log.0 povolení jen druhého
     OUT 31,data       ;data na D/A převodník

c) výběr jednoho D/A převodníku s rotací mezi všemi čtyřmi
     OUT 127,173
     OUT 63,23         ;b3 log.0 povolení jen čtvrtého
     OUT 63,0          ;bit b4 log.0 ... umožnění rotace
                       ;a zároveň rotování takže je povolen první
     OUT 31,dataA      ;data na první D/A převodník
     OUT 31,dataB      ;data na druhý D/A převodník
     OUT 31,dataC      ;data na třetí D/A převodník
     OUT 31,dataD      ;data na čtvrtý D/A převodník
     OUT 31,dataA      ;data na první D/A převodník

     ;posíláním dat na jediný port se postupně obslouží čtyři D/A
     ;převodníky

Seznam součástek :
integrované obvody :   74HC574           4x
                       4035              1x
diody :                1N4148            6x
rezistory :            10k/1%            33x
                       20k/1%            40x
                       200k              4x
kondenzátory :         22M/16V           3x
                       100nF             2x
konektory :            FRB30 samice      1x
                       JACK 3.5mm stereo 1x

Schéma D/A převodníku: da-4ch.gif
Dokumentace: sound.zip (ve starém OrCadu - první verze pro i286)

KomprimAce

autor: Kamil Ševeček

Když jsem si nedávno půjčil kazetu plnou nových (alespoň pro mne) her, jako majitel pouze jediného kompresního programu jsem narazil na velký problém. Diskový Mr. Pack (můj jedináček) totiž nedokáže zakomprimovat data překrývající systémové proměnné (23552 až 23755). Co jsem měl tedy dělat s objemnějšími hrami, co překryjí i tuto oblast? Po úvahách na způsob "Tam to zapakuji, připojím k tomu to a to všechno zakompresuji ještě jednou", jsem došel k výsledku - nezbývá mi nic jiného než napsat vlastní pakovací rutinu.
Moje delší hledání mělo asi tento výsledek - každá rutina si vyhradí jeden identifikační bajt jako návěští za sebou jdoucích stejných bajtů (např. 255). Jestliže pak přijde k opakujícím se hodnotám, zapíše toto návěští, onu opakující se hodnotu a kolikrát se opakuje.
Tento způsob mi v zásadě vyhovuje, má jen jedinou chybičku. Vyskytne-li se v pakovaných datech bajt rezervovaný pro návěští (u nás 255), rutina je nucena jej uložit jako sled bajtů tří a nikoli pouze jednoho. To by mohlo mít za následek i rapidní prodloužení komprimovaných dat (3 krát).
Já jsem tedy tento způsob upravil tak, že se místo jednoho bajtu ve funkci návěští použijí bajty dva. Bude-li se komprimovat blok menší než 64kB, nemůže nastat situace, kdy by se v něm vyskytovaly všechny možné dvojbajty (wordy), těch je totiž 65536, zatímco blok bude dlouhý max. 65535 bajtů. Pro bloky delší než 64 kilobajtů a kratší než 16 megabajtů by se pak mohly vzít tři indikační bajty, od 16 megabajtů do 4 gigabajtů čtyři atd.)
Pro pakování je ale potřeba najít dvojbajt, který se v komprimovaném bloku nevyskytuje. Celkem univerzální je 237,70, který je kódem instrukce IM 0. Tu asi nikdo v programu využívat nebude. Kdyby však přece, je potřeba toto nahradit jinou hodnotou (např. 237,187 nebo 237,179 - instr. OUTDR a OUTIR).
Komprimovaná data by pak vypadala asi takto:
...
Libovolná data
...
1.bajt navěští (řekněme 237)
2.bajt návěští (třeba 70)
bajt počtu opakovaní o jedničku snížený (tj. hod.10=11x)
opakovaný bajt
...
Libovolná data
...
Výsledkem mé práce byly tedy tyto rutiny (zabýval jsem se pouze kompresí paměti od 23296 do 65535, budete-li chtít používat komprimátor i pro jiné bloky paměti, jednoduše si jej upravte):
Nejprve ta pro kompresi:
PACK ld hl,???? ;poslední bajt výsledného komprimátu - dáme sem 65535
  ld ix,???? ;poslední bajt původních dat - sem taky 65535
  ld a,(23296) ;pro zastavení komprese na správné
  dec a ;adrese (viz dále)
  ld (23295),a  
KOMPRES ld a,(ix+0) ;Načti první bajt
  cp (ix-1) ;Srovnej ho s druhým
  jr nz,NEPAKUJ ;pokud nejsou stejné, odskoč na neopakující se
  cp (ix-2) ;Srovnej ho se třetím
  jr nz,NEPAKUJ ;pokud nejsou stejné, odskoč
  cp (ix-3) ;I čtvrtý bajt stejný
  jr nz,NEPAKUJ ;pokud ne, odskoč
  cp (ix-4) ;I pátý bajt stejný
  jr nz,NEPAKUJ ;pokud není, odskoč
  ld b,3 ;Nastav počítadlo opakovaných bajtů (nejméně 4 se již určitě opakují)
  dec ix ;Posuň tedy i ukazatel paměti o 4 bajty dál
  dec ix  
  dec ix  
JESTE dec ix  
  cp (ix+0) ;Srovnej další bajt jestli se opakuje
  jr nz,VEN ;Když ne, běž VEN
  inc b ;Zvětši počítadlo opakujících se bajtů
  jr nz,JESTE ;Opakujících se bajtů smí být max.
  dec b ;255, jinak počítadlo přeteče
VEN ld (hl),a ;Zapiš do komprimovaných dat toto opakování:
  dec hl ;Co se opakuje
  inc ix  
  ld (hl),b ;Kolikrát se to opakuje
  dec hl  
  ld (hl),70 ;První bajt návěští indikující opakování
  dec hl  
  ld a,237 ;Druhý bajt návěští indikující opakování
NEPAKUJ ld (hl),a ;Zapiš jeden neopakující se bajt
  dec hl ;nebo druhý bajt indikace návěští
  dec ix ;a sniž ukazatele paměti
  ld a,hx ;Testuj, jestli už nejsi na konci (INT (23295/256)=90)
  cp 90  
  jr nz,KOMPRES ;Ne - komprimuj dál
  ret    
Nejprve vstupní hodnoty - do registru HL se vloží adresa, od které dolů bude ležet komprimovaný kód (tj. 65535). Do registru IX se potom vloží adresa, od které dolů leží původní data (také 65535). Hodnota v registru IX musí být vždy menší nebo rovna hodnotě v HL, jinak by došlo ke kolizi. Komprimační rutina pracuje podobně jako instrukce LDDR odshora v paměti a postupuje k nižším adresám. To má tu výhodu, že zkomprimovaný blok o délce 38536 bajtů nebude ležet od adresy 23296 do adresy 61832 ale od 27000 do 65535. Při nahrávání se tedy nebude muset nahrávat třeba na adresu 26000, LDIRovat na adresu 23296 a následně dekomprimovat, ale nahraje se na adresu 27000 a dekomprimuje se z této adresy.
Z kompresní rutiny vychází velmi důležitá hodnota v registru HL (pozor, je o jedničku snížená) určující, kam až sahá komprimovaný kód. Jestliže tedy bude kód mezi 27000 až 65535, bude v registru HL hodnota 26999. Uložíte tedy kód od adresy HL+1 (tedy 27000) do 65535.
Kompresní rutina má ještě jedno úskalí. Testuje totiž překročení hranice adresy 23296 pouze při komprimaci jednoho bajtu, mohlo by se tedy stát, že bude-li na adrese 23295 stejná hodnota jako na adrese 23296, mohla by se přikomprimovat tato ke kódu a program by spadl. Je tedy nutné dát na adresu 23295 hodnotu o jedna nižší než hodnota z adresy 23296. Napište tedy před kompresní rutinu
ld a,(23296)
dec a
ld (23295),a
Hodnotu HL+1 (nyní 27000) potom dosadíte do této dekompresní rutiny:
UNPACK ld hl,První bajt komprimovaného kódu (hodnota HL+1 vyšlá z komprese) ld de,První bajt dekomprimovaného kódu (tady 23296) DALSI ld a,(hl) ;Přečti bajt komprimovaného kódu cp 237 ;Není to náhodou návěští opakujících se bajtů? jr nz,POSUN ;ne - odskoč inc hl ;Testuj i druhý bajt návěští ld a,(hl) dec hl cp 70 jr nz,POSUN inc hl inc hl ld c,(hl) ;Do registru BC ld b,0 ;počet opakování bajtu inc hl ZNOVU ldi ;Kopíruj bajt BC-krát dec hl jp pe,ZNOVU POSUN ldi ;Přesuň normální bajt nebo poslední opakovaný bajt ld a,h ;Opakuj do konce (nebudete-li or l ;mít komprimovaný kód až do 65535, jr nz,DALSI ;musíte test změnit) ret
Dekompresní rutina dekomprimuje paměť již od spodu nahoru (tj. od adresy HL+1 do 65535) - tedy způsobem LDIR (oproti kompresi způsobu LDDR).
Rutina je snad nejkratší, co se dala napsat a zabírá něco okolo 30 bajtů. Optimalizoval jsem ji dlouho (a krvavě...).
Až budete spouštět takto komprimovanou hru, dekompresní rutinu vložte do Video-RAM a nezapomeňte tam nastavit i zásobník a zakázat přerušení.
A nyní ještě něco o tom, jak dostat k dispozici celý blok od 23296 do 65535, kompresní rutinu ve VRAM a po komprimaci se ještě vrátit bezproblémově do Basicu, abychom si mohli zkomprimovaný kód uložit normálním příkazem SAVE.
Velmi se mi osvědčilo vložit v Basicu CLEAR 24200, nahrát DEVAST ACI II, poznamenat si adresu zásobníku (bude to nejspíše adresa 24177) a v DEVASTu II uložit část paměti od 23552 do adresy 24201 (pokud nemáte možnost použít DEVAST II, pak nějak přesuňte blok 23552-24201 třeba na adresu 50000 a tento pak uložte Basicovským SAVE). Potom do VRAM naprogramujete jednoduchý prográmek, který nahraje z pásku blok 23296,42240, zapakuje ho a provede LDIR uložené části Basicu z VRAM na adresu 23552. Celé to vypadá asi takto:
A16384 di    
  ld sp,20480  
  ld ix,23296  
  ld de,42240  
  ld a,255  
  scf    
  call 1366  
  call KOMPRES  
  inc hl  
  ld (20000),hl  
  ld hl,KONEC  
  ld de,23552  
  ld bc,650  
  ldir    
  ld sp,24177  
  ei    
  ret    
KOMPRES ld a,(23296)  
  dec a  
  ld (23295),a  
  ld hl,65535  
  ld ix,65535  
  ...    
  jr nz,KOMPRES  
  ret    
KONEC defs 650 ;zde přijde ona uložená paměť od adresy 23552 do adresy 24201
       
       
Až se vám vrátí program do Basicu, jednoduše napíšete PRINT PEEK 20000 + PEEK (20001) * 256 a od adresy, která se vám vypíše na obrazovku uložíte kód (pozor, ta hodnota, co se vypisuje na obrazovku, je už zvýšená o jedničku).
Na závěr bych snad už jen konstatoval, že rutina ušetří přibližně 2-3 kB ve 40 kB dlouhém bloku.

PSYCHO PIG

autor: Kamil Ševeček

Název: PSYCHO PIG U.X.B.
Program: S.Cork
Grafika: Pete Cough, W.Blake, M.Wilson
Hudba (AY): Tim Follin
Výrobce: SOFTWARE CREATIONS
Distributor: US GOLD, 1988

Na jedné z mých prvních kazet, které jsem u svého Didaktiku měl, byla nahrána podivná hra PSYCHO PIG. Dost se lišila od ostatních a já ji nechápal. Asi proto jsem na ni zanevřel a ani se ji pořádně nepokusil hrát. Řekl bych, že jsem nebyl jediným, kdo tuto hru nepochopil, a proto bych o ní zde něco napsal.

PSYCHO PIG je v jádru jednoduchá hra, ale autorům se vymkla z rukou přehlednost. To byl nejspíše hlavní důvod nedocenění jejích kvalit - hra je prakticky neznámá.

Jak již název napovídá, budete mít tu čest s ne zrovna vonícími, domestikovanými savci s rypákem podobným elektrické zásuvce.

Po definici ovládání, úvodním "intru" a podobných legráckách se vrháte přímo do hry. Před vámi se objeví obrazovka posetá bombami a sem tam je nějaký ten čuník (na začátku prvního levelu je jich asi šest). Jedním z nich jste vy, ostatní jsou nepřátelé. Můžete uchopit bombu a poslat ji libovolným směrem. Pokud bomba trefí nějakého čuníka, ten vybuchne. Za cíl máte takhle zničit všechny své soky. Ale co to? I oni mohou chytit bombu a šoupnout ji po vás (trefí-li vaše prasátko, ztrácíte jeden ze tří životů). Když je málo bomb (dost jich už vybuchlo), začnou se objevovat nové, aby vám nedošla munice. Hra ale není jen tak triviální, na každé z bomb je napsáno číslíčko určující, za jak dlouho ta která bomba sama vybuchne (při nárazu na čuníka bomba vybuchuje hned, číslo nečíslo). Dokud nikdo bombu neuchopí, čas se neodpočítává. Jakmile ji ale nějaký čuník pošle, začne se odpočítávat a po dosáhnutí nuly se ozve výbuch (neradil bych vám v tu chvíli stát příliš blízko). Po některých explozích se objeví i nějaký ten prémiový předmět jako třeba ochranný oblek, život navíc či rychlé běhání.

Na začátku levelu je čuníků všude plno - je to učiněný masakr. Stačí někam šoupnout bombu a ona určitě nepoletí jen tak naprázdno. Nezřídka ztratíte i dva životy ze tří. Po ztrátě všech vašich životů ještě není úplný konec, několikrát můžete využít možnost continue (stisk fire při odpočítávání). Vynuluje se vám sice skóre, ale můžete pokračovat v levelu, ve kterém jste skončili.

Po několika normálních úrovních přijde čas na level bonusový. V takovém Vám nepřátelé nemohou ubírat životy. Jen hloupě vylézají z "nor", rozhlédnou se a zase zalezou. Vy máte za úkol doběhnout k nim a kopnout je, za což získáváte body navíc. Nejlepší na tom je, že než stihnete doběhnout k jedné noře, vykukující čuník zase zaleze a objeví se jiný na druhém konci obrazovky. Vy tam běžíte, ale situace se opakuje...

Nesmím zapomenout zmínit se i o hře dvou hráčů. Zvolíte-li si ji, nehrajete v obrazovce sami, ale jste dva (a měli byste si pomáhat).

Hra je netradičně zpracována, pohled na plochu je shora, ale sprity jsou z bočního pohledu. Tento způsob zobrazování můžete vidět např. v Cyclonu či Chaos Enginu (na vícebitových strojích). Co se týče grafiky, ta se velmi povedla, zvuky ujdou, kód je opravdu dobrý, naráz se na obrazovce plynule hýbe spousta spritů. Na konec jsem si nechal hudbu. Skládal ji Tim Follin a je 128k only. Bohužel se ke mně nedostala, avšak počítám, že bude bombastická.

Na tomto místě (ale i na tom a tamto) bych chtěl ukamenovat toho, co hru multifacenul. Nejen, že tím gameska zabírá celou pamět, nemá originální start a nejde racionálně převést na disk, ale hlavně k ní nemám 128k hudbu, co se nahrává do stránky (ne že bych měl 128ičku, ale ta hudba by se dala předělat do Gamy). Fuj. Snap je výborná věc při crackování, ale jako kopírování her dokáže člověka pěkně vytočit. Pokud někdo hru máte i se 128k hudbou, prosím, ozvěte se mi.

Tak nashledanou a zase někdy příště u nějaké jiné, geniální hry.

První CD pro ZX Spectrum?

autoři: Lubomír Bláha a Jaromír Krejčí

CD mánie
Kdo by v dnešní době neznal CD disk. Malý, lesklý, většinou stříbrný kotouček, na který se vejde spousta minut hudby v nejvyšší kvalitě. Nástup CD před několika lety byl naprosto bleskový. CD velice rychle z našich domácností vytlačuje klasické vynilové nosiče, které si drží svoji pozici snad jen u profesionálních diskžokejů. Technologie přehrávání CD disků je dnes natolik vyspělá, že není zvláštností běžně vidět přenosné CD playery namísto walkmanů.

Vysoká kapacita a kvalita digitálního záznamu na CD se velmi rychle ujala i pro ukládání dat pro počítače. V nedávné době - co je 10 let ve srovnáním se stáří vesmíru - se začaly objevovat tzv. CD-ROM pro PC, později i k Amigám, Macům a dalším více než osmi (třeba devíti) bitovým strojům. Všechny tehdy ohromila kapacita 650 MB. Výrobci hardware se začali předhánět ve výrobě CD mechanik. Tyto mechaniky se od běžných CD přehrávačů liší v několika drobnostech. Především mají datový konektor k připojení k počítači, většinou mají jen tlačítko OPEN/CLOSE popř. PLAY a nic víc. Všechno ostatní zařizuje software počítače.

Na datových mechanikách lze přehrávat jak datové CD tak i hudební CD (když máte software, nebo tlačítko play). Postupem času výrobci mechanik přišli s dvourychlostní mechanikou, potom s třírychlostní, pak čtyřrychlostní, pětirychlostní vynechali a vrhli se rovnou na šestirychlostní, která je hitem letošního roku. Všechny tyto mechaniky se jen předhání v rychlosti, se kterou vám do PC přenesou renderovanou grafiku nějaké velice originální 1300 MB dlouhé hry.

Kdo nemá dnes u PC CD-ROM mechaniku, začíná být na vedlejší koleji. Nový fenomén, multimédia, přináší velké datové nároky a tomu nejlépe vyhoví právě uložení dat na CD-ROM.

Trocha teorie o CD záznamu
Mnoho lidí o CD ví jen tolik, že ze stříbrné placky je záznam snímán optickým způsobem. Málokdo ale ví další zajímavé věci okolo těchto zázračných kotoučků. Především, že záznam na CD začíná ve středu a v soustředěných kružnicích postupuje ke čtvrtku, pardon, k okraji. Aby byla zachována obvodová rychlost a tím i hustota dat, musí se úhlová rychlost při čtení měnit (to je zásadní rozdíl mezi CD a všemi ostatními záznamovými médii - disketou, kazetou, černou deskou).

Záznam na CD je vytvořen digitálně. Jedničky a nuly jsou zaznamenány jako malé dírky v kovovém povrchu. Vytvoření těchto dírek je možné dvěma způsoby: lisováním v továrně (velké série) nebo vypálením na speciální mechanice (kusová výroba). Je zajímavé, že vrstva hmoty, která chrání stranu záznamu je několikrát silnější než vrstva chránící stranu, kde bývá potisk.

Hodně lidí si myslí, že záznam na CD je věčný a nezničitelný. Není to pravda. Pokud se o své CD budete špatně starat a poškrábete jej (což se stane velmi rychle), tak vám bude klidně také přeskakovat, jako klasická deska. Většina moderních CD přehrávačů má sice i korekci chyb, takže pokud je třeba povrch jen upatlaný, na výsledný zvuk to většinou nemá vliv. Je ale dobré si vždy pečlivě překontrolovat kvalitu CD, hlavně pokud není nové.

A jak je to s velikostí záznamu? Na běžné CD se vejde přibližně 74 minut audio záznamu, což odpovídá asi 650 MB digitálních dat. Někteří výrobci CD-ROM však dokážou vměstnat na CD o dost MB více, ovšem na úkor kvality.

Konečně ZX Spectrum
ZXS zůstalo sídímánie ušetřeno po dlouhý čas. Bylo připojováno k magnetofonům a různým diskovým systémům. Ale firma Code Masters, která se proslavila sérií her DIZZY, uvedla na trh první CD pro Spectrum. Jeho název je THE CD GAMES PACK - 30 GAMES ON CD. Na náš trh jej uvedla také dobře známá firma Proxima, která jej poskytla rovněž naší redakci k recenzi.

Při hledání způsobu, jak uložit co nejvíce svých her (většinou tzv. budget) najednou v elegantním formátu, padlo u Code Masters rozhodnutí právě na CD. Výroba větší série CD se poměrně vyplatí a tak CD pro Speccy je na světě. Samozřejmě, že se nejedná o CD typu CD ROM podle normy ISO. Code Masters použili zajímavou fintu, jak využít CD jako datové médium bez speciálního interface. CD GAMES PACK je v podstatě hudební CD se zvukem ZXS. K nahrání dat do Spectra vám tedy stačí obyčejný CD přehrávač! Naproti tomu se díky této metodě se na takové CD vejde daleko méně dat a je menší je samozřejmě i rychlost nahrávání, než by byla u CD ROM.

Tak k věci
Poté, co od vás distributor obdrží 540 Kč, vy od něj na oplátku dostanete modrou krabici s obrázkem CD na obalu, znakem Code Masters a spoustou anglických textů. Uvnitř naleznete CD v obvyklém obalu, kazetu bez krabičky, manuál (pro změnu modrý), kabel pro připojení CD přehrávače, redukci z jack 3.5" na 6.3", registrační kartu a příručku s popisem možných problémů s jejich řešením.

Jednotlivé komponenty se vám nyní pokusíme popsat. Krabice je hlavně poutač na zákazníky. Na horní straně jsou nápisy v angličtině, které se vás snaží přesvědčit o tom, že právě tento pack chybí ve vaší sbírce. Na zadní straně krabice jsou vyobrazeny obaly od kazetových verzí všech her na CD obsažených a text, který si dovolíme ocitovat: Tento soubor obsahuje nejlepších 30 her pro váš počítač. Velice rychlé nahrávání - přibližně 20 sekund. Jedna hra na jedné stopě. Maximální spolehlivost, žádné chyby při nahrávání, veškeré zpracování při výrobě digitální. Obrovská kapacita - okolo 12 MB dat. Snadné na použití, obsahuje kabel (6 stop dlouhý) s redukcí a obsáhlý manuál.

CD je celkem obyčejné, s jednobarevným potiskem THE CD GAMES PACK SPECTRUM 48/128 a logy firem Code Masters a PDO (výroba CD). Kazeta nese potisk CD LOADER SOFTWARE SPECTRUM 48/128, na které je několikrát za sebou na obou stranách stejnojmenný zaváděcí program.

Manuál je společný pro ZXS, Commodore 64 a Amstrad CPC. Dvě strany jsou věnovány popisu připojení, instalace a obsluhy (anglicky a německy). Dvě strany padly na seznam her. Zbytek manuálu je popis jednotlivých her. Popisy jsou vždy anglicky a někdy i německy, italsky a francouzsky. Pořadí popisu neodpovídá seznamu na začátku a občas neodpovídají ani názvy. Manuál není zrovna podrobný, u některých her je jen popis ovládacích kláves.

Propojovací kabel má na jednom konci jack 3.5" a na druhém 9 PIN Cannon konektor s jakousi krabičkou. V ní po demontáži naleznete oddělovací obvod tvořený dvěma tranzistory a několika rezistory. Redukce je obyčejná, sériově vyráběná.

V balíku je přiložena i registrační karta, kterou můžete zaslat na adresu producenta a povídání o tom, proč je výhodné kartu odeslat. Následuje několik zvědavých anketních otázek.

Poslední součástí balíčku je chybová příručka, kde jsou popsány čtyři základní problémy, které by se mohly při zapojování vyskytnout.

Připojení
CD přehrávač se ke Spectru připojuje pomocí již zmiňovaného speciálního kabelu, nikoliv na magnetofonový port, ale do zdířky od Kempston joysticku, nebo Sinclair 2 joystick interface (kvůli použitelnosti na +2, +2A a +3). Proto je třeba nejprve do počítače nahrát krátký obslužný program z kazety. Ten se vás zeptá, jaký z předchozích dvou způsobů připojení jste zvolili. Poté můžete stiskem SPACE otestovat kvalitu spojení.

Test je určen ke správnému nastavení hlasitosti na CD přehrávači. Border je červený a poté, co pustíte první stopu CD, by měl border zezelenat (dobře se to pozná na monochromatickém monitoru, zvláště na zeleném). Je-li vše OK, můžete začít nahrávat současným stiskem kláves Q, U, I, T. Stejnou kombinaci kláves lze použít i pro nahrání dalších her do počítače (v průběhu libovolné hry), aniž byste při tom RESETovali počítač. Zaváděcí program se tedy zavádí jen jednou!

Co jsme zjistili
Pro připojení je vhodnější používat Kempston interface, protože je jednak mnohem citlivější než Sinclair norma a navíc, pokud je zapnut přehrávač, je na Cannon konektoru log 1. Ta pak způsobuje při připojeném Sinclair konektoru samovolný stisk určité klávesy, takže se u některé hry okamžitě navolí ovládání apod. Připojení bylo úspěšně testováno s CD přehrávačem LLAKER CD96, počítačem DG, ZXS 128+2A přes Sinclair i přes Kempston v D40. Pokus propojit ZXS s CD-ROM mechanikou PC (Mitsumi FX-400) s emulací hudebního CD se ukázal neúspěšný pro slabý audiosignál, ač úspěch byl teoreticky možný.

Nebereme-li v úvahu několik sekund, potřebných pro natažení zaváděcího software, trvá nahrání jedné hry něco pod minutu (průměrně 50 sec). Rychlost přenosu dat je přibližně 6 000 baudů (standard Spectra je 1200). Výpočtem tedy dostaneme, že je na disku kolem 3 MB dat. Údaje na krabici tedy jaksi nesedí.

Na krabici i v manuálu je napsáno, že balík je určen pro SINCLAIR 48/128K. Znamená to ale, že hra poběží i na 128ičce, ale ne, že ji bude využívat pro grafiku nebo hudbu. Jak ukázal rozbor zavaděče, tak jedna z prvních instrukcí je softwarové zablokování stránkování ZXS 128K, což způsobuje 100% slučitelnost se ZXS 48K včetně velikosti paměti. Při analýze zavaděče jsme dále zjistili, že zavaděč má kód dlouhý 2848 B a nahrává blok z CD blok dlouhý 427 B, který je uložen standardní rychlostí. Tento blok má již v sobě vlastní rutinu pro zrychlené nahrávání (turbo) a také parametry bloků hry.

Poté, co jsme přišli na způsob, jakým jsou data na CD uložena, dovolujeme si firmě Code Masters doporučit přejmenování na Snap Masters. Většina her je uložena jako obsah paměti od 16384 do 32767 a od 33003 do 65535. V blocích není použita žádná komprese (asi byla považována za zbytečnou).

Je pravda, že se žádná chyba typu Tape loading error se při nahrávání neobjeví, což ale neznamená, že se taková nevyskytne. Hra se po chybě nespustí, ale chce nahrávat dál a musíte to zkusit znovu. Pokud to nejde, dá se to zkusit z jiné stopy. Na CD jsou totiž všechny hry dvakrát. Buďto chtěl výrobce využít místo na disku nebo je to právě z důvodu možných chyb (když nejde první kopie, zkus druhou).

Co najdete na CD
Jak již název CD napovídá, jedná se o herní balík. Je možné, že v době svého vzniku byly hry, které na CD najdete, hity číslo jedna. V současné době se ale jako pařanské hity určitě neujmou. Mnohem taktičtější by bylo vydat na CD třeba všechny DIZZYovky. Známe lidi, kteří to zvláštní vajíčko přímo žerou. Dá se říci, že z tohoto pohledu je CD je spíše kuriozitou a lahůdkou pro sběratele.

Takže, co tam vlastně všechno je? Tady je seznam všech her, které CD obsahuje (pořadí je podle toho, jak jsou na CD uloženy):

BMX 2 - Dirt Biking - Standard, Treasure Island Dizzy Snooker, Fast Food, Rugby Simulator, Jetski Simulator (Part A), Dizzy, 3D Starfighter, BMX - Quarry Racing - Expert, Pinball Simulator, 11 - A - Side Socker, Pro Ski Simulator, Ghost Hunters, Jetski Simulator (Part B), Grand Prix Simulator 2, Super Stuntman, Fruit Machine Simulator, BMX Freestyle, ATV Simulator (All Terrain Vehicle), Street Soccer, Moto X Simulator, Twin Turbo V8, Death Stalker, Indoor Soccer, Bigfoot, Arcade Flight, Skateboard Simulator, Soccer Ski, Street Football, Super Robin Hood, Vampire, Ninja Massacre, Slideshow (ukázky úvodních obrázků od všech her).

Závěrečné hodnocení
CD s nahrávkami spectráckých programů je zajímavý nápad. Nicméně výběr her a technická realizace projektu firmy Code Masters je na slabší úrovni. Na druhou stranu, 18 Kč za hru není zase tak moc a pokud patříte ke ctitelům her firmy Code Masters, jistě si přijdete na své.

Akcionář II - jak ho dohrát kdykoliv

autor: Jakub Hynek

Tak už jste si vyzkoušeli, jak lze dohrát hru Akcionář II snadno a rychle? Návod byl uveřejněn v minulém ZX magazínu, takže protentokrát už zbývá jen dodat, jak lze tuto hru dohrát ještě snadněji a ještě rychleji. Ano, ve hře je samozřejmě zabudován cheat, jako tomu tak ve hrách často bývá. A protože od uvedení hry uplynuly již více než dva roky a každý měl tedy dost času dohrát ji poctivě, přichází nyní správná chvíle k jeho zveřejnění. Postup je jednoduchý.

Kdykoliv v průběhu hry najměte agenta ve Švýcarsku (pokud na něj zrovna nemáte, klidně prodejte nějaké akcie). Potom zvolte položku Uložit na konto v submenu Operace s bankou. Jako sumu k uložení zadejte číslo 210868. Pokud se počítač ohradí, že tolik nemáte, klidně podruhé zadejte nulu. No a je to. Jak se snadno přesvědčíte, na kontě ve Švýcarské bance se vám objevilo 500 000 dolarů. Pokud chcete celou operaci provést ještě jednou, převeďte nejprve ten půlmilión do NBA a znovu vložte cheat. Teď už budete mít dostatek peněz na to, abyste hru úspěšně završili. Zvolte tedy položku Další měsíc a pak už se jen kochejte pohledem na nepoctivě získaný majetek.