Hlavní navigace

Historie vývoje počítačových her (51. část - další vývojové nástroje dostupné pro mikropočítače Amiga)

8. 11. 2012
Doba čtení: 21 minut

Sdílet

Dnes budeme pokračovat v popisu vývojových nástrojů dostupných pro mikropočítače Amiga. Minule jsme se zabývali především různými interpretry a překladači různých variant Basicu a céčka. Dnes si popíšeme Amiga E, ASM-One assembler a v neposlední řadě i skriptovací jazyk ARexx a dva esoterické jazyky.

Obsah

1. Historie vývoje počítačových her (51. část – další vývojové nástroje dostupné pro mikropočítače Amiga)

2. Programovací jazyk Amiga E

3. Příklady jednoduchých programů napsaných v Amiga E

4. Skriptovací jazyk ARexx

5. Assemblery na mikropočítačích Amiga

6. ASM-One Macro Assembler

7. Esoterické programovací jazyky pro Amigu

8. Programovací jazyk FALSE

9. Odkazy na Internetu

1. Historie vývoje počítačových her (51. část – další vývojové nástroje dostupné pro mikropočítače Amiga)

V dnešní části seriálu o historii vývoje výpočetní techniky navážeme na část předchozí, v níž jsme si popsali některé interpretry a překladače programovacího jazyka Basic (GFA Basic, Blitz Basic částečně i AmigaBASIC) i překladače programovacího jazyka C (Aztec C, Lattice C). Dnes se budeme zabývat převážně těmi programovacími jazyky, které vznikly přímo na Amize. Bude se jednat především o populární programovací jazyk Amiga E, který byl vybaven překladačem, dále pak o jazyk AMOS, skriptovací jazyk ARexx (ten měl důležitou roli přímo v operačním systému) a nesmíme zapomenout ani na některý assembler, protože mnoho aplikací, převážně hry a dema, se programovalo v assembleru (jazyku symbolických adres/instrukcí). Na závěr si pro odlehčení řekneme základní informace o některých esoterických programovacích jazycích.

V následující tabulce jsou vypsány již popsané nebo dnes popisované programovací jazyky:

# Název produktu Díl seriálu Kapitola
1 Aztec C 50 4
2 Lattice C 50 4
3 GFA BASIC 50 5
4 Blitz BASIC 50 8
5 AmigaBASIC    
6 Amiga E 51 2, 3
7 ASM-One Macro Assembler 51 6
8 ARexx 51 4
9 Brainfuck 51 7
10 FALSE 51 8

2. Programovací jazyk Amiga E

Prvním programovacím jazykem, s nímž se dnes seznámíme, je jazyk nazvaný Amiga E. Autorem původní verze tohoto ve své době velmi populárního jazyka je Wouter van Oortmerssen, jenž se vedle vývoje Amiga E mj. zabýval i vývojem esoterického jazyka FALSE popsaného v osmé kapitole. Jedná se o programátora známého i z oblasti herního průmyslu, podílel se například na vývoji Far Cry či engine Cube. Původní varianta programovacího jazyka Amiga E byla vybavena velmi rychlým překladačem naprogramovaným přímo v assembleru mikroprocesoru Motorola 68000, další varianty překladače Amiga E pak začaly podporovat i modernější mikroprocesory řady M68000 (ty jsou sice zpětně kompatibilní, ovšem postupně se na platformě M68000 začaly objevovat nové vlastnosti).

Programovací jazyk Amiga E některé své koncepty převzal z céčka, ovšem mnohé jeho vlastnosti byly inspirovány i dalšími (vysokoúrovňovými) programovacími jazyky (Modula, Pascal, možná i PL/1…). V Amiga E se proto objevuje odlišněji pojatý typový systém, podpora pro tvorbu modulů (ta je v céčku řešena pouze na externí úrovni, nikoli na úrovni jazykové), podpora pro objektově orientované programování a taktéž jazykové konstrukce použitelné pro práci s výjimkami. V současnosti je původní varianta jazyka Amiga E uvolněna jako freeware, a to včetně zdrojových kódů. Z Amiga E se postupně vyvinuly další programovací jazyky, z nichž některé jsou založeny na původních zdrojových kódech a jiné vznikly prakticky kompletním přepisem překladače:

