ROM počítačů ZX Spectrum
From Wikipedia, the free encyclopedia
Remove ads
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.[1]
Obsah paměti ROM počítačů ZX Spectrum a ZX Spectrum+
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.[1]
Od adresy 14592 (šestnáctkově 3900) se nachází blok nevyužité paměti obsahující více než 256 hodnot 255. Prostor byl rezerován pro funkce, které se nakonec do ROM nedostaly, a někteří programátoři ho používali jako tabulku vektorů přerušení pro režim IM 2.[2] 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,[3]
- 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í zajišťují ukládání dat na magnetofonovou 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)[4],
- 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
- 1A1B (šestnáctkově) - OUT_NUM_1 - rutina pro výpis celého čísla na obrazovku.[5] Číslo, které se má vytisknout, je očekáváno v registru BC a rutina modifikuje registr A. Rutina byla původně určena pro tisk čísel řádků a tak neumí tisknout záporná čísla a čísla větší než 9999.[5] Např. při pokusu o tisk čísla
10000
je vytištěno:000
.
Na adrese 6510 (desítkově) 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.[6] Na adrese 8933 (šestnáctkově 22E5) se nachází rutina zajišťující vykreslení jednoho bodu na obrazovku (obsluha příkazu PLOT).[3]
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ů.[7]
Remove ads
Obsah paměti ROM počítačů ZX Spectrum 128K+ a ZX Spectrum +2
Počítače ZX Spectrum 128K+ a ZX Spectrum +2 obsahují 32 KiB paměti ROM. Paměť ROM se nachází mezi adresami 0 a 16383 (šestnáctkově 0 a 3FFF) adresního prostoru procesoru Z80. Celá paměť ROM je rozdělená na dvě stránky označované jako ROM 0 a ROM 1, z nichž pouze jedna může být připojena do adresního prostoru procesoru. K přepínání stránek paměti ROM slouží bit č. 4 portu 32765.[8]
Obsah jednotlivých stránek ROM je:
Remove ads
Obsah paměti ROM počítačů ZX Spectrum +2A a ZX Spectrum +3
Počítače ZX Spectrum +2A a ZX Spectrum +3 obsahují 64 KiB paměti ROM. Paměť ROM se nachází mezi adresami 0 a 16383 (šestnáctkově 0 a 3FFF) adresního prostoru procesoru Z80. Celá paměť ROM je rozdělená na čtyři stránky označované jako ROM 0, ROM 1, ROM 2 a ROM 3, z nichž pouze jedna může být připojena do adresního prostoru procesoru. K přepínání stránek paměti ROM slouží bit č. 4 portu 32765 a bit č. 2 portu 8189.[8]
Obsah jednotlivých stránek ROM je:
- ROM 0 – editor programu,
- ROM 1 – vyhodnocování syntaxe a interpret,
- ROM 2 – +3DOS,
- ROM 3 – ROM ZX Spectra 48K.
Programové vybavení v paměti ROM počítačů ZX Spectrum +2A a +3 existuje ve verzích 4.0 a 4.1.[12]
Obsah paměti ROM počítače Timex Sinclair 2068
Počítač Timex Sinclair 2068 obsahuje 24 KiB paměti ROM. V adresním prostoru se paměť ROM nachází mezi adresami 0 a 16383. Celá paměť je tak rozdělena na dvě části o velikostech 16 KiB a 8 KiB. Menší část paměti ROM se nachází v bance nazývané jako EX-ROM a připojuje se v případě potřeby. V menší části se nachází rutina pro nahrávání dat z magnetofonu.
Zajímavosti
Odkazy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads