Bratislava ________________________ 10.06.'89
__________________________________________
| |
| ZXS - Softwarový emulátor ZX SPECTRA |
| |
| na počítači SORD m5 |
|__________________________________________| Emulátor ZXS nahrádza hardwarové prostriedky počítača SINCLAIR
ZX SPECTRUM ( obvod ULA , klávesnica , zvukový výstup cez
piezoelektrický generátor atď . ) programovým spôsobom .
Umožňuje predovšetkým bezchybnú prácu v jazyku BASIC . Ak
požadujeme spoluprácu s programami v strojovom kóde , týkajú sa
nás niektoré čiastočné obmedzenia :
1. Musí byť zachovaný mód prerušenia IM1 .
- ako neskôr uvidíme je to jediné obmedzenie ktoré bráni
úprave programov pre systém SORD + ZXS emulátor .2. Prerušenie musí byť buď povolené ( táto úprava bola nutná v
programe MRS ) , alebo musí byť zabezpečené pravidelné volanie
rutiny DSPRFS . Táto vykonáva refresh obrazovky a je umiestnená
na adrese 38C0H . Ďalej treba zabezpečiť zvýšenie ukazovateľa
času - počítadla 1/50 sec . Na to slúži podprogram INCTIME na
adrese 3874H . Takto je upravený HISOFT PASCAL , keď zhruba 50
krát za sekundu vykoná volanie uvedených podprogramov .
( CD,74,38,CD,C0,38 ).
3. Programy nesmú obchádzať štandardnú rutinu Basicu pre
čítanie znaku z klávesnice . Ak tak robia a čítajú priamo z
portu 0FEH ( kde je u ZX SPECTRA klávenica pripojená ) treba
ich upraviť . Tu sú dve možnosti :
a) Ak čítanie prebieha inštrukciou IN A , (0FEH) - po
preložení do strojového kódu DBFE - upraví túto inštrukciu
emulátor automaticky sám . Dochádza k tomu pri nahrávaní
programu v strojovom kóde ( BYTES ) z magnetofónu . Výsledkom je
že kláesám SPECTRA sa priradia klávesy SORDU . Takéto priame
čítanie z portu používajú z dôvodu rýchlosti väčšinou hry .
b) Niektoré systémové programy si vytvárajú vlastnú obsluhu
klávesnice . Vtedy používajú čítanie z portu 0FEH pomocou
registra "C" . Takéto programy je treba v tejto časti ručne
prerobiť a klávesnicu prekódovať . Takto je upravený program MRS
na ktorom sa možno poučiť ako postupovať pri úpravách . Program
MRS predstavuje integrovanú kombináciu asembleru disasebleru a
debuggeru . Je preto sám dobrým nástrojom na úpravu iných
programov .
4. Programy nesmú prepisovať oblasť pôvodnej ROM SPECTRA
(0000-3fffH) , kde je v pamäti RAM emulátor . Toto robia
väčšinou hry z dôvodu utajenia . Obmedzenie sa však týka len
veľmi malého množstva programov .
Počas činnosti emulátora je možné riadiť pomer medzi časom
venovaným počítaniu a časom venovaným zobrazovaniu na obrazovku
nastavením premennej CSW - na adrese 3B00H = 15104 dec. :
bit 7 6 5 4 3 2 1 0
| | | |
| | | |
0: farebný obraz --- ---------- tieto tri bity slúžia
1: čb. obraz na nastavenie rýchlosti
počítania pričom :
0 : minimum počítania a
maximum zobrazovania
.
.
.
7 : maximum počítaniaNapríklad pri použití čiernobieleho zobrazovania a maximálnej
rýchlosti počítania dáme na adresu CSW = 3B00H číslo 87H .
Z Basicu o uskutočníme príkazom POKE 15104,135 . Pri takomto
nastavení je spomalenie behu programu oproti ZX SPECTRU len 1% .
Nevýhodou tohto režimu je však to , že refresh obrazovky
prebieha len raz za asi dve sekundy , a preto nieje vhodný pre
programy vyžadujúce častú zmenu obrazu . Prirodzene rýchlosť
môžme meniť aj počas behu programu , čím môžeme urýchliť ich
beh .
Poznámka 1 : Vyradenie automatickej úpravy programov v strojovom
kóde môžeme urobiť z Basicu príkazom POKE 14936,201 .
Poznámka 2 : Pripojenie ľubovoľnej paralelnej alebo sériovej
tlačiarne môžeme uskutočniť niektorým zo spôsobov uvádzaných v
literatúre pre ZX SPECTRUM , je len potrebné zmeniť adresu
výstupného portu .
Poznámka 3 : V emulátore sú už opravené niektoré chyby pôvodného
SPECTRA napríklad NMI , Cursor left , Cursor right , Close# ,
Usr , - 65535 , Str$ a zaokrúhľovanie .
Príklad ovládania emulátora z klávesnice SORDU :
INT
___________________
| |
INT : | < | VERIFY :
| RUN |
Caps shift + | | Caps shift +
Symbol shift | *** | Symbol shift
(kurzor "E") | * * / (kurzor "E")
+ klavesa R | *** / Caps shift
| * * / podržať a
< : Symbol | * * / stlačiť R
shift |_____________/
+ R
VERIFY U niektorých tlačítok je nutné pre voľbu požadovaného príkazu
v extend móde (kurzor "E") podržať symbol shift . Presný popis
umiestnenia jednotlivých kľúčových slov na klávesnici SORDU
nájde užívateľ v prílohe tohto manuálu .
***************************************************************
Postup pri úpravách programov .
Priama zlučiteľnosť programov zo SPECTRA je len asi 8 až 10% .
Ak chceme využívať trocha viac z bohatého programového vybavenia
ZX SPECTRA je nutné tieto programy upraviť pre SORD + ZXS
emulator . Čo sa týka náročnosti úprav , najmenej práce dajú
systémové programy a najviac hry v strojovom kóde . Samostatný
problém tvoria kopírovacie programy , ktoré často využívajú
vlastné rutiny pre prácu s magnetofónom a po spustení sa
relokujú do video RAM alebo na najvyššie adresy pamäte .
Začneme voľbou vhodného monitorovacieho programu . Už spomínaný
program MRS nieje najvhodnejším nástrojom pre nás , lebo je
uložený v pamäti RAM od adresy D000H . Nemá taktiež ani príkazy
na nahratie upravovaného programu z magnetofónu . Ak sa
rozhodneme použiť ho , nahráme najprv program ktorý chceme
upraviť príkazom LOAD""CODE a potom vlastný systém MRS .
Výborným nástrojom pre naše účely je MON 2 firmy HUKATRONIC . Je
totiž umiestnený vo video RAM a teda nemôže prekážať programom
ktoré zaberajú celú užívateľskú oblasť pamäte . ( 41 kB )
Pri programoch v strojovom kóde s autoštartom zostáva asi
jediným riešením nahrať program pomocou programu SPECTRUM.BI do
Sordu a tu disasemblovať .
A teraz už k vlastnému spôsobu úpravy . Nahráme upravovaný
program , spustíme monitor , zvolíme funkciu word find a hľadáme
reťazec ED5E (IM2) . Na miesta na ktorých sa vyskytuje sa
pozrieme disasemblerom , ak je na tom mieste skutočne IM2 môžeme
sa s kľudným srdcom pustiť do úprav ďalšieho programu .
Ďalej vyhľadáme miesta na ktorých sa vyskytuje zákaz prerušenia
, podprogramy pre obsluhu klávesnice a magnetofónu .
Zmeny ktoré sa rozhodneme urobiť v programe je výhodné urobiť
príkazmi POKE z Basicu , prirodzene len ak to dovolí medzera
medzi Basicovským zavádzačom a programom v strojovom kóde .
Je výhodné zmeny vykonať s podmienkou ( IN 49<>255 ) , potom
bude program prenositeľný aj späť na ZX SPECTRUM .
Po úpravách je prevádzkovateľných asi 40 až 50 % programov .
Poznámka k využitiu portu 0FEH u ZX SPECTRA : Všetky tri
základné periférie sú u SPECTRA adresované jedinou adresou 0FEH.
Vstupom z klávesnice je horných osem bitov adresovej zbernice ,
výstupom je päť bitov , pripojovaných vstupnou inštrukciou
IN (C) , A na dolných päť bitov dátovej zbernice . Táto
inštrukcia posiela na dolných osem bitov dátovej zbernice obsah
registra C , pomocou ktorého je adresovaná periféria , na
horných osem bitov je posielaný obsah registra B . Tento je
využívaný k postupnému aktivovaniu liniek klávesnice . Rotáciou
tohto registra a periodickým čítaním klávesnice sa dá zistiť
ktoré tlačítko bolo stlačené . Magnetofón je pripojený pomocou
dvoch bitov , pri nahrávaní číta z bitu D6 dátovej zbernice a
pri ukladaní záznamu na magnetofón sú dáta (byty) posielané na
bit D3 . Bit D4 ovláda piezoelektrický zvukový generátor a na
bitoch D2 až D0 je aktuálna informácia o farbe borderu .
Ďalšie podrobnosti je možné získať z firemnej literatúry k
SPECTRU .(napr. Logan , O'Hara : The complete Spectrum Rom
disassembly ; alebo zo servisnej dokumentácie ).
Poznámka : Ak upravujeme program v Basicu a tento je utajený ,
tj. keď sa pokúsime vylistovať ho tak nič nevidíme , je možných
niekoľko postupov . Môžeme skúsiť riadok dostať do editačného
riadku pomocou EDIT , alebo zadáme INK 0 : PAPER 7 a keď ani to
nepomôže skúsime vypnúť farbu (POKE 15104,130) a program znova
nahrať z magnetofónu . V najjednoduchšom prípade však stačí
zadať len LIST č. riadku a program sa nám objaví v celej svojej
kráse . ( Z Basicovského loaderu sa dajú zistiť mnohé dôležité
údaje o strojovom kóde napr. štartovacia adresa a nastavenie
systémových premenných ). Bližšie infomácie o záznamových a load
rutinách SPECTRA sú v spravodaji mikrobáze č.2 / 1986 , str.26 .
----------------------------------------------------------------
Zoznam programov prevádzkovateľných v systéme ZXS .
Systémové : TAPECOPY - kopírovací
SORD MRS - monit/edit/asm
(c)COMPILER - kompilátor C
COMPILER - kompilátor Basic ('FP')
SUPER C - kompilátor Basic (integer)
TASWORD BK - texteditor
BETABASIC - lepší Basic
TASWORD/CL - texteditor
MCODER - kompilátor Basic
MONEDITAS - monitor/editor
MON 2 - monitor vram
PASCAL - kompilátor PascaluHry : THE TURK - šach
OiX - piškvorky
SCRABBLE - krížovka
MAZIACS - bludište
BUGABOO - žaba v priepasti
DIKTATOR - diktátor----------------------------------------------------------------
Pripravuje sa : HISOFT COLT
SINCLAIR LOGO
VU 3 D
OMNICOPY
MDRAW
VU FILE
ART STUDIO
TELADON
atď.ZXS emulátor rozširuje ZO ZVZARMU KUVY / Sord a cena vrátane
tohto manuálu je 150,-Kčs . Program je chránený proti
kopírovaniu bežnými kopírovacími programami , je nahratý
rýchlosťou &14 na prístroji SP210 . Autor spolu s distribútormi
žiadajú všetkých užívateľov , aby používali len originálne kópie
, inak nemožno zaručiť správnu funkciu programu . Prípadné
dotazy adresujte : KUVY / Sord-klub ,Nábrežie arm. gen. Ludvíka
Svobodu č. 56 , PSČ 81612 BRATISLAVA . Radi Vám odpovieme .
Na záver ešte pár slov o nutnom hardware : ZXS emulátor je
implementovaný na počítač SORD m5 a RAM 64kBi . Basic I musí byť
v dobe inštalácie systému nepripojený ! ( buď nieje modul vôbec
zasunutý v systémovom konektore , alebo bol odpojený niektorým z
boot programov ). Z dôvodu umiestnenia programu od adresy 0000H
je nutné aby bol monitor odpínateľný . Z dôvodu jednoduchosti
postačí úprava rovnaká ako pre systém MSX .(Zpravodaj č. 4/88).
Veríme , že aj vašou pomocou sa podarí upraviť ďalšie programy
a rozšíriť tak programové vybavenie počítača SORD m5 .
Veľa úspechov a zážitkov pri práci Vám praje autor manuálu
Henrich Raduška a samozrejme aj autor emulátora Jozef Bielik .
****************************************************************
Henrich Raduška ing. Jozef Bielik
Ondrejovova 28 Febr. víťazstva 95
BRATISLAVA BRATISLAVA
821 03 831 01
tel. 222 458 tel. 658 694
****************************************************************
P.S. Nakoľko sa autor programu už nevenuje počítaču SORD ,
prosíme užívateľov aby sa s bežnými dotazmi obracali na náš klub
a ušetrili si tak zbytočné výdavky na poštovné ...
KONIEC .
REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA
Špeciálna ponuka programov : PGRAFY - priestorové grafy
BF + EM 5 .
** (skoro "profi")...
** \
** \ INVENTURA - kombinácia text-
** __________\ editoru a kalku-
** ___________\ lačného programu
** __________ / 27 strán DIN A4 !
** / 64 znakov . tlač
/ aj na 128 znakov.
** /
** PODNIKATEĽ - kartoteka +
výpočet daní . TASWORD++ - nezbedný text-
procesor , ktorý
síce padá ale dá
sa reštaurovať .REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAMA-REKLAmA
No a to je už naozaj koniec .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~