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čítania
Naprí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 Pascalu
Hry       : 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 .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~