ROM počítačů ZX Spectrum

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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.

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.

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. +more 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í 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. +more 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

1A1B (šestnáctkově) - OUT_NUM_1 - rutina pro výpis celého čísla na obrazovku. Číslo, které se má vytisknout, je očekáváno v registru BC a rutina modifikuje registr A. +more Rutina byla původně určena pro tisk čísel řádků a tak neumí tisknout záporná čísla a čísla větší než 9999. 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. 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ů.

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. +more 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.

Obsah jednotlivých stránek ROM je: * ROM 0 - celoobrazovkový editor, systém nabídek, výkonné rutiny přidaných příkazů 128 BASICu, kalkulátor, Tape Tester a Tape Loader, * ROM 1 - ROM ZX Spectra 48K s drobnými úpravami.

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. +more 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.

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.

Zajímavosti

Pavel Troller, autor rozšíření paměti ZX Spectra na 80 KiB, o sobě v prosinci 2011 prohlásil, že si stále pamatuje začátek obsahu paměti ROM ZX Spectra.

Odkazy

Poznámky

Reference

Související články

Software pro počítače ZX Spectrum

Externí odkazy

[url=http://www. wearmouth. +moredemon. co. uk/]The Incomplete Spectrum ROM Assembly[/url] * [url=http://www. shadowmagic. org. uk/spectrum/roms. html]Philip Kendall - The Spectrum ROMs collection[/url] * [url=http://mdfs. net/Software/Spectrum/ROMImages/]ZX Spectrum ROM Images[/url] * [url=https://web. archive. org/web/20150825085532/http://www. wearmouth. demon. co. uk/zx82. htm]An Assembly File Listing to generate a 16K ROM for the ZX Spectrum[/url].

Kategorie:Sinclair ZX Spectrum Kategorie:Programování na ZX Spectru

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top