Obsah
1. Historie vývoje počítačových her (50. část – další programové vybavení mikropočítačů Amiga)
2. Directory Opus – slavný dvoupanelový manažer souborů
3. Textový editor Vim – zrozený na Amize
4. Programovací jazyky a vývojové nástroje pro Amigu
6. Práce se sprity v GFA Basicu
7. Zvýšení počtu spritů (vsprites) a BOBs
1. Historie vývoje počítačových her (50. část – další programové vybavení mikropočítačů Amiga)
V dnešní části seriálu o historii vývoje výpočetní techniky se seznámíme s dalšími aplikacemi, které se používaly na slavných počítačích Amiga. Minule jsme zabývali především „multimediálními“ aplikacemi, mezi něž patřily především hudební editory a hudební přehrávače následované rastrovými grafickými editory (3D editory a CADy si popíšeme příště). Dnes se seznámíme především s nástroji využívanými vývojáři. Mezi tyto nástroje patří zejména správci souborů, programátorské textové editory a samozřejmě i interpretery či překladače různých programovacích jazyků. Možná může být zajímavé srovnání možností Amigy s konkurenčními osobními počítači IBM PC. Ty ještě v polovině osmdesátých let minulého století mohly vývojářům nabídnout nástroje, které většinou byly hůře ovladatelné a nabízely méně funkcí, než tomu bylo na počítačích Amiga (o to paradoxnější je fakt, že IBM PC byly již ve své druhé verzi – IBM PC XT – považovány za počítače určené pro profesionály).
Obrázek 1: Obrazovka systému Top View firmy IBM (1985). Na screenshotu můžeme vidět, že rozhraní tohoto produktu je poměrně nezáživné a bez nápadu (naproti tomu naprosto geniální nápad, jak využít textovou obrazovku IBM PC, měl Peter Norton ve svém programu Norton Commander, jehož TUI je kopírováno dodnes, například v souborovém manažeru Midnight Commander).
V oblasti souborových manažerů určených pro IBM PC (a DOS) je nutné zmínit především slavný Norton Commander a taktéž XTree (Gold). Poněkud horší situace vládla na trhu s překladači programovacího jazyka C, protože právě překladače céčka byly (vedle assembleru a později i Turbo Pascalu) používány pro tvorbu profesionálních aplikací, včetně her. Pravděpodobně prvním překladačem céčka pro IBM PC byl Lattice C z roku 1982, který byl později převeden i na Amigu (i z tohoto důvodu se o něm zde zmiňuji), dále se rozšířil i na minipočítače a mainframy společnosti IBM. Zajímavé bylo, že firma Microsoft překladač Lattice C nabízela pod svým názvem MSC (Microsoft C) a teprve verze MSC 4.0 byla skutečně vytvořena přímo programátory z Microsoftu. Lattice C byl používán i při portaci aplikací z operačního systému CP/M na DOS (dnes je však možné pouze odhadnout, kolik kódu bylo skutečně napsáno v céčku a kolik kódu vzniklo transformací assembleru).
Obrázek 2: Norton Commander verze 4.0 z roku 1993.
Dalším céčkovým překladačem, který byl nabízen jak pro počítače IBM PC, tak i pro Amigy (a mnohé další typy počítačů), byl překladač nazvaný Aztec C společnosti Manx Software Systems, o němž se zmíníme v dalších kapitolách.
Obrázek 3: Textový editor dodávaný k Norton Commanderu používal klávesové zkratky odvozené od slavného WordStaru.
2. Directory Opus – slavný dvoupanelový manažer souborů
První aplikací, s níž se dnes seznámíme a která původně vznikla právě pro počítače Amiga, je souborový manažer nazvaný Directory Opus, jehož autorem je Jonathan Potter. Directory Opus vznikl vylepšením původního dosti jednoduchého souborového manažeru nazvaného JPDirUtil, neboli Jonathan Potter Directory Utility. Právě v tomto manažeru se objevilo grafické uživatelské rozhraní založené na výpisu obsahu adresáře a sady konfigurovatelných tlačítek umožňujících provádět různé operace s vybraným souborem či soubory. Directory Opus se však od původního nástroje JPDirUtil lišil v jedné dosti podstatné věci – namísto jednoho panelu s výpisem obsahu adresáře se v DOpusu používaly panely dva, což znamenalo, že bylo možné současně pracovat s dvojicí různých adresářů (a tím pádem i disků), což znamená zjednodušení při provádění základních souborových operací kopírování a přesunu (nezbývá než litovat uživatele donucené pro souborové operace používat jednopanelové programy typu Explorer :-).
Obrázek 4: Obsah disku s programem Directory Opus zobrazený ve Workbenchi.
Podobný systém dvou panelů byl na konkurenčním IBM PC použit v již zmíněném nástroji Norton Commander, ovšem sám autor Directory Opusu tvrdí, že v té době počítače (IBM) PC nepoužíval a program Norton Commander neznal – ostatně nejednalo by se o první případ v IT, kdy byl podobný nápad nezávisle na sobě implementován dvěma různými vývojáři. Program Directory Opus se stal velmi úspěšným a již na Amigu postupně vzniklo několik jeho verzí. Určitý zlom nastal ve verzi Directory Opus 4, v němž se objevila plnohodnotná podpora pro programovací jazyk ARexx, takže bylo možné Directory Opus „skriptovat“ podobně jako další aplikace s podporou ARexxu (viz též kapitolu číslo 5). Directory Opus je jednou z aplikací, která přežila ukončení vývoje platformy Amiga – moderní verze Directory Opusu jsou dostupné pro operační systém Windows, zde ovšem vládne na poli souborových manažerů poměrně tvrdá konkurence.
Obrázek 5: Directory Opus po svém spuštění (ještě se nezobrazuje obsah žádných disků).
Odkazy na další stránky s informacemi o programu Directory Opus:
- Amiga Lore: Directory Opus
http://www.abime.net/articles/view/article/id/7 - Getting to know Directory Opus
http://www.pretentiousname.com/opus/index.html - Directory Opus (nová verze)
http://www.gpsoft.com.au/ - Directory Opus (Wikipedia)
http://en.wikipedia.org/wiki/Directory_Opus
Obrázek 6: Obsah samotného disku obsahujícího Directory Opus.
Obrázek 7: Ve druhém okně je zobrazen adresář s Vimem.
Obrázek 8: Prohlížeč textových souborů (tlačítko Read).
Obrázek 9: Prohlížeč binárních souborů (tlačítko Hex Read).
3. Textový editor Vim – zrozený na Amize
Většina programátorů pracujících s Linuxem se již pravděpodobně setkala s textovým editorem Vim, ovšem již méně známým faktem je, že tento editor původně vznikl právě na osobních počítačích Amiga.
Obrázek 10: Obsah disku s Vimem 3.0 zobrazený ve Workbenchi.
Vše začalo programem nazvaným Vim 1.0. Tento program vytvořil již v roce 1988 Bram Moolenaar. V podstatě se jednalo o prostou a k tomu ještě původně neúplnou imitaci původního textového editoru vi (visual), který byl používán na unixových systémech; v dnešní době se s původním vi můžeme setkat například na Solarisu, ale i pro něj je samozřejmě možné Vim bez problémů přeložit. I prvotní nezkrácený název programu – Vi IMitation – napovídá, že šlo v prvé řadě o převod původního vi na Amigu. Bram sice začal svůj program stavět na cizích zdrojových kódech (jiného klonu editoru vi, konkrétně na programu SteVIe), později však došlo několikrát k přepsání celého editoru, takže z původních zdrojových kódů není nakonec použit ani bajt. Ostatně jenom díky tomu mohla být pro Vim v dalších letech vytvořena nová licence postavená na bázi GPL.
Obrázek 11: Příkaz :version ve Vimu 3.0.
První veřejně rozšířená verze textového editoru Vim nesla číslo 1.14. Stále se ještě jednalo o program vytvořený pouze pro Amigu, psal se totiž rok 1991 a tyto počítače před sebou měly ještě několik let úspěšného komerčního života. Tato verze již přinesla několik novinek a vylepšení oproti původnímu vi, zejména jiný způsob práce s operací undo.
Verze Vim 1.22 přinesla jednu zásadní změnu. Tato verze totiž byla s úspěchem portována na unixové systémy, čímž se kruh, jež začal u původního editoru vi, uzavřel. Původní editor vi tak získal na své vlastní platformě poměrně zdatného konkurenta (Emacs byl v té době editor zcela jiné kategorie) s mnoha výtečnými funkcemi, například vícestupňovou operací undo a možností pohybu kurzorem v režimu vkládání. Vzhledem k tomu, že se Vim v mnoha ohledech vylepšil, došlo také k jeho přejmenování: z původního Vi IMitation se po zásluze stává Vi IMproved.
Obrázek 12: Příkaz :set all ve Vimu 3.0.
Vim 3, jenž byl vydán v roce 1994, nabídl vůči předchozím verzím řadu vylepšení. Mezi ně patří zejména podpora pro více oken (prozatím rozdělených horizontálně, vertikální dělení se objevuje až v šesté verzi), integrovaný systém nápovědy a také větší úroveň kompatibility s původním vi, což se projevilo zejména při práci s původními makry. Úroveň kompatibility lze řídit příkazem :set cpoptions, takže rychlá práce s editorem je možná jak pro vi-veterány, tak i pro nové uživatele, kteří mohou snadno využít všechny nové vlastnosti tohoto editoru. Již v této chvíli začal býtVim používán v mnoha linuxových distribucích, kde postupně nahrazoval další klony editoru vi, například Elvise či Nvi.
Obrázek 13: Příkaz :set all ve Vimu 3.0.
Odkazy na podrobnější informace o Vimu (nejenom) na Amize a Linuxu:
- The Vi Editor and its clones and programs with a vi like interface
http://www.guckes.net/vi/ - www.vim.org: obsahuje verze Vimu i pro Amigu
http://www.vim.org/ - Články o Vimu na Root.cz:
http://www.root.cz/n/vim/clanky/ - Vim sedm – první část
http://www.root.cz/clanky/vim-sedm-prvni-cast/ - vim2elvis (1.část)
http://www.root.cz/clanky/vim2elvis-1/ - vim2elvis (2.část)
http://www.root.cz/clanky/vim2elvis-2/
Obrázek 14: Obsah disku s Vimem 4.6 zobrazený ve Workbenchi.
4. Programovací jazyky a vývojové nástroje pro Amigu
Pro osobní mikropočítače Amiga bylo vyvinuto poměrně velké množství programovacích jazyků a dalších vývojových nástrojů (vývojových prostředí atd.). Jednalo se o různé interpretery a dokonce i překladače BASICu, i když se tento jazyk již v mnoha ohledech odlišoval od původních nestrukturovaných BASICů s čísly řádků – obecně je možné většinu BASICů pro Amigy považovat za vysokoúrovňové jazyky podporující strukturované programování a v některých případech i OOP. Dále pro Amigu existovalo několik překladačů programovacího jazyka C a taktéž nesmíme zapomenout na programovací jazyk REXX, jenž byl velmi důležitý pro skriptování aplikací, které implementovaly programové rozhraní pro REXX – určitou moderní obdobou tohoto rozhraní je (D)COM či CORBA. Některé vyšší programovací jazyky (a jeden assembler) dostupné pro Amigu jsou vypsány v následující tabulce:
# | Název produktu |
---|---|
1 | Amiga E |
2 | AmigaBASIC |
3 | Blitz BASIC |
4 | GFA BASIC |
5 | AMOS (programming language) |
6 | ASM-One Macro Assembler |
7 | Aztec C |
8 | Lattice C |
Jedním ze známých překladačů programovacího jazyka C, který byl dostupný mj. i pro počítače Amiga, byl překladač nazvaný Aztec C společnosti Manx Software Systems. Jednalo se o ve své době velmi úspěšný překladač, jenž existoval jak ve verzi pro osmibitové mikroprocesory (MOS 6502, Zilog Z-80), tak i pro mikroprocesory 16bitové a 32bitové. Tento překladač byl velmi úspěšný právě na Amize, kde byl používán, společně s Lattice C, prakticky až do faktického zániku této platformy. Ovšem na IBM PC jeho sláva netrvala dlouho, především z toho důvodu, že firma Microsoft považovala segment překladačů za poměrně důležitý a snažila se vytlačit jakoukoli konkurenci z trhu (i když ve skutečnosti v té době ještě neměla vlastní céčkový překladač, jak jsme se již ostatně dozvěděli v úvodní kapitole). Společnosti Manx Software Systems se postupně zmenšoval počet platforem, na něž bylo možné překladač prodávat a přechod na podporu vestavěných systémů již přišel dosti pozdě.
Obrázek 15: Příkaz :version ve Vimu 4.6.
Obrázek 16: Příkaz :set all ve Vimu 4.6.
Obrázek 17: Příkaz :set all ve Vimu 4.6.
5. GFA Basic
Jak jsme se již zmínili ve čtvrté kapitole, existovalo pro počítače Amiga relativně velké množství interpreterů i překladačů programovacího jazyka BASIC. Přímo v AmigaOS, přesněji řečeno v AmigaOS verze 1.1 až 1.3, byl pro vývojáře a samozřejmě i pro znalejší uživatele připraven AmigaBASIC vytvořený společností Microsoft. Jednalo se původně o pouhý interpreter BASICu, ale později se začaly objevovat i jeho překladače. Již tato varianta BASICu obsahovala funkce a procedury umožňující práci s grafickým subsystémem Amigy. Mnohem zajímavější však byl GFA BASIC, jehož autorem je Frank Ostrowski, jenž je taktéž autorem staršího a dosti populárního Turbo Basicu určeného pro osmibitové domácí mikropočítače Atari. GFA BASIC ve variantě pro Amigu byl do značné míry kompatibilní s variantami tohoto jazyka určenými pro počítače Atari ST i MS-DOS, a to včetně příkazů pro práci s grafikou.
Obrázek 18: Disk s GFA Basicem zobrazený ve Workbenchi.
GFA BASIC dokonce obsahoval i procedury umožňující jednoduchou tvorbu GUI. Mezi další vlastnosti GFA BASICu patří podpora pro tvorbu programů, v nichž se nemusely používat čísla řádků, což je jeden z poměrně zásadních rozdílů mezi tímto jazykem a mnoha BASICy pro osmibitové mikropočítače. Dále tento programovací jazyk podporoval strukturované příkazy určené pro tvorbu programových smyček, podporu pro tvorbu uživatelských procedur a funkcí a taktéž například velmi užitečný příkaz použitelný pro blokové přesuny dat BMOVE, k dispozici byla i celá řada příkazů umožňujících jednoduše provádět operace s maticemi (MATRIX…).
Obrázek 19: Výběr souboru pro načtení do editoru GFA Basicu.
6. Práce se sprity v GFA Basicu
GFA BASIC patřil mezi skupinu programovacích jazyků, které kromě podpory práce s planární grafikou mikropočítačů Amiga podporovaly i práci se sprity. O spritech na Amize jsme se ještě v tomto seriálu nezmiňovali, takže nyní nastal nejvyšší čas tento nedostatek napravit. Podpora pro práci se sprity, tj. s grafickými objekty, které jsou vykreslovány nezávisle na pozadí, se začala ve větší míře objevovat již u některých osmibitových domácích počítačů, například osmibitových Atari i legendárního Commodore C64. Sprity se používaly především ve hrách, například pro vykreslení hráče či protihráčů, ale i v dalších aplikacích zaměřených na počítačovou grafiku.
Obrázek 20: Tento program používá některé možnosti grafického subsystému Amigy – práci se sprity a BOBy.
Velká část grafických subsystémů podporujících práci se sprity (čip GTIA u osmibitových Atari, čip VIC u Commodore C64 apod.) taktéž obsahovala takzvané kolizní registry, do kterých se automaticky ukládaly příznaky překryvu pozadí se sprity nebo mezi několika sprity navzájem. Díky tomu se při práci s pohyblivými obrazy předmětů nemusely provádět zdlouhavé testy mezi všemi zobrazovanými pixely. Originální Amigácký čipset (OCS) práci se sprity, podobně jako výše zmíněné osmibitové domácí počítače, taktéž podporoval. Pracovat bylo možné s osmi sprity (pro každý sprite byl vyhrazen samostatný DMA kanál), jejichž horizontální velikost byla rovna šestnácti pixelům a vertikální velikost byla ve své podstatě libovolná. Skutečná velikost pixelů byla nezávislá na nastaveném grafickém režimu a z něj odvozených velikostí pixelů, protože horizontální velikost pixelů u spritů odpovídala 1/320 šířky obrazovky a vertikální velikost buď 1/200 (NTSC) nebo 1/256 (PAL) její výšky. Pixely ve spritech, z nichž každý byl reprezentován dvojicí bitů, mohly být obarveny jednou ze tří barev, „čtvrtou“ barvou byla průhlednost (díky tomu mohly mít sprity při zobrazení libovolný tvar). Spojením dvojice spritů se dosáhlo zvýšení počtu barev na patnáct, šestnáctá hodnota byla opět rezervována pro průhlednost, tj. pro tu část spritu, přes který prosvítá pozadí.
Obrázek 21: Pokračování programu z předchozího screenshotu.
7. Zvýšení počtu spritů (vsprites) a BOBs
Díky jednoduchému triku známému již z počítačů Commodore C64 či osmibitových Atari, se mohl počet současně zobrazených spritů zvýšit – postačilo měnit horizontální pozici spritů na zvoleném obrazovém řádku spolu s počáteční adresou spritu v paměti, například během přerušení při zpětném běhu elektronového paprsku. Pro tento účel bylo možné využít koprocesor Copper, takže mikroprocesor nemusel být těmito operacemi vůbec zatížený. Prakticky jediným omezením při práci se sprity na počítačích Amiga je tak zobrazení osmi spritů na jednom obrazovém řádku (i to však lze obejít), poněkud složitější práce s kolizními registry při zvýšení počtu spritů a taktéž to, že rastrová data představující všechny sprity musela být umístěna v prvním megabajtu paměti (toto omezení platí především pro originální čipset, protože například modernější čipsety ECS či AGA již dokáží adresovat větší rozsah paměti).
Obrázek 22: Chyba kvůli chybějícím souborům GFA Basicu.
Kromě klasických spritů se taktéž využívaly takzvané BOBs neboli Blitter OBjects (i tyto objekty byly GFA BASICem podporovány). Tyto grafické objekty byly vykreslovány dalším koprocesorem – Blitterem a netrpěly tak omezeními spritů. Především bylo možné namísto tří či šestnácti barev využít všech 32 barev (EHB), velikost těchto objektů byla taktéž volitelná. Jednou z nevýhod bylo poněkud pomalejší vykreslování, protože se musely provádět blokové přesuny dat v paměti. Koprocesor Blitter mohl provádět i další zajímavé grafické operace, například bitový posun dat při jejich přenosu, vyplňování oblastí a dokonce i vykreslování úseček.
8. Blitz Basic
Další variantou programovacího jazyka BASIC je Blitz Basic, jehož autorem je Mark Sibly z Nového Zélandu. Jedná se o jazyk, který je sice v některých ohledech založen na syntaxi klasického Basicu a obsahuje i podobně nazvané procedury a funkce, ovšem při tvorbě aplikací nebylo nutné používat čísla řádků, Blitz Basic podporoval strukturované příkazy atd. Tento jazyk byl orientován především na tvorbu her a grafických programů – a skutečně byl k tomuto účelu používán, například pro vytváření grafických editorů ke hrám, bylo ho možné kombinovat s procedurami psanými v assembleru atd. Blitz Basic však ve skutečnosti není pouhý interpret, ale jedná se o ucelené vývojové prostředí obsahující programátorský textový editor Ted, debugger a v neposlední řadě taktéž překladač. Zajímavé je, že i Blitz Basic „přežil“ počítače Amiga a v současnosti je nabízen v různých variantách pro operační systém Windows: BlitzBasic, BlitzPlus, Blitz3D atd.
Obrázek 23: Obsah disku s Blitz Basicem ve Workbenchi.
Seznam klíčových slov Blitz Basicu lze nalézt na této stránce:
- Klíčová slova BlitzBasicu
http://amiga.sourceforge.net/amigadevhelp/phpwebdev.php
Obrázek 24: Po spuštění Blitz Basicu 2.
Obrázek 25: Informace o autorech.
Obrázek 26: Zápis programu v editoru TED.
Obrázek 27: Hlavní menu Blitz Basicu.
Obrázek 28: Spuštění testovacího programu.
Obrázek 29: Nastavení parametrů překladu.
9. Odkazy na Internetu
- Orthodox File Managers
http://www.softpanorama.org/OFM/index.shtml - File manager
http://en.wikipedia.org/wiki/File_manager - PathMinder
http://en.wikipedia.org/wiki/PathMinder - Commodore CDTV
http://en.wikipedia.org/wiki/Commodore_CDTV - Amiga
http://en.wikipedia.org/wiki/Amiga - Picasso 2
http://www.iol.ie/~ecarroll/picasso2.html - Hold-And-Modify
http://en.wikipedia.org/wiki/Amiga_Hold-And-Modify - Amiga Halfbrite mode
http://en.wikipedia.org/wiki/Amiga_Hold-And-Modify - HAM8 Explained
http://www.amigans.net/modules/AMS/article.php?storyid=22 - Amiga FAQ (Frequently asked questions) (Part 1 of 4)
http://www.faqs.org/faqs/amiga/introduction/part1/ - Amiga FAQ (Frequently asked questions) (Part 2 of 4)
http://www.faqs.org/faqs/amiga/introduction/part2/ - Amiga FAQ (Frequently asked questions) (Part 3 of 4)
http://www.faqs.org/faqs/amiga/introduction/part3/ - Amiga FAQ (Frequently asked questions) (Part 4 of 4)
http://www.faqs.org/faqs/amiga/introduction/part4/ - Amiga Coding Wiki
http://www.amigacoding.com/index.php/Main_Page - Amiga screen
http://amigadev.elowar.com/read/ADCD2.1/Hardware_Manual_guide/node0061.html - Amiga HAM mode
http://amigadev.elowar.com/read/ADCD2.1/Hardware_Manual_guide/node008F.html - Copper WAIT instruction
http://amigadev.elowar.com/read/ADCD2.1/Hardware_Manual_guide/node004B.html - Copper MOVE instruction
http://amigadev.elowar.com/read/ADCD2.1/Hardware_Manual_guide/node004A.html - GalaxSIM: Solutions for Digital Living
http://www.amiga.com/ - Denise Pin Assignment
http://www.ntrautanen.fi/computers/hardware/misc/denise.htm - Custom Chips: Paula
http://www.amiga-hardware.com/showhardware.cgi?HARDID=1460 - Big Book of Amiga Hardware
http://www.amiga-resistance.info/bboahfaq/ - Amiga Hardware Database
http://amiga.resource.cx/ - ExoticA
http://www.exotica.org.uk/wiki/Main_Page - The absolute basics of Amiga audio
http://www.sufo.estates.co.uk/amiga/amimus.html - Wikipedia: Tracker
http://en.wikipedia.org/wiki/Tracker - Wikipedia: Trackers
http://en.wikipedia.org/wiki/Trackers - Ultimate Soundtracker
http://en.wikipedia.org/wiki/Ultimate_Soundtracker - Protracker
http://en.wikipedia.org/wiki/ProTracker - Impulse Tracker
http://en.wikipedia.org/wiki/Impulse_Tracker - Scream Tracker
http://en.wikipedia.org/wiki/ScreamTracker - MikMod for Java
http://jmikmod.berlios.de/ - List of audio trackers
http://en.wikipedia.org/wiki/List_of_audio_trackers - Wikipedia: Module File
http://en.wikipedia.org/wiki/Module_file - Wikipedia: Chiptune
http://en.wikipedia.org/wiki/Chiptune - Amiga Original chipset
http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Amiga_Original_chipset.html - The Final Fantasy
http://www.thefinalfantasy.com/ - Final Fantasy: Mystic Quest
http://www.gamefaqs.com/snes/532476-final-fantasy-mystic-quest - Book:Final Fantasy series
http://en.wikipedia.org/wiki/Book:Final_Fantasy_series - The World of Final Fantasy
http://www.mobygames.com/featured_article/feature,18/section,114/ - Final Fantasy Style
http://www.mobygames.com/featured_article/feature,18/section,116/ - List of Final Fantasy video games
http://en.wikipedia.org/wiki/List_of_Final_Fantasy_video_games - SQUARE ENIX CO.
http://www.square-enix.com/ - Square Enix : Corporate history
http://www.square-enix.com/jp/company/e/history/ - The History of Computer Role-Playing Games Part 1: The Early Years (1980–1983)
http://www.gamasutra.com/features/20070223a/barton01.shtml - The History of Computer Role-Playing Games Part 2: The Golden Age(1985–1993)
http://www.gamasutra.com/features/20070223b/barton_pfv.htm - Dungeon Master – Return To Chaos
Window port of DM - Dungeon Master (video game)
http://en.wikipedia.org/wiki/Dungeon_Master_(video_game) - Dungeon Master Encyclopaedia
http://dmweb.free.fr/ - Dungeon Master Overview
http://dmweb.free.fr/?q=node/247 - Chaos Strikes Back Overview
http://dmweb.free.fr/?q=node/249 - Dungeon Master II Overview
http://dmweb.free.fr/?q=node/250 - Dungeon Master – Return To Chaos
http://www.ragingmole.com/RTC/ - Dungeon Master Speed Run in 20 minutes! Part 1/2
http://www.youtube.com/watch?v=Ho5E05Bi3bU - Dungeon Master Speed Run in 20 minutes! Part 2/2
http://www.youtube.com/watch?v=Fpht4dWOnGE - Dungeon Master CZ
http://dm.zpc.cz/ - Dungeon Master
http://rpg.yin.cz/d/dungeon-master/ - Return to Chaos (CZ info)
http://dm.zpc.cz/?sekce=rtcinfo - Dungeon Master – kouzla (CZ)
http://dm.zpc.cz/?sekce=dmkouzla - Dungeon Master Java (CZ info)
http://dm.zpc.cz/?sekce=dmjavainfo - Dungeon Master Java (CZ novinky a download)
http://dm.zpc.cz/?sekce=dmjavadownload - Best of Old Games: Dungeon Master
http://www.bestoldgames.net/stare-hry/dungeon-master.php - Muzeum: Dungeon Master – klasika všech klasik
http://www.doupe.cz/default.aspx?article=124596 - Návody – Dungeon Master 1
http://www.abcgames.cz/?p=navody_zobraz&id=1307 - Super NES Programming/Initialization Tutorial
http://en.wikibooks.org/wiki/Super_NES_Programming/Initialization_Tutorial - SNES Development sites
http://www.snescentral.com/development.php - Super NES Programming
http://en.wikibooks.org/wiki/Super_NES_Programming - Super Nintendo Development Wiki
http://wiki.superfamicom.org/snes/show/HomePage - 6502.org
http://www.6502.org/ - The 6502/65C02/65C816 Instruction Set Decoded
http://www.llx.com/~nparker/a2/opcodes.html - 6502 Addressing Modes
http://www.obelisk.demon.co.uk/6502/addressing.html - HuC6280 CPU
http://shu.emuunlim.com/download/pcedocs/pce_cpu.html - Hudson Soft HuC6280 (Wikipedia)
http://en.wikipedia.org/wiki/Hudson_Soft_HuC6280 - William D. Mensch jr.
http://www.computerhalloffame.org/index.php?option=com_content&view=article&id=31&Itemid=4 - Bill Mensch
http://en.wikipedia.org/wiki/Bill_Mensch - SPC 700 Documentation
http://emureview.ztnet.com/developerscorner/SoundCPU/spc.htm - Super NES Programming/SPC700 reference
http://en.wikibooks.org/wiki/Super_NES_Programming/SPC700_reference - Mega Lo Mania
http://www.mobygames.com/game/mega-lo-mania - Mega Lo Mania
http://en.wikipedia.org/wiki/Mega_Lo_Mania - Cannon Fodder
http://www.allgame.com/game.php?id=739 - Cannon Fodder [European]
http://www.allgame.com/game.php?id=15717 - Retrospective: Cannon Fodder
http://www.rockpapershotgun.com/2007/11/11/retrospective-cannon-fodder/ - Cannon Fodder
http://en.wikipedia.org/wiki/Cannon_Fodder_(video_game) - BC Racers
http://en.wikipedia.org/wiki/BC_Racers - Desert Strike Advance
http://www.ign.com/articles/2002/06/03/desert-strike-advance - Three Strikes And You're Out
http://www.eurogamer.net/articles/three-strikes-and-youre-out-article - Head 2 Head: Desert Strike – SNES vs MegaDrive
http://www.retrogamescollector.com/head-2-head-desert-strike-snes-vs-megadrive/ - Desert Strike: Return to the Gulf
http://en.wikipedia.org/wiki/Desert_Strike:_Return_to_the_Gulf - The Chaos Engine (Soldiers of Fortune USA)
http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine.htm - The Chaos Engine series
http://www.mobygames.com/game-group/chaos-engine-series - The Chaos Engine
http://en.wikipedia.org/wiki/Chaos_Engine - The Chaos Engine 2
http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine2.htm - The Chaos Engine series
http://www.mobygames.com/game-group/chaos-engine-series - Moby Games: Speedball series
http://www.mobygames.com/game-group/speedball-series - Bitmap Brothers: Speedball (original)
http://www.bitmap-brothers.co.uk/our-games/past/speedball.htm - Bitmap Brothers: Speedball 2: Brutal Deluxe
http://www.bitmap-brothers.co.uk/our-games/past/speedball2.htm - Wikipedia: Speedball (video game)
http://en.wikipedia.org/wiki/Speedball_(video_game) - Golden Axe
http://strategywiki.org/wiki/Golden_Axe - Golden Axe (series)
http://en.wikipedia.org/wiki/Golden_Axe_(series) - Golden Axe II
http://www.gamespot.com/golden-axe-ii/platform/genesis/ - Golden Axe II
http://strategywiki.org/wiki/Golden_Axe_II - Golden Axe III
http://strategywiki.org/wiki/Golden_Axe_III - Game Freaks 365: Sonic the Hedgehog 2
http://gamefreaks365.com/review.php?artid=1631 - Sonic The Hedgehog 2 (GENESIS)
http://web.archive.org/web/20070831062914/http://sonic.neoseeker.com/sonic_the_hedgehog2/GENESIS/pages/release_dates_background3/ - Neoseeker: Sonic the Hedgehog 2 (16-bit)
http://www.neoseeker.com/Games/Products/GENESIS/sonic_the_hedgehog2/ - Wikipedia: Sonic the Hedgehog 2 (16-bit)
http://en.wikipedia.org/wiki/Sonic_the_Hedgehog2_(16-bit) - Gamespot: Disney's Aladdin
http://www.gamespot.com/disneys-aladdin-in-nasiras-revenge/platform/ps/ - Moby Games: Disney's Aladdin
http://www.mobygames.com/game/disneys-aladdin - Internet Movie Database: Aladdin (I) (Video Game 1993)
http://www.imdb.com/title/tt0204798/ - Wikipedia: Disney's Aladdin (video game)
http://en.wikipedia.org/wiki/Disney's_Aladdin_(video_game) - Eric Chahi
http://en.wikipedia.org/wiki/Eric_Chahi - Wikipedia: Another World (video game)
http://en.wikipedia.org/wiki/Another_World_(video_game) - SN76489 sound chip details
http://web.inter.nl.net/users/J.Kortink/home/articles/sn76489/ - SN76464 datasheet
http://www.ic-on-line.cn/view_online.php?id=1106623&file=0054%5Csn76494_409323.pdf - Texas Instruments SN76489 (Wikipedia)
http://en.wikipedia.org/wiki/Texas_Instruments_SN76489 - SN76489
http://www.smspower.org/Development/SN76489?sid=ae16503f2fb18070f3f40f2af56807f1 - YM2413 FM Operator Type-LL (OPLL) Application Manual
http://www.smspower.org/maxim/Documents/YM2413ApplicationManual?sid=28c370e1fcac51d5774319979bf96f4c - Programming the Sega MegaDrive
http://darkdust.net/writings/megadrive - MegaDrive / SegaGenesis docs
http://www.genny4ever.net/index.php?page=docs - IGN: Top 25 Consoles
http://www.ign.com/top-25-consoles/13.html - Sega Mega Drive
http://sega.jp/archive/segahard/md/ - Sega Archives
http://sega.jp/archive/segahard/ - Sega Genesis
http://www.dmoz.org/Games/Video_Games/Console_Platforms/Sega/Genesis/ - The Retro Gen Plays Genesis Games
http://uk.gamespy.com/articles/998/998637p1.html - The Sega Mega Drive/Genesis
http://www.captainwilliams.co.uk/sega/megadrive/megadrive.php - Sega Game Gear 101: A Beginner's Guide
http://www.racketboy.com/retro/sega/gamegear/sega-game-gear-101-a-beginners-guide - SEGA GameGear | Marc's Realm
http://darkdust.net/retrogaming/gamegear - Sega Master System Hardware
http://www.smspower.org/Development/Documents - Sega Master System Museum
http://alexkidd.com/ - Jadeite's Sega Master System Museum
http://rp_gamer.tripod.com/SMS/1.html - Sega Master System (Wikipedia)
http://en.wikipedia.org/wiki/Sega_Master_System - Sega Card (Wikipedia)
http://en.wikipedia.org/wiki/Sega_Card - Sega Master System VDP documentation
http://www.smspower.org/uploads/Development/msvdp-20021112.txt?sid=28c370e1fcac51d5774319979bf96f4c - bee – The Multi-Console Emulator
http://www.thebeehive.ws/ - TurboGrafx-16 TurboExpress
http://www.allgame.com/platform.php?id=17673 - HuC6280 CPU
http://shu.emuunlim.com/download/pcedocs/pce_cpu.html - Hudson Soft HuC6280 (Wikipedia)
http://en.wikipedia.org/wiki/Hudson_Soft_HuC6280 - TurboGrafx-16 (Wikipedia)
http://en.wikipedia.org/wiki/TurboGrafx-16 - MagicEngine – TurboGrafx-16 emulator
http://www.magicengine.com/ - Motorola 68000 CPU
http://en.wikipedia.org/wiki/68000 - Motorola 68008
http://en.wikipedia.org/wiki/Motorola_68008 - Motorola 68020
http://en.wikipedia.org/wiki/Motorola_68020 - Motorola 68030
http://en.wikipedia.org/wiki/Motorola_68030