Jazyk Autor Poznámka
CreativE Tomasz Wiszkowski založen na zdrojových kódech Amiga E, podpora pro nové procesory
PowerD Martin Kuchinka podpora pro novější procesory, ne zcela zpětně kompatibilní
YAEC Leif Salomonsson prakticky kompletně přepsáno, používá externí assembler
ECX Leif Salomonsson překladač napsán přímo v E, podpora pro další platformy
PortablE Christopher Handley překladač napsán přímo v E, může přeložit sám sebe (jako C), podpora pro Amiga OS, PPC, MorphOS, Windows

3. Příklady jednoduchých programů napsaných v Amiga E

V této kapitole si ukážeme několik velmi jednoduchých demonstračních příkladů vytvořených v programovacím jazyce Amiga E. Tyto příklady ukazují způsob zápisu struktury programů, ale například i deklaraci nové třídy, deklarace nové metody pro tuto třídu a deklaraci potomka této třídy.

Jednoduchá procedura/funkce, která sečte hodnoty svých dvou parametrů a vrátí výsledek součtu. Povšimněte si způsobu vrácení výsledku i „beztypovosti“ zápisu (v případě potřeby však lze informace o typech doplnit:

PROC add(x, y)
    DEF s
    s:=x+y
ENDPROC s

Počítaná smyčka vytvořená cyklem FOR:

PROC main()
    DEF x
    FOR x:=1 TO 10
        WriteF('\d ', x)
    ENDFOR
    WriteF('\n')
ENDPROC

Zde smyčka FOR snižuje v každé iteraci počitadlo o jedničku:

PROC main()
    DEF i
    FOR i := 10 TO 0 STEP -1
        WriteF('\d\n', i)
    ENDFOR
ENDPROC

Dalším typem smyčky je smyčka WHILE, zde asi není zapotřebí dalšího vysvětlování:

PROC main()
    DEF x
    x:=1
    WHILE x <= 10
        WriteF('\d ', x)
        x:=x+1
    ENDWHILE
    WriteF('\n')
ENDPROC

V procedurách/funkcích je možné použít i příkaz RETURN pro předčasné ukončení běhu procedury/funkce:

PROC fact(x)
    DEF r, y
    IF x < 2 THEN RETURN 1
    r := 1; y := x;
    FOR x := 2 TO y DO r := r * x
ENDPROC r

Deklarace atributů tříd:

OBJECT set
    elts[100]:ARRAY OF LONG
    size
ENDOBJECT

Deklarace metody patřící k nějaké třídě:

PROC add(x) OF set
    /* code for add method */
ENDPROC

Deklarace potomka nějaké třídy (opět pouze atributů):

OBJECT d OF b
    extra_d_data
ENDOBJECT

Odkazy na další stránky věnující se programovacímu jazyku Amiga E:

  1. Amiga E (Wouter's Wiki)
    http://strlen.com/amiga-e
  2. Amiga E v3.3a Compiler for The E Language
    http://cshandley.co.uk/amigae/
  3. A Beginner's Guide to Amiga E
    http://cshandley.co.uk/JasonHulance/
  4. Amiga E (Wikipedia)
    http://en.wikipedia.org/wiki/Amiga_E
  5. Wouter van Oortmerssen's Wiki
    http://strlen.com/
  6. Wouter van Oortmerssen
    http://en.wikipedia.org/wi­ki/Wouter_van_Oortmerssen

4. Skriptovací jazyk ARexx

O programovacím jazyku ARexx jsme se již krátce zmiňovali v předchozí části tohoto seriálu. Jedná se o variantu programovacího jazyka REXX používaného na mnoha typech počítačů, včetně mainframů (populární byl tento jazyk na mnoha produktech firmy IBM, obsažen byl například i v OS/2 ve funkci podobné, jako ARexx v případě Amigy). ARexx je na počítačích Amiga důležitý především z toho důvodu, že je ho možné využít přímo v operačním systému Amigy pro komunikaci mezi různými programy. Každý program totiž mohl obsahovat rozhraní, přes nějž ho bylo možné ovládat či jen načítat vypočtené hodnoty atd. Podobně jako je tomu v unixech a programech spojovaných přes svůj standardní vstup a výstup, i v případě ARexxu bylo možné vhodným spojením jednoúčelových programů vytvořit i poměrně složitou aplikaci. Podobně jako další skriptovací jazyky je i ARexx do značné míry beztypový, což ale jen usnadňovalo komunikaci mezi aplikacemi.

5. Assemblery na mikropočítačích Amiga

Prozatím jsme se věnovali převážně popisu vyšších programovacích jazyků, tj. takových programovacích jazyků, u nichž pro většinu jazykových konstrukcí neexistuje přímá korespondence s adresou či instrukcí, pomocí níž je tato konstrukce realizována (dobrým příkladem může být podmínka if-then-else, jenž musí být většinou implementována pomocí podmíněných skoků). Ovšem mikropočítače Amiga se, podobně jako například i konkurenční počítače Atari ST, velmi často používaly jako herní stroje a navíc se zde rozvinula i „subkultura“ vývojářů, kteří se zabývali programováním audiovizuálních dem. U těchto typů aplikací bylo velmi důležité, aby bylo například vykreslovací jádro co nejrychlejší, takže se programátoři velmi často uchylovali k použití assembleru. Tímto termínem se poněkud nepřesně označuje jak příslušný jazyk – česky jazyk symbolických adres nebo jazyk symbolických instrukcí, tak i překladač, který zápis v assembleru převede do (binárního) strojového kódu cílového procesoru.

Assemblery byly na počítačích Amiga a Atari ST mezi programátory poměrně populární i díky tomu, že instrukční kód mikroprocesorů Motorola 68000 byl do velké míry ortogonální, obsahoval relativně velké množství registrů (univerzální datové registry D0 až D7 a adresové registry A0 až A7) a navíc bylo možné používat i takové adresovací režimy, které korespondovaly s konstrukcemi používanými ve vyšších programovacích jazycích (přístupy k prvkům polí, přístup k lokálním proměnným umístěných v zásobníkovém rámci, autoinkrementace adresy atd.). Podívejme se na jednoduchý příklad rutiny (originál najdete zde, která sečte všechny prvky (16bitové integery – načítá se vždy jen 16bitové slovo) v poli. V tomto příkladu se používá autoinkrementace adresy při adresování prvků polí a taktéž instrukce DBRA provádí dvě činnosti – snížení hodnoty registru o jedničku a skok v případě, že je výsledek nenulový:

    moveq #0, d0      ; potřebujeme vynulovat horních 16 bitů d0
    moveq #0, d1      ; mezivýsledek
loop:
    move.w (a0)+, d0  ; horních 16 bitů d0 je pořád nastaveno na 0
    add.l d0, d1
    dbra d2, loop     ; d2 je použit jako počitadlo

6. ASM-One Macro Assembler

Jedním z populárních assemblerů dostupných pro mikropočítače Amiga byl assembler nazvaný ASM-One Macro Assembler. Autorem tohoto assembleru je Rune-Gram Madsen, který tento nástroj v průběhu roku 1990 vytvořil za pouhé čtyři týdny (čistý čas vývoje prý nepřesáhl 700 hodin). Jednalo se o komerčně dostupný nástroj prodávaný společností DMV Verlag (Německo) za přibližně 139 marek. Ovšem počet reálně prodaných kusů tohoto nástroje byl poměrně nízký – prodalo se pouze přibližně 500 kopií první verze; ovšem na tomto místě je nutné poznamenat, že ASM-One nebyl jedinou aplikací, která měla problémy s prodejem. Podobný osud totiž potkal například i mnoho her, což je jeden z důvodů, proč některé softwarové firmy postupně přešly na jiné platformy.

Dnes si většinou pod pojmem „assembler“, představujeme nástroj spouštěný z příkazového řádku, který překládá zdrojové kódy napsané v jazyku symbolických adres do objektového (binárního) kódu, popř. přímo vytváří spustitelné soubory. Ovšem ASM-One Macro Assembler se od tohoto chápání assemblerů liší, protože se jednalo o plnohodnotné integrované vývojové prostředí vybavené textovým editorem, samotným assemblerem, monitorem a taktéž debuggerem. Celé prostředí bylo přitom naprogramované taktéž v assembleru a velikost binárního balíčku nepřesahovala devadesát kilobajtů.

Odkazy na další stránky věnující se assembleru ASM-One:

  1. 680×0:AsmOne
    http://www.amigacoding.com/in­dex.php/680×0:AsmOne
  2. ASM-One Macro Assembler
    http://en.wikipedia.org/wiki/ASM-One_Macro_Assembler
  3. ASM-One pages
    http://www.theflamearrows­.info/documents/asmone.html
  4. Základní informace o ASM-One
    http://www.theflamearrows­.info/documents/asminfo.html

7. Esoterické programovací jazyky pro Amigu

Pro doplnění tohoto článku možná nebude na škodu se seznámit i s takzvanými esoterickými programovacími jazyky. Na rozdíl od většiny běžných programovacích jazyků, jejichž tvůrci se snaží o návrh snadno použitelných nástrojů, jsou esoterické jazyky většinou navrženy takovým způsobem, aby programy v nich napsané byly co nejméně čitelné. Některé z těchto jazyků, například slavný Brainfuck, jsou navrženy minimalisticky – používají jen naprosto nezbytné minimum příkazů či jazykových konstrukcí. Již zmíněný jazyk Brainfuck z roku 1993, jehož autorem je Urban Müller, používal pouze osm základních příkazů (podobných příkazům použitým u Turingova stroje, které jsou doplněny o dva příkazy pro vstup a výstup jednoho bajtu/ASCII znaku), přičemž každý příkaz byl reprezentován pouze jediným znakem. Pro počítače Amiga existovalo několik interpretrů a dokonce i překladače jazyka Brainfuck, přičemž některé implementace měly binární spustitelný soubor menší než 200 bajtů!

Programy zapisované v Brainfucku nemají pevně danou strukturu a mohou obsahovat prakticky všechny další znaky (včetně mezer a konců řádků), které jsou při interpretaci či kompilaci ignorovány. Rozeznává se pouze osm znaků vypsaných v následující tabulce. Tyto znaky slouží pro posun ukazatele po pásce rozdělené do políček, přičemž na každém políčku je uložena celočíselná hodnota. Páska je většinou reprezentována polem, jehož maximální velikost bývá omezena na 32000 buněk a celočíselné hodnoty ukládané do jednotlivých buněk mohou mít hodnotu v rozsahu 0..255 (některé implementace však mají velikost pásky/pole prakticky neomezenou):

# Příkaz Význam
1 > posun ukazatele na „pásce“ doprava na další políčko
2 < posun ukazatele na „pásce“ doleva na předchozí políčko
3 + zvýšení celočíselné hodnoty uložené v aktuálním políčku o 1
4 snížení celočíselné hodnoty uložené v aktuálním políčku o 1
5 . výpis číselné hodnoty (převedené na ASCII znak) uložené v aktuálním políčku
6 , načtení bajtu (znaku) a uložení jeho číselné hodnoty do aktuálního políčka (opět se většinou předpokládá použití ASCII)
7 [ v případě, že je hodnota v aktuálním políčku nulová, přesune se program na odpovídající ]
8 ] v případě, že je hodnota v aktuálním políčku nenulová, přesune se program na odpovídající [

Typickým demonstračním programem je „Hello world“, který v podání Brainfucku vypadá následovně:

++++++++++[>+>+++>++++>+++++++>++++++++>+++++++++>++
++++++++>+++++++++++>++++++++++++<<<<<<<<<-]>>>>+.>>>
>+..<.<++++++++.>>>+.<<+.<<<<++++.<++.>>>+++++++.>>>.+++.
<+++++++.--------.<<<<<+.<+++.---.

Dalším podobně nečitelným programem je program pro výpočet faktoriálu:

>++++++++++>>>+>+[>>>+[-[<<<<<[+<<<<<]>>[[-]>[<<+>+>-]<[>+<-]<[>+<-[>+<-[>
+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>>>>+>+<<<<<<-[>+<-]]]]]]]]]]]>[<+>-
]+>>>>>]<<<<<[<<<<<]>>>>>>>[>>>>>]++[-<<<<<]>>>>>>-]+>>>>>]<[>++<-]<<<<[<[
>+<-]<<<<]>>[->[-]++++++[<++++++++>-]>>>>]<<<<<[<[>+>+<<-]>.<<<<<]>.>>>>]

