tiskoviny/zx-rom/zx-rom
ZX ROM
ROM počítačů ZX Spectrum obsahuje základní programové vybavení počítačů a interpret a editor Sinclair BASICu. Programové vybavení v paměti ROM počítače ZX Spectrum bylo vyvinuto přímo z programového vybavení v paměti ROM počítače ZX80.
Počítače ZX Spectrum a ZX Spectrum+ obsahují 16 KiB paměti ROM. Pamě> ROM se nachází mezi adresami 0 a 16383 (šestnáctkově 0 a 3FFF) adresního prostoru procesoru Z80.
Obsah paměti ROM se skládá ze tří částí: vstupně/výstupní rutiny, interpret Sinclair BASICu a vyhodnocování výrazů. Tyto části lze dále rozdělit na:
- blok rozeskoků a tabulek,
- rutina pro obsluhu klávesnice,
- rutiny pro obsluhu reproduktoru,
- rutiny pro obsluhu magnetofonu,
- rutiny pro obsluhu obrazovky a tiskárny,
- rutina pro vyhodnocení správnosti syntaxe příkazu,
- vlastní interpret příkazů Sinclair BASICU,
- vyhodnocování výrazů,
- matematické rutiny,
- kalkulátor pro výpočty v plovoucí řádové čárce.
Na konci paměti ROM se nachází definice jednotlivých znaků znakové sady ZX Spectra.
Blok rozeskoků a tabulek
Na začátku paměti ROM se nachází blok rozeskoků, které je tak možné snadno vyvolat pomocí instrukcí rst procesoru Z80:
- 0 - studený start systému počítače,
- 8 - zobrazení chybových hlášení,
- 16 (šestnáctkově 10) - rutina pro tisk znaku skrz aktuálně otevřenou linku,
- 24 (šestnáctkově 18) - rutina pro získání znaku z linky,
- 32 (šestnáctkově 20) - rutina pro získání dalšího znaku z linky,
- 40 (šestnáctkově 28) - spuštění kalkulátoru,
- 48 (šestnáctkově 30) - rutina pro vytvoření volného místa v pracovním prostoru,
- 56 (šestnáctkově 38) - rutina pro obsluhu přerušení.
Od adresy 149 se nachází blok tabulek:
- 149 - tabulka klíčových slov Basicu,
- 517 - tabulky kódů kláves.
Rutiny pro obsluhu magnetofonu
Rutiny pro obsluhu magnetofonu zajišťují ukládání dat na magnetogonvou kazetu a jejich opětné nahrání z magnetofonové kazety do počítače. Nezajišťují ale vlastní ovládání magnetofonu. Hlavní rutiny jsou:
- 04C2 (šestnáctkově) - SA-BYTES - rutina pro uložení bloku dat na magnetofonovou kazetu,
- 053F (šestnáctkově) - SA/LD-RET - nastavení původní barvy okraje a otestování stisku klávesy BREAK po ukončení magnetofonových operací,
- 0556 (šestnáctkově) - LD-BYTES - nahrávací rutina pro načtení bloku z magnetofonové kazety,
- 05E3 (šestnáctkově) - LD-EDGE-2 - zajiš>uje, aby byla rutina LD-EDGE-1 spuštěna dvakrát,
- 05E7 (šestnáctkově) - LD-EDGE-1 - provádí vlastní hledání hran a měření délky impulsů mezi dvěma hranami v signálu z magnetofonové kazety (na začátku tato rutina čeká 358 strojových cyklů procesoru),
- 0605 (šestnáctkově) - SAVE-ETC - hlavní vstupní bod pro všechny čtyři příkazy pro operace s magnetofonem,
- 07CB (šestnáctkově) - VR-CONTRL
- 0802 (šestnáctkově) - LD-BLOCK
- 08B6 (šestnáctkově) - ME-CONTRL
- 092C (šestnáctkově) - ME-ENTER - vytvoření nové řádky a nové proměnné při příkazu MERGE,
- 0970 (šestnáctkově) - SA-CONTRL - uložení dvou datových bloků, hlavičky a vlastních dat, na magnefonovou kazetu (dvakrát spouští SA-BYTES),
- 09A1 (šestnáctkově) - tabulka textů, které se objevují při operacích s magnetofonem.
Další rutiny
Na adrese 6510 se nachází rutina, jejímž úkolem je najít, na které adrese paměti se nachází řádek Basicového programu s konkrétním číslem, na adrese 6629 (desítkově) se nachází rutina, která z programu v Basicu odebere blok několika řádků od zadané adresy po zadané číslo řádku. Na adrese 8933 (šestnáctkově 22E5) se nachází rutina zajišťující vykreslení jednoho bodu na obrazovku (obsluha příkazu PLOT).
Kalkulátor pro výpočty v plovoucí řádové čárce
Kalkulátor pro výpočty v plovoucí řádové čárce obsahuje podprogramy pro všechny matematické funkce. Goniometrické funkce, exponenciální funkce, logaritmus jsou počítány jako aproximace pomocí Čebyševových polynomů
Zdroj WIKI a WOS
Stránka byla už zobrazena: 349 ×
Aktualizováno: 11. 5. 2018, 17:21