ROM počítačů ZX Spectrum obsahuje základní programové vybavení počítačů ainterpret a editorSinclair BASICu. Programové vybavení v paměti ROM počítačeZX Spectrum bylo vyvinuto přímo z programového vybavení v paměti ROM počítačeZX80.[1]
Počítače ZX Spectrum aZX 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 procesoruZ80.
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 vplovoucí řá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 jakotabulku 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.
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 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.
- 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 vregistru BC a rutina modifikujeregistr 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 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]
PočítačeZX Spectrum 128K+ aZX 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 procesoruZ80. 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 portu32765.[8]
Obsah jednotlivých stránek ROM je:
- ROM 0 – celoobrazovkový editor, systém nabídek[p 1], výkonné rutiny přidaných příkazů 128 BASICu, kalkulátor, Tape Tester[p 2] a Tape Loader,[11]
- ROM 1 – ROM ZX Spectra 48K s drobnými úpravami.
PočítačeZX Spectrum +2A aZX 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 procesoruZ80. 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 portu32765 a bit č. 2 portu8189.[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]
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.
- ↑První verze počítačů ZX Spectrum 128K+ systém nabídek neměla, místo něho celoobrazovkový editor obsahoval přidané příkazy zpřístupňující funkce pozdějšího systému nabídek.[9]
- ↑Tape Tester se nachází pouze v paměti ROM počítačů ZX Spectrum 128K+, ale už ne v paměti ROM počítačů ZX Spectrum +2.[10]
- ↑abLOGAN, Ian;O'HARA, Frank.The Complete Spectrum ROM Disassembly. [s.l.]: Melbourne HouseISBN 0-86161-116-0. (anglicky)
- ↑BELFIELD, Dean.L Break Into Program, 0:1 [online]. [cit. 2024-03-29]. KapitolaInterrupts. (anglicky)
- ↑abROM routinesArchivováno 26. 12. 2008 naWayback Machine.(anglicky) na timexsinclair.org
- ↑PHILLIPS, John. ... did you get that fab loader onExolon?.Sinclair User. March 1988, čís. 72, s. 70–71.Dostupné online. (anglicky)
- ↑abTIŠNOVSKÝ, Pavel. Zobrazení čísel a zpracování příznaků mikroprocesoru Zilog Z80.root.cz [online]. 2023-04-04 [cit. 2023-04-06].Dostupné online.
- ↑ 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.
- ↑ab Stránkování pro Spectrum 128/+2/+2A/+3.FIFO. Január 1993, roč. 3, čís. 20, s. 9–10.
- ↑Sinclair BASIC History(anglicky) na scratchpad.wikia.com
- ↑Sinclair ZX Spectrum +2Archivováno 3. 12. 2013 naWayback Machine. na k1.dyndns.org
- ↑Spectrum 128 ROM DisassemblyArchivováno 15. 1. 2014 naWayback 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.ISSN1210-4833.
- ↑Jen si pekne ty "in" telefony kupujte ... na hw.cz
| Sinclair ZX Spectrum a kompatibilní počítače a další počítače Sinclair |
|---|
|
Sinclair ZX Spectrum (Sinclair Research aAmstrad) | |
|
Další počítače Sinclair Research aAmstrad | |
|
| PočítačeTimex Sinclair | TS1000,TS1500,TS2068,TS2048,TC2068,TC2048 (prototypy:TS2000, TS2016, TS2048, TS2068, TS2072,TC3256) Přestože některé z prototypovýchh počítačů mají stejné názvy jako sériově vyráběné počítače, nejedná se o stejné počítače. |
|
Periférie Sinclair Research a Amstrad | |
|
| Periférie Timex Sinclair | kazetový magnetofonTS2020, tiskárnaTS2040, modemTS2050, rozbočovač sběrniceTS2060, varianta ZX MicrodriveTS2065, tiskárnaTS2080, joystickTS2090, digitální kazetový magnetofonTC2010, tiskárnaTC2080,Timex FDD,FDD3000,Interface RS-232, klávesniceTT3000,Joystick-Sound Unit |
|
| Počítače a periférieDidaktik | |
|
| Kompatibilní počítače | ATM Turbo,Delta-S,Delta-S 128,Dubna 48K,Hobbit,Inves Spectrum+,Kay,Kvorum,Orel BK-08,Pentagon,Pentagon 1024SL,Robik,SAM Coupé,Scorpion ZS-256,Sprinter,TK 90X,TK 95,ZX Evolution,ZX Next,ZX Spectrum Next,ZX Spectrum SE |
|
| NadstavbySinclair BASICu | |
|
| Hardware | | | | | Integrované obvody | | | | Porty procesoru | |
|
|
| Disketové řadiče a páskové jednotky | A&J Microdrive,Beta Disk Interface,Byte Drive 500,CS-Disk,Delta Disk,Disciple,+D,FD-68,Kempston Disc Interface,Larken Disk System,MB02,Oliger 2068 Floppy Disk Interface,Opus Discovery,Swiftdisc II,Thurnall Disk System,Triton QD,Viscount disk drive,Wafadrive,ZX Diskface Plus,ZX Diskface Quick |
|
Joysticky a myši (podle způsobu připojení) | |
|
Klony počítače Sinclair ZX Spectrum,MK14,Cambridge Z88,Timex Sinclair 3068 Znaková sada ZX Spectrum,Nahrávací rutina ZX Spectra,ROM počítačů ZX Spectrum,Systémové proměnné počítačů ZX Spectrum,IM2,Emulátor počítače ZX Spectrum |