ROM počítačů ZX Spectrum
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]
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,[2]
- 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. 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)[3],
- 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 (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.[4] Na adrese 8933 (šestnáctkově 22E5) se nachází rutina zajišťující vykreslení jednoho bodu na obrazovku (obsluha příkazu PLOT).[2]
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ů.[5]
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.[6]
Obsah jednotlivých stránek ROM je:
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.[6]
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.[10]
Zajímavosti
Odkazy
Poznámky
Reference
- LOGAN, Ian; O'HARA, Frank. The Complete Spectrum ROM Disassembly. [s.l.]: Melbourne House ISBN 0-86161-116-0. ((anglicky))
- ROM routines Archivováno 26. 12. 2008 na Wayback Machine (anglicky) na timexsinclair.org
- PHILLIPS, John. ... did you get that fab loader on Exolon?. Sinclair User. March 1988, čís. 72, s. 70–71. Dostupné online. ((anglicky))
- Use Your ROM. ZX Computing. June/July 1985, s. 20–21. Dostupné online. ((anglicky))
- JENNE, Daniel, a kol. ZX ROM Výpis. Praha: Vydavatelství Naše vojsko/Zenitcentrum, 1989. ((česky))
- Stránkování pro Spectrum 128/+2/+2A/+3. FIFO. Január 1993, roč. 3, čís. 20, s. 9–10. ((česky))
- Sinclair BASIC History (anglicky) na scratchpad.wikia.com
- Sinclair ZX Spectrum +2 Archivováno 3. 12. 2013 na Wayback Machine na k1.dyndns.org
- Spectrum 128 ROM Disassembly Archivováno 15. 1. 2014 na Wayback Machine (anglicky) na fruitcake.plus.com
- The canonical list of +3 oddities na cs.ox.ac.uk
- ŽABENSKÝ, Petr. ROM, RAM, EPROM, PROM, ... - Hrátky s pamětí a něco už skoro zapomenutého. ZX Magazín. Čís. 1/96, s. 28–29. ISSN 1210-4833. ((česky))
- Jen si pekne ty "in" telefony kupujte ... na hw.cz