8. Programovací jazyk FALSE

Dalším esoterickým programovacím jazykem, o němž je vhodné se v dnešním článku zmínit, je jazyk s názvem FALSE. Autorem tohoto programovacího jazyka je Wouter van Oortmerssen, o němž jsme se již zmiňovali v souvislosti s vyšším programovacím jazykem Amiga E ve druhé kapitole. Pokud bychom se měli držet chronologie vývoje programovacích jazyků, řadil by se jazyk FALSE před Brainfuck, protože Brainfuck ve skutečnosti vznikl jako reakce na překladač jazyka FALSE, který měl velikost pouhý jeden kilobajt! Zatímco Brainfuck je de facto založen na mírně modifikovaném Turingově stroji doplněném o instrukce vstupu a výstupu, je FALSE založen na zásobníkovém virtuálním stroji, takže se výsledný program tvoří podobným způsobem, jako program v jazyce Forth, i když samotné příkazy (ve Forthu slova) jsou zde zapisovány jediným znakem – každý znak je celým příkazem, podobně jako v případě Brainfucku (i to je ostatně jeden z důvodů jednoduchosti interpretrů a překladačů těchto esoterických jazyků).

root_podpora

Pokud se ve zdrojovém programu vyskytuje číslo, je toto číslo uloženo na zásobník, podobně jako ve Forthu. Posléze lze s hodnotami uloženými na vrcholu zásobníku (popř. těsně pod jeho vrcholem) provádět mnoho operací – aritmetických, logických, atd. S obsahem zásobníku lze různým způsobem manipulovat, například je možné duplikovat hodnotu uloženou na jeho vrcholu atd. Programovací jazyk FALSE taktéž obsahuje podporu pro proměnné, které jsou pro jednoduchost pojmenovány ‚a‘ až ‚z‘. Zajímavá je podpora podprogramů (subrutin), které jsou tvořeny kódem umístěným mezi znaky [ a ]. Pro vyvolání subrutiny (uložené na vrcholu zásobníku) se používá příkaz ! (vykřičník). V následující tabulce jsou pro ilustraci vypsány některé příkazy jazyka FALSE a korespondující příkazy Forthu:

