Emulátor MSX verze 1.C
Základní informace o páskové verzi
Princip
Emulátor MSX verze 1.C emuluje systém MSX verze 1.0.
Emulátor je program ve strojovém kódu, který se skládá ze dvou
základních částí: zavaděče a těla. Zavaděč slouží pouze k tomu,
aby nahrál emulátor do paměti počítače a odstartoval jej. Před
vlastním nahráním zavaděč prohlédne paměť a zkoumá, jestli se
v ní již emulátor nebo jeho část nenachází a podle toho dohraje
z emulátoru jen tolik, kolik musí.
Po hardwarové stránce jsou si systémy M5 a MSX vcelku
podobné, oba mají stejný mikroprocesor a stejný typ
videoprocesoru. Zvukové čipy se od sebe svými schopnostmi
nepatrně liší. Naprosto rozdílné je pak zapojení klávesnice,
joysticků, tiskárny a magnetofonu. Emulátor funguje tak, že
v paměti počítače M5 běží program, který není nic jiného než
upravená ROM počítače MSX. Veškeré změny v této ROM se týkají
pouze odkazů na hardware. Jsou přečíslovány porty
videoprocesoru, je emulován zvukový čip, zcela je přepracován
přerušovací systém a s ním i obsluha klávesnice. Rutiny se tedy
navenek tváří stejně jako v počítači MSX, ale uvnitř pracují
jinak. Program z této ROM se z pochopitelných důvodů v počítači
SORD m.5 nachází v paměti RAM, jejíž velikost je v tomto případě
64KB.
Hardware
Nezbytně nutnou podmínkou pro provoz emulátoru MSX je
počítač SORD M5 s pamětí 64KB RAM a minimálně 8 KB ROM ( MONITOR
ROM ), přičemž paměti ROM/RAM musí jít programově přepínat. Dále
je dobré mít elektrický reset ( dále jen @RESET ) systému, což
je přes tlačítko a odpor uzemněný signál RESET mikroprocesoru.
Přepínání ROM/RAM by se mělo při @RESETu přepnout do režimu ROM,
nebo by měla být možnost ROM připnout. Emulátor umí pracovat
s paměťovými moduly 64KBI, 64KBF, 64KRD a 64KRX ( přepínání
instrukcí OUT na port 6CH, 30H a 7FH ). Program lze snadno
upravit pro jiný modul.
Software - programová slučitelnost
Pod emulátorem pracuje většina programů, které se důsledně
odkazují na BIOS-MSX a nestránkují paměť. Přímá slučitelnost
tedy není 100 procentní a proto nelze využívat pod emulátorem
všechny programy, které byly pro MSX napsány. K dispozici je
však již něco okolo 200 her a programů, které se dají pod
emulátorem bez větších problémů provozovat. Některé programy
a většina her musely být pro provoz v emulátoru upraveny
( úpravy se provádějí podmíněně, viz níže ), jiné chodily bez
úprav hned napoprvé. Je přirozená snaha, aby s narůstajícím
časem programů pro emulátor MSX přibývalo.
Běží-li emulátor, máme k dispozici jeho interpretr basiku,
který pracuje shodně s originálem MSX ( až na jednu výjimku,
příkaz MOTOR bez parametru nemění stav motoru na opačný, nýbrž
motor pouze vypne ) a MSX-BIOS. Jsme ochuzeni o možnost používat
rozšiřující sloty ( takto lze paměť MSXu rozšířit až na 1024 KB,
tedy 1 MB dostupné paměti ).
Pokud chcete tvořit v MSXu své vlastní programy, opatřete si
potřebnou literaturu ( THE MSX RED BOOK, MSX-BASIC LANGUAGE
SPECIFICATION ).
Verze emulátorů
Existuje emulátor MSX verze 1.A, 1.B a 1.C. Pokud se již
někomu z vás do ruky dostal emulátor verze 1.B vězte, že již
existují tři varianty systémových programů MSX_1B/IL.CM
a msx_1b/il.CM. Tyto varianty mají sice shodná jména, ale jsou
vzájemně nezaměnitelné. To znamená, že je nelze vzájemně
kombinovat a mít tedy například tělo nové verze a zavaděč staré
verze. Tyto tři varianty verze 1.B od sebe lze rozeznat poměrně
snadno:
původní verze:
MSX_1B/IL.CM FA00 FFFF FA00
msx_1b/il.CM 8000 FFFF 0000
druhá varianta:
MSX_1B/IL.CM FA00 FFFF FA00
msx_1b/il.CM 0000 7FFF 002E
třetí varianta:
MSX_1B/IL.CM F9E0 FFFF F9E0
msx_1b/il.CM 0000 7FFF 002E
Původní verze má po nahrání na funkčních klávesách basické
příkazy LIST, GOTO, COLOR a tak dále. Druhá verze má místo nich
DEFUSR=&H, ?USR(0), BLOAD "CAS:",R a tak dále. A poslední verze
má trošku delší zaváděcí program a na F1 DEFUSR0. Pro původní
verzi neexistuje program pro zavádění her, pro druhou již
existuje pod názvem MSX-m5/IL.CM a pro třetí pod názvem
MSX_M5/IL.CM. Programy tvoří v případě první varianty
nedělitelnou dvojici a ve zbývajících případech nedělitelné
trojice.
Provozování emulátoru verze 1.B
Pro provozování emulátoru verze 1.A platí přibližně stejná
pravidla a provozování verze 1.C je popsáno níže.
Po zapnutí počítače SORD m.5 nebo po jeho elektrickém resetu
by měl tento být v režimu, kdy je možné zadávat nějaké příkazy
z klávesnice ( tedy aby běžel interpretr některého z jazyků
BASIC ), nebo by měl být v rutině TAPE ( to je vždy v případě,
že nenalezne BASIC ani jiný kartridž ). Pro jednoduchost
předpokládejme, že sestava počítače sestává z BASIKU-I a modulu
64KBI. Po zapnutí zadáme příkaz TAPE a nahrajeme z magnetofonu
zaváděcí program MSX-1B/IL.CM, který vytiskne na obrazovku 4
řady, tedy 128 prázdných koleček a nápis MSX. Poté začne
nahrávat vlastní tělo emulátoru ( soubor msx_1b/il.CM ). Po
nahrání každého bloku přetiskne prázdné kolečko plným kolečkem.
Takto nahrává tak dlouho, dokud nevyplní všechna kolečka. Poté
zaváděcí program odstartuje emulátor systému MSX. Na modré
obrazovce se objeví bílý nápis oznamující, že běží systém MSX
verze 1.B a že je to dílo firmy Microsoft. Pak se obrazovka
smaže a do její horní části je vytištěno přibližně totéž, s tím
že se navíc dozvíme, že jsme v basiku a že máme k dispozici asi
28 kilobajtů volné paměti. Když nyní stiskneme @RESET, měl by
naskočit BASIC-I ( nebo jiný či TAPE ). Pokud nyní zadáme příkaz
TAPE a nahrajeme opět MSX_1B/IL.CM, měla by se dohrávat jen část
emulátoru. V případě 64KBI jsou to 4 kolečka. V případe, že po
@RESETu jde SORD do TAPE jsou to také 4 kolečka ( u verze 1.C
jsou to jen 3 kolečka ), naskočí-li BASIC-F je o 8 koleček.
Z tohoto vyplývá, že pokud už někdy před nahráváním emulátoru
již tento v paměti byl a nebyl-li mezi tím zcela přepsán chodem
nějakého programu, vytiskne zaváděcí program jen tolik koleček,
kolik jich odpovídá poškozené části emulátoru. Jedno kolečko
představuje 256 bajtů. Na pásce je emulátor MSXu v souboru
msx_1b/il.CM nahrán "pozpátku", protože se většinou poškodí jen
konec emulátoru.
Zde jsou uvedeny případné rozdíly v chování emulátoru oproti
originálu MSX.
Podstatné rozdíly jsou v klávesnici. Neexistující klávesy jsou
nahrazeny kombinací stisku několika jiných kláves, význam
některých kláves byl zcela změněn.
Speciální klávesy
-----------------
F1 až F5 / CTRL/1 až CTRL/5
F6 až F10 / CTRL/levý SHIFT/1 až CTRL/levý SHIFT/5
GRAPH / CTRL/6 - návrat do LETTER módu stiskem RESET
CODE / CTRL/7 - návrat do LETTER módu stiskem RESET
INS / CTRL/R nebo CTRL/P
HOME / CTRL/K
BACKSPACE / CTRL/H
DEL / CTRL/DEL
BREAK / CTRL/RESET
STOP / SHIFT/RESET
CAPSLOCK / pravý SHIFT
ESC / FUNC
Joystick 0
----------
směrové šipky / B N M ,
SPACE / Z
SEL / X
Některé vlastnosti MSX Basiku
-----------------------------
Čísla a proměnné se zadávají normálně nebo s uvedením #
(REAL double-precision), nebo číslo! (REAL single-precision),
nebo číslo% (INTEGER), nebo &Hčíslo (HEX), nebo &Očíslo (OCTAL),
nebo &Bčíslo (BINAR), nebo řetězec$ (STRING).
Rozsah řádku se zadává ( například ):
LIST 20 zobrazí jen řádku 20
LIST 20-30 ( od-do )
LIST 20- ( od-do konce )
LIST -20 ( od začátku-do )
LIST . ( aktuální řádka )
Nahrávání programů
------------------
Tato stať se věnuje problematice práce s magnetofonem.
MSX používá na magnetofonu tři typy formátu záznamu
(CHARACTER, BINARY, ASCII) a pro každý má speciální příkaz.
Jméno souboru má maximálně 6 znaků, je-li znaků méně, doplňují
se mezery. MSX nezná "?" konvenci a tudíž se jméno musí
vypisovat celé. Ve specifikaci souboru lze uvést jméno zařízení
CAS: - magnetofon. Nahráváme-li určitý formát, jsou ignorovány
všechny ostatní nalezené formáty s tím, že není vypsáno nic,
tedy ani Skip: jméno. Skip: jméno se vypisuje pouze tehdy,
je-li nalezen soubor správného formátu, ale nesouhlasí jeho
jméno. V případě souhlasu se vypíše Found: jméno. MSX neumí
nahrát obrazovku ( VSAVE, OLD ) a neumí porovnávat ( VERIFY )
binární soubory. MSX rozeznává pouze dvě záznamové rychlosti,
rychlost lze nastavit příkazem SCREEN ,,,rychlost, přičemž
rychlost se zadává jako 1 ( 1200 Bd ), nebo 2 ( 2400 Bd ). Takto
nastavenou rychlostí se pak nahrávají všechny formáty.
Poznámka: Find a Skip se vypisuje pouze tehdy, byl-li příkaz
odeslán v přímém módu. Je-li příkaz v basickém programu, nic se
nevypisuje. Tato zvláštnost je v MSXu proto, aby text případně
nezasahoval do grafické obrazovky, protože MSX nemá dvě
obrazovky jako M5.
BASIC - tokenovaná forma
------------------------
CLOAD "jméno"
Nahraje basický program z magnetofonu. Ve jménu nelze uvést
jméno zařízení. Jméno lze zcela vynechat.
CLOAD? "jméno"
Porovná basický program na pásce s programem v paměti. Ve jménu
nelze uvést jméno zařízení. Jméno lze zcela vynechat.
CSAVE "jméno souboru",rychlost
Nahraje basický program na magnetofon. Ve jménu nelze uvést
jméno zařízení. Rychlost lze vynechat nebo zadat ( 1, 2 ). Takto
nastavenou rychlostí se budou nahrávat i ostatní formáty ( BIN,
ASCII ).
Strojový kód
------------
BLOAD "jméno",R,posun
Nahraje program ve strojovém kódu nebo binární data
z magnetofonu. Ve jménu lze uvést jméno zařízení. Jméno musí být
uvedeno vždy, vynechat jej lze pouze tehdy, je-li uvedeno jméno
zařízení. "R" lze vynechat, je-li uvedeno, program bude po
nahrání spuštěn od startovací adresy. Posun znamená posunutí
počáteční adresy o "posun", program se tedy nahraje na
"začátek"+"posun". Posun lze vynechat.
BSAVE "jméno",začátek,konec,start
Nahraje program ve strojovém kódu nebo binární data na
magnetofon. Ve jménu lze uvést jméno zařízení. Začátek je adresa
prvního bajtu programu v paměti, konec je poslední bajt a start
je případná startovací adresa programu ve strojovém kódu.
Neuvedením "start" se za "start" dosadí "začátek".
ASCII FILE/DATA
---------------
RUN "jméno"
Nahraje basický program ve formátu ASCII z magnetofonu a spustí
ho. Ve jménu lze uvést jméno zařízení. Jméno musí být uvedeno
vždy, vynechat ho lze pouze tehdy, je-li uvedeno jméno
zařízení. Neuvedením jména se spustí basický program, který je
v paměti.
LOAD "jméno",R
Nahraje basický program ve formátu ASCII z magnetofonu a je-li
uveden parametr R, spustí ho. Ve jménu lze uvést jméno zařízení.
Jméno musí být uvedeno vždy, vynechat ho lze pouze tehdy,
je-li uvedeno jméno zařízení.
MERGE "jméno",R
Nahraje basický program ve formátu ASCII z magnetofonu a je-li
uveden parametr R, spustí ho. Ve jménu lze uvést jméno zařízení.
Jméno musí být uvedeno vždy, vynechat ho lze pouze tehdy,
je-li uvedeno jméno zařízení. Tento příkaz se od příkazu LOAD
liší tím, že nesmaže původní basický program, který je v paměti
a novým přepíše ze starého jen řádky se shodnými čísly.
OPEN "jméno" FOR INPUT AS #1
INPUT #1,proměnná,...
CLOSE #1
Otevře soubor z magnetofonu a načte z něho data. Ve jménu lze
uvést jméno zařízení. Jméno musí být uvedeno vždy, vynechat ho
lze pouze tehdy, je-li uvedeno jméno zařízení.
SAVE "jméno"
Nahraje basický program ve formátu ASCII na magnetofon. Ve jménu
lze uvést jméno zařízení.
OPEN "jméno" FOR OUTPUT AS #1
PRINT #1,vyraz;...
CLOSE #1
Otevře soubor z magnetofonu a zapíše do něj data. Ve jménu lze
uvést jméno zařízení.
Práce s magnetofonem není tak komfortní jako na počítači
SORD m.5 . Další nepříjemná věc je samotný MSX formát záznamu
na pásce, který je značně nespolehlivý a snadno se může stát, že
se soubor načte s chybami, aniž by tyto chyby byly objeveny. Pro
emulátor zatím neexistuje kopírovací program, takže manipulace
se soubory na pásce je značně nepohodlná.
Používání programu MSX_M5/IL
----------------------------
Z výše uvedených příčin vznikl speciální zaváděcí program
MSX_M5/IL.CM ( jeho starší verze MSX-m5/IL.CM pracuje v podstatě
shodně ), který některé nedostatky částečně odstraňuje. Program
umožňuje zavést do emulátoru MSX a spustit v něm programy MSX
uložené na pásce ve formátu SORD m.5. Týká se to pouze
jednodílných programů ve strojovém kódu, které jsou v paměti
umístěny od adresy 8003H do přibližně 0F000H. Zbytek paměti je
buď obsazen systémem MSX ( 0000H-7FFFH ), nebo MSX pamět nějak
mění ( 8000H-8002H nuluje, 0F000H-0FFFFH využívá pro zásobník
a systémové proměnné ).
Po nahrání a odstartování systému MSX verze 1.B stiskneme
@RESET a příkazem TAPE nahrajeme MSX_M5/IL.CM. Ten začne
nahrávat z magnetofonu první soubor typu .CM, který nalezne.
Pokud narazí na jiný soubor než .CM vypíše Skip "jméno",
v opačném případě vypíše Find "jméno" a namaluje tolik
čtverečků, kolik odpovídá délce souboru. Při nahrávání čtverečky
postupně vyplňuje, podobně, jako to dělá MSX_1B/IL. Po nahrání
celého souboru napíše na obrazovku, jak lze program odstartovat
a čeká na stisk klávesy <SHIFT> nebo <RESET> (neplést
s @RESET). Po stisku <SHIFT> nahrává další program, po stisku
<RESET> odstartuje emulátor. Program, který nahrál, zůstává po
odstartování emulátoru v paměti a proto jej lze z MSXu
odstartovat stiskem kláves v pořadí CTRL/1 a CTRL/2. Toto platí
pro případ, že je z emulátoru, který se po @RESETu nachází
v paměti poškozen maximálně 1 KB ( 4 kolečka ). Pokud je MSX
poškozen více, MSX_M5/IL to pozná a vyžádá si nejprve dohrání
poškozené části ( program mezi tím zůstává stále v paměti ).
Nahrajeme tedy MSX_1B/IL.CM, ten dohraje poškozenou část
emulátoru a pak emulátor odstartuje. Program nahraný pomocí
MSX_M5/IL.CM lze potom odstartovat stiskem CTRL/1, zde se musí
dopsat startovací adresa a následným stiskem CTRL/2.
Pokud tedy funguje vše tak, jak má, a máte-li magnetofon
s dálkovým ovládáním, v podstatě tedy děláte jen tyto úkony:
@RESET , TAPE<RETURN> , <RESET> , <CTRL/1><CTRL/2>
Z výše uvedených důvodů je dobré mít na pásce za sebou
systém MSX a hry v tomto pořadí:
MSX_1B/IL.CM
msx_1b/il.CM
MSX_M5/IL.CM
@hra MSX.CM
MSX_M5/IL.CM
@hra MSX.CM
MSX_M5/IL.CM
@hra MSX.CM
...atd....
Proč je psána "@hra MSX.CM" a ne jen "hra MSX.CM"? Je to
proto, že první znak ve jménu má svůj význam. Pokud je na prvním
místě ve jménu souboru "@" ( platí to hlavně pro hry ), znamená
to, že lze program regulérně ukončit stiskem obou kláves
<SHIFT>. Stiskem těchto kláves se provádění hry ukončí
a restartuje se MSX. Pak se počítač může resetnout (@RESET)
a nahrát další hra (pomocí programu MSX_M5/IL.CM). Pokud je na
prvním místě ve jménu "#", znamená to, že hru nelze zakončit
jinak než @RESETem. Emulátor by při tom neměl být nijak
poškozen. Při "$" ve jménu, hra poškodí maximálně 16KB emulátoru
a pochopitelně jí nelze ukončit (hra přepíše část MSX-BASIKu,
takže MSX už nelze beztrestně restartovat). Po resetu počítače
se dohrávají maximálně dva řádky koleček. Při "!" na prvním
místě v jménu, hra poškozuje víc než 16KB (nahrává se zpravidla
znova celý emulátor) a také nejde ukončit jinak než @RESETem.
Pokud je ve jménu na posledním znaku písmeno "e", znamená to, že
je v programu někde nějaká chyba (chodí, ale ne úplně správně,
eventuálně je třeba chyba v grafice).
Ovládání her
------------
Obecně platí, že se hry ovládají klávesami ZBNM a ","
a druhým joystickem. Některé čekají v úvodním menu na stisk
některé FUNC klávesy (pak se musí stisknout CTRL/číslo). Pokud
se na obrazovce objeví "PUSH SPACE KEY" nebo podobná hláška, má
se stisknout ATTACK na JOY nebo klávesa <Z>. Pokud hra začíná
hlášením: Pro SORD m.5 upravil... atd, je v 99% případu ve hře
zabudována nesmrtelnost. Stiskne-li se během hry <RESET>,
nesmrtelnost se bud zapne, nebo je-li zaplá, tak vypne. Takto
lze projít některé obzvláště neprůchodné úseky. Některé hry mají
ještě speciální funkce (PAUSING, REST, ...), eventuálně
používají dvě akční tlačítka. Pak je jako druhé akční tlačítko
použita klávesa <X> (nebo i jiná klávesa) a pro speciální funkce
některá z kláves v řadě <Q> až <I> nebo <A> až <K>.
Většina dobrých her, které pod emulátorem fungují, je
jednodílný strojový kód, a proto lze mít většinu MSX softwaru
uloženou na pásce ve formátu SORD m.5 .
Některé velmi dobré hry jsou ale z více částí a je tedy
nutné je mít na pásce ve formátu MSX. Při jejich kopírování je
zase potřeba mít po ruce tabulku s adresami, nehledě k tomu, že
ruční kopírování je obzvlášť nepříjemné.
Provozování emulátoru verze 1.C
-------------------------------
Obecně platí pro verzi 1.C přibližně stejná pravidla jako
pro verze 1.A a 1.B. Verze 1.C doznala největších změn
v operacích s magnetofonem.
Ve verzi 1.C byl opuštěn původní MSX formát záznamu souboru
na magnetofon a byl nahrazen formátem SORD m.5, čímž se značně
usnadnila manipulace se soubory. S tím byla částečně pozměněna
i syntaxe některých příkazů. Jméno souboru se i nadále zadává
jako 6ti písmenné, ale interpretr jej doplní na devět znaků
o příslušnou příponu. Pro basic je to "jméno.MX", pro strojový
kód "jméno.BN" a pro formát ASCII "jméno.AS". Attribut je 01 pro
spojitý a 04 pro nespojitý soubor. Při načítání se kontroluje
attribut a ve jménu souboru tečka a první znak přípony.
Změny s tím spojené:
-zařízení "CAS:" bylo nahrazeno zařízením "CMT:".
-Skip a Found se vypisovalo pouze tehdy, když byla nalezena
hlavička správného typu souboru. Nyní vypisuje Skip i když je
nalezena hlavička jiného typu souboru, čímž se usnadňuje
hledání na pásce.
-příkaz CLOAD/CLOAD?/CSAVE pracoval pouze s magnetofonem.
Uvedení jména jiného zařízení mělo za následek pouze to, ze se
jméno zpracovalo i s tímto názvem, například CSAVE "CAS:POKUS"
zaznamenalo na pásek soubor se jménem "CAS:PO". Nyní se při
vynechání jména zařízení a nebo při uvedení jména zařízení
"CMT:" pracuje se zařízením "CMT:", jehož jméno je ze
specifikace souboru odseparováno. Při uvedení jiného jména
(musí mít 3 znaky) se skočí na háček HDEVN na adrese 0FEC1H
(tzv. hook), kde je RET a po návratu se jde na chybu "Bad
file name". To umožňuje programátorům napsat program i pro jiná
zařízení a "pověšením" se na háček je aktivizovat.
-příkaz CLOAD? jde při neshodě dat na "Verify error". Protože
MONITOR ROM takovouto chybu negeneruje, jde se v emulátoru na
"Device I/O error".
-záznamová rychlost se v příkazech CSAVE a SCREEN zadávala pouze
číslem 1 nebo 2. Nyní se zadává jako v m.5 číslem 0 až 255.
Pokud se zadá hodnota menší než &H14, je to stejné, jako kdyby
se zadala hodnota &H14 (to je kvůli tomu, že v některých
basických programech může být nastavena rychlost na 1 nebo 2,
a to by v případě SORDa bylo nepoužitelné. Proto je v těchto
případech dosazena nejvyšší rozumná rychlost, tj. 20). Rychlost
lze samozřejmě zadat i příkazem POKE &H7019,číslo.
Aby bylo možné programy převést z formátu záznamu MSX do
formátu SORD m.5, vzniklo několik pomůcek. Nejstarší se jmenuje
"MSX->SORD.CM" a převádí binární soubory MSX "jméno" do formy
"jméno.BIN.CM". Tento program lze nahrát do SORDa aniž by bylo
nutné mít natažený systém MSX.
13. září 1990 byl dokončen program CBLOAD.BN, který je určen
přímo pro emulátor systému MSX verze 1.C a v jiném systému
nefunguje. Program se nahrává příkazem BLOAD "CBLOAD",R nebo jen
BLOAD"CMT:",R
Díky tomuto programu lze nahrávat přímo do emulátoru verze
1.C basické programy ve formátu MSX v tokenované formě ( CSAVEd
basic ) a programy ve strojovém kódu. Po nahrání programu CBLOAD
příkaz CLOAD rozeznává dvě zařízení: původní "CMT:" a nově
"CAS:". Uvedete-li za příkazem CLOAD jméno zařízení "CAS:",
načte se první nalezený basický program ve formátu MSX.
Uvedete-li i jméno souboru, je toto ignorováno. Protože příkaz
BLOAD hledá neznámé zařízení v rozšiřujícím slotu (což
v emulátoru vždy vede k tomu, že nic nenajde), nešlo tedy
k němu přidat nové zařízení "CAS:" jako v případě CLOAD. Proto
se programy ve strojovém kódu ve formátu MSX nahrávají příkazem
FILES. Příkaz FILES nahraje první nalezený program ve strojovém
kódu ve formátu MSX. Parametry příkazu FILES jsou shodná
s příkazem BLOAD, s tím, že je lze vynechat a jméno se nezadává:
FILES,r,posun
Příkaz LFILES pracuje shodně s FILES. V originálu MSX slouží
tyto příkazy k vypsání adresáře disku na tiskárnu a na
obrazovku. Protože v emulátoru jsme o tuto možnost ochuzeni, byl
příkaz využít jinak.
Program CBLOAD se nahrává do nevyužitých bafrů v systémových
proměnných, takže nikde v paměti nepřekáží a máme ho k dispozici
až do restartu systému MSX.
Na začátku roku 1991 vznikly programy CSAVE.BN a BSAVE.BN.
Oba umožňují opačnou komunikaci než CBLOAD.BN, tj. převádějí
formát SORD na formát MSX. Protože se jedná pouze o prozatímní
verze programů, odpovídá tomu i jejich ovládání. Dále pak platí,
že v paměti smí být jen jeden z 3 výše uvedených programů.
CSAVE.BN a BSAVE.BN se nahrávají oba příkazem BLOAD"CMT:",R. Po
nahrání CSAVE.BN se do MSXu 1.C nahraje basický program, který
chceme převést do formátu MSX. Pak se na magnetofonu dá RECORD
a odešle se příkaz FILES. Na pásek se zaznamená soubor se
stejným jménem. BSAVE.BN funguje stejně. Po jeho nahrání se
nahraje program ( příkazem BLOAD"CMT: nebo BLOAD"jméno ) a pak
se zadá FILES. Na pásek se zapíše soubor stejného jména se
stejnými adresami.
Něco málo o úpravách MSX her pro SORD m.5
Změny MSX her se provádějí podmíněně. Znamená to, že po
startu hry se otestuje typ počítače a pak se buď nic neprovede
a hra se rovnou spustí, nebo se příslušně změní a pak teprve
spustí. Na adrese 0006H má BIOS-MSX číslo datového portu
videoprocesoru. Originál MSX tam má číslo 98H, zatím co
v emulátoru je číslo 10H. Z tohoto se vychází při testu
počítače. Co všechno se má měnit a jakým způsobem, je nejlépe
vidět při disassemblaci hry COMPUTER BILLIARDS firmy KONAMI, ve
které jsem důsledně podmíněně prováděl úpravy obrazu, zvuku,
klávesnice a joysticků.
Poděkování
Původní emulátor MSX pro počítač SORD m.5 vznikl ( dovedu si
představit kolik to dalo úmorné práce ) v brněnském SORD klubu.
Tímto bych chtěl poděkovat všem lidem, kteří na emulátoru ne-
únavně pracovali a díky kterým se počet programů, které lze nyní
na SORDíkovi spouštět značně rozrostl.
(C) 1990, 1991 ROS Software ( součást teamu LZR Soft )
Datum poslední editace: není známo
============== Napsal Roman Štec z teamu LZR Soft ==============