# FALSE Forth
1 $ dup
2 % pop
3 \ swap
4 @ rot
5 _ neg
6 + +
7 : ! (store, uložení hodnoty do proměnné)
8 ; @ (fetch, načtení hodnoty z proměnné)

Odkazy na stránky s dalšími informacemi o programovacím jazyku FALSE:

  1. The False Programming Language
    http://strlen.com/false-language
  2. The FALSE Programming Language Manual
    http://strlen.com/false/false.txt

9. Odkazy na Internetu

  1. Orthodox File Managers
    http://www.softpanorama.or­g/OFM/index.shtml
  2. File manager
    http://en.wikipedia.org/wi­ki/File_manager
  3. PathMinder
    http://en.wikipedia.org/wi­ki/PathMinder
  4. Commodore CDTV
    http://en.wikipedia.org/wi­ki/Commodore_CDTV
  5. Amiga
    http://en.wikipedia.org/wiki/Amiga
  6. Picasso 2
    http://www.iol.ie/~ecarro­ll/picasso2.html
  7. Hold-And-Modify
    http://en.wikipedia.org/wi­ki/Amiga_Hold-And-Modify
  8. Amiga Halfbrite mode
    http://en.wikipedia.org/wi­ki/Amiga_Hold-And-Modify
  9. HAM8 Explained
    http://www.amigans.net/mo­dules/AMS/article.php?sto­ryid=22
  10. Amiga FAQ (Frequently asked questions) (Part 1 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part1/
  11. Amiga FAQ (Frequently asked questions) (Part 2 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part2/
  12. Amiga FAQ (Frequently asked questions) (Part 3 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part3/
  13. Amiga FAQ (Frequently asked questions) (Part 4 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part4/
  14. Amiga Coding Wiki
    http://www.amigacoding.com/in­dex.php/Main_Page
  15. Amiga screen
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node0061.html
  16. Amiga HAM mode
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node008F.html
  17. Copper WAIT instruction
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node004B.html
  18. Copper MOVE instruction
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node004A.html
  19. GalaxSIM: Solutions for Digital Living
    http://www.amiga.com/
  20. Denise Pin Assignment
    http://www.ntrautanen.fi/com­puters/hardware/misc/deni­se.htm
  21. Custom Chips: Paula
    http://www.amiga-hardware.com/showhardware­.cgi?HARDID=1460
  22. Big Book of Amiga Hardware
    http://www.amiga-resistance.info/bboahfaq/
  23. Amiga Hardware Database
    http://amiga.resource.cx/
  24. ExoticA
    http://www.exotica.org.uk/wi­ki/Main_Page
  25. The absolute basics of Amiga audio
    http://www.sufo.estates.co­.uk/amiga/amimus.html
  26. Wikipedia: Tracker
    http://en.wikipedia.org/wiki/Tracker
  27. Wikipedia: Trackers
    http://en.wikipedia.org/wiki/Trackers
  28. Ultimate Soundtracker
    http://en.wikipedia.org/wi­ki/Ultimate_Soundtracker
  29. Protracker
    http://en.wikipedia.org/wi­ki/ProTracker
  30. Impulse Tracker
    http://en.wikipedia.org/wi­ki/Impulse_Tracker
  31. Scream Tracker
    http://en.wikipedia.org/wi­ki/ScreamTracker
  32. MikMod for Java
    http://jmikmod.berlios.de/
  33. List of audio trackers
    http://en.wikipedia.org/wi­ki/List_of_audio_trackers
  34. Wikipedia: Module File
    http://en.wikipedia.org/wi­ki/Module_file
  35. Wikipedia: Chiptune
    http://en.wikipedia.org/wiki/Chiptune
  36. Amiga Original chipset
    http://www.princeton.edu/~acha­ney/tmve/wiki100k/docs/Ami­ga_Original_chipset.html
  37. The Final Fantasy
    http://www.thefinalfantasy.com/
  38. Final Fantasy: Mystic Quest
    http://www.gamefaqs.com/snes/532476-final-fantasy-mystic-quest
  39. Book:Final Fantasy series
    http://en.wikipedia.org/wi­ki/Book:Final_Fantasy_seri­es
  40. The World of Final Fantasy
    http://www.mobygames.com/fe­atured_article/feature,18/sec­tion,114/
  41. Final Fantasy Style
    http://www.mobygames.com/fe­atured_article/feature,18/sec­tion,116/
  42. List of Final Fantasy video games
    http://en.wikipedia.org/wi­ki/List_of_Final_Fantasy_vi­deo_games
  43. SQUARE ENIX CO.
    http://www.square-enix.com/
  44. Square Enix : Corporate history
    http://www.square-enix.com/jp/company/e/history/
  45. The History of Computer Role-Playing Games Part 1: The Early Years (1980–1983)
    http://www.gamasutra.com/fe­atures/20070223a/barton01­.shtml
  46. The History of Computer Role-Playing Games Part 2: The Golden Age(1985–1993)
    http://www.gamasutra.com/fe­atures/20070223b/barton_pfv­.htm
  47. Dungeon Master – Return To Chaos
    Window port of DM
  48. Dungeon Master (video game)
    http://en.wikipedia.org/wi­ki/Dungeon_Master_(video_ga­me)
  49. Dungeon Master Encyclopaedia
    http://dmweb.free.fr/
  50. Dungeon Master Overview
    http://dmweb.free.fr/?q=node/247
  51. Chaos Strikes Back Overview
    http://dmweb.free.fr/?q=node/249
  52. Dungeon Master II Overview
    http://dmweb.free.fr/?q=node/250
  53. Dungeon Master – Return To Chaos
    http://www.ragingmole.com/RTC/
  54. Dungeon Master Speed Run in 20 minutes! Part 1/2
    http://www.youtube.com/wat­ch?v=Ho5E05Bi3bU
  55. Dungeon Master Speed Run in 20 minutes! Part 2/2
    http://www.youtube.com/wat­ch?v=Fpht4dWOnGE
  56. Dungeon Master CZ
    http://dm.zpc.cz/
  57. Dungeon Master
    http://rpg.yin.cz/d/dungeon-master/
  58. Return to Chaos (CZ info)
    http://dm.zpc.cz/?sekce=rtcinfo
  59. Dungeon Master – kouzla (CZ)
    http://dm.zpc.cz/?sekce=dmkouzla
  60. Dungeon Master Java (CZ info)
    http://dm.zpc.cz/?sekce=dmjavainfo
  61. Dungeon Master Java (CZ novinky a download)
    http://dm.zpc.cz/?sekce=dmja­vadownload
  62. Best of Old Games: Dungeon Master
    http://www.bestoldgames.net/stare-hry/dungeon-master.php
  63. Muzeum: Dungeon Master – klasika všech klasik
    http://www.doupe.cz/defau­lt.aspx?article=124596
  64. Návody – Dungeon Master 1
    http://www.abcgames.cz/?p=na­vody_zobraz&id=1307
  65. Super NES Programming/Initialization Tutorial
    http://en.wikibooks.org/wi­ki/Super_NES_Programming/I­nitialization_Tutorial
  66. SNES Development sites
    http://www.snescentral.com/de­velopment.php
  67. Super NES Programming
    http://en.wikibooks.org/wi­ki/Super_NES_Programming
  68. Super Nintendo Development Wiki
    http://wiki.superfamicom.or­g/snes/show/HomePage
  69. 6502.org
    http://www.6502.org/
  70. The 6502/65C02/65C816 Instruction Set Decoded
    http://www.llx.com/~nparker/a2/op­codes.html
  71. 6502 Addressing Modes
    http://www.obelisk.demon.co­.uk/6502/addressing.html
  72. HuC6280 CPU
    http://shu.emuunlim.com/dow­nload/pcedocs/pce_cpu.html
  73. Hudson Soft HuC6280 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Hudson_Soft_HuC6280
  74. William D. Mensch jr.
    http://www.computerhallof­fame.org/index.php?option=com_con­tent&view=article&id=31&I­temid=4
  75. Bill Mensch
    http://en.wikipedia.org/wi­ki/Bill_Mensch
  76. SPC 700 Documentation
    http://emureview.ztnet.com/de­veloperscorner/SoundCPU/spc­.htm
  77. Super NES Programming/SPC700 reference
    http://en.wikibooks.org/wi­ki/Super_NES_Programming/SPC700_re­ference
  78. Mega Lo Mania
    http://www.mobygames.com/game/mega-lo-mania
  79. Mega Lo Mania
    http://en.wikipedia.org/wi­ki/Mega_Lo_Mania
  80. Cannon Fodder
    http://www.allgame.com/ga­me.php?id=739
  81. Cannon Fodder [European]
    http://www.allgame.com/ga­me.php?id=15717
  82. Retrospective: Cannon Fodder
    http://www.rockpapershotgun­.com/2007/11/11/retrospec­tive-cannon-fodder/
  83. Cannon Fodder
    http://en.wikipedia.org/wi­ki/Cannon_Fodder_(video_ga­me)
  84. BC Racers
    http://en.wikipedia.org/wi­ki/BC_Racers
  85. Desert Strike Advance
    http://www.ign.com/articles/2002/06/03/de­sert-strike-advance
  86. Three Strikes And You're Out
    http://www.eurogamer.net/ar­ticles/three-strikes-and-youre-out-article
  87. Head 2 Head: Desert Strike – SNES vs MegaDrive
    http://www.retrogamescollec­tor.com/head-2-head-desert-strike-snes-vs-megadrive/
  88. Desert Strike: Return to the Gulf
    http://en.wikipedia.org/wi­ki/Desert_Strike:_Return_to_the_Gulf
  89. The Chaos Engine (Soldiers of Fortune USA)
    http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine.htm
  90. The Chaos Engine series
    http://www.mobygames.com/game-group/chaos-engine-series
  91. The Chaos Engine
    http://en.wikipedia.org/wi­ki/Chaos_Engine
  92. The Chaos Engine 2
    http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine2.htm
  93. The Chaos Engine series
    http://www.mobygames.com/game-group/chaos-engine-series
  94. Moby Games: Speedball series
    http://www.mobygames.com/game-group/speedball-series
  95. Bitmap Brothers: Speedball (original)
    http://www.bitmap-brothers.co.uk/our-games/past/speedball.htm
  96. Bitmap Brothers: Speedball 2: Brutal Deluxe
    http://www.bitmap-brothers.co.uk/our-games/past/speedball2.htm
  97. Wikipedia: Speedball (video game)
    http://en.wikipedia.org/wi­ki/Speedball_(video_game)
  98. Golden Axe
    http://strategywiki.org/wi­ki/Golden_Axe
  99. Golden Axe (series)
    http://en.wikipedia.org/wi­ki/Golden_Axe_(series)
  100. Golden Axe II
    http://www.gamespot.com/golden-axe-ii/platform/genesis/
  101. Golden Axe II
    http://strategywiki.org/wi­ki/Golden_Axe_II
  102. Golden Axe III
    http://strategywiki.org/wi­ki/Golden_Axe_III
  103. Game Freaks 365: Sonic the Hedgehog 2
    http://gamefreaks365.com/re­view.php?artid=1631
  104. Sonic The Hedgehog 2 (GENESIS)
    http://web.archive.org/web/20070831062914/htt­p://sonic.neoseeker.com/so­nic_the_hedgehog2/GENESIS/pa­ges/release_dates_backgrou­nd3/
  105. Neoseeker: Sonic the Hedgehog 2 (16-bit)
    http://www.neoseeker.com/Ga­mes/Products/GENESIS/sonic_the_hed­gehog2/
  106. Wikipedia: Sonic the Hedgehog 2 (16-bit)
    http://en.wikipedia.org/wi­ki/Sonic_the_Hedgehog2_(16-bit)
  107. Gamespot: Disney's Aladdin
    http://www.gamespot.com/disneys-aladdin-in-nasiras-revenge/platform/ps/
  108. Moby Games: Disney's Aladdin
    http://www.mobygames.com/game/disneys-aladdin
  109. Internet Movie Database: Aladdin (I) (Video Game 1993)
    http://www.imdb.com/title/tt0204798/
  110. Wikipedia: Disney's Aladdin (video game)
    http://en.wikipedia.org/wi­ki/Disney's_Aladdin_(vide­o_game)
  111. Eric Chahi
    http://en.wikipedia.org/wi­ki/Eric_Chahi
  112. Wikipedia: Another World (video game)
    http://en.wikipedia.org/wi­ki/Another_World_(video_ga­me)
  113. SN76489 sound chip details
    http://web.inter.nl.net/u­sers/J.Kortink/home/articles/sn76489/
  114. SN76464 datasheet
    http://www.ic-on-line.cn/view_online.php?id=1106623&fi­le=0054%5Csn76494_409323.pdf
  115. Texas Instruments SN76489 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Texas_Instruments_SN76489
  116. SN76489
    http://www.smspower.org/De­velopment/SN76489?sid=ae16503f2fb18070f3f40f2af­56807f1
  117. YM2413 FM Operator Type-LL (OPLL) Application Manual
    http://www.smspower.org/ma­xim/Documents/YM2413Appli­cationManual?sid=28c370e1fcac51d57­74319979bf96f4c
  118. Programming the Sega MegaDrive
    http://darkdust.net/writin­gs/megadrive
  119. MegaDrive / SegaGenesis docs
    http://www.genny4ever.net/in­dex.php?page=docs
  120. IGN: Top 25 Consoles
    http://www.ign.com/top-25-consoles/13.html
  121. Sega Mega Drive
    http://sega.jp/archive/segahard/md/
  122. Sega Archives
    http://sega.jp/archive/segahard/
  123. Sega Genesis
    http://www.dmoz.org/Games/Vi­deo_Games/Console_Platfor­ms/Sega/Genesis/
  124. The Retro Gen Plays Genesis Games
    http://uk.gamespy.com/arti­cles/998/998637p1.html
  125. The Sega Mega Drive/Genesis
    http://www.captainwilliam­s.co.uk/sega/megadrive/me­gadrive.php
  126. Sega Game Gear 101: A Beginner's Guide
    http://www.racketboy.com/re­tro/sega/gamegear/sega-game-gear-101-a-beginners-guide
  127. SEGA GameGear | Marc's Realm
    http://darkdust.net/retro­gaming/gamegear
  128. Sega Master System Hardware
    http://www.smspower.org/De­velopment/Documents
  129. Sega Master System Museum
    http://alexkidd.com/
  130. Jadeite's Sega Master System Museum
    http://rp_gamer.tripod.com/SMS/1.html
  131. Sega Master System (Wikipedia)
    http://en.wikipedia.org/wi­ki/Sega_Master_System
  132. Sega Card (Wikipedia)
    http://en.wikipedia.org/wi­ki/Sega_Card
  133. Sega Master System VDP documentation
    http://www.smspower.org/u­ploads/Development/msvdp-20021112.txt?sid=28c370e1fcac51d­5774319979bf96f4c
  134. bee – The Multi-Console Emulator
    http://www.thebeehive.ws/
  135. TurboGrafx-16 TurboExpress
    http://www.allgame.com/plat­form.php?id=17673
  136. HuC6280 CPU
    http://shu.emuunlim.com/dow­nload/pcedocs/pce_cpu.html
  137. Hudson Soft HuC6280 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Hudson_Soft_HuC6280
  138. TurboGrafx-16 (Wikipedia)
    http://en.wikipedia.org/wi­ki/TurboGrafx-16
  139. MagicEngine – TurboGrafx-16 emulator
    http://www.magicengine.com/
  140. Motorola 68000 CPU
    http://en.wikipedia.org/wiki/68000
  141. Motorola 68008
    http://en.wikipedia.org/wi­ki/Motorola_68008
  142. Motorola 68020
    http://en.wikipedia.org/wi­ki/Motorola_68020
  143. Motorola 68030
    http://en.wikipedia.org/wi­ki/Motorola_68030

Byl pro vás článek přínosný?