WINDOWS for SORD m.5 - návod k použití
Program WINDOWS je určen pro sestavu počítače SORD m.5 s deskou 64KRX (deska byla vyvinuta kolektivem elektroniků v dnes již neexistujícím socialistickém podniku POLDI SONP Kladno - Spojené Ocelárny Národní Podnik). Deska 64KRX obsahuje posilovač sběrnice, operační paměť 64KB RAM a 72KB EPROM, RAM DISK 512KB (verze Jana Jelínka) a na zadním FRB konektoru je vyveden STD BUS. Je to další vývojovký krok předchozí verze desky 64KRD (ta měla o 32KB EPROM méně).
Oproti půdovní verzi desky 64KRD byly do 64KRX přidány EPROMy pro MSX Emulátor.
Program WINDOWS se nachází v paměti EPROM umístěné na desce počítače na předem připravené, avšak z výroby neosazené pozici pro BASIC-I. Tato 8KB v podstatě BOOT EPROM obsahuje 4KB WINDOWS (boot) a 4KB poslední části jazyka BASIC-F (BASIC-F má 20KB, 16KB je v EPROM disku na 64KRD/64KRX a 4KB v BOOT EPROM). Po zapnutí a po resetu počítače je MONITORem ROM nalezen program WINDOWS a je mu předáno řízení (klasický boot počítače M5, podrobnosti jsou rozepsány v IPL Start). To se projeví vykreslením základního okénka výběru na obrazovce s modrým pozadím.
Program WINDOWS slouží k zavádění:
- interpretru jazyka BASIC a systému MSX z paměti EPROM do paměti RAM (položky SORD a MSX)
- zaváděcího programu z RAM DISKU do paměti RAM (položka DISC)
- binárního programu z magnetofonu do paměti RAM (položka TAPE)
Dále je možné spustit program, který se již nachází na pozici modulu (kartridže), tzn. je v paměti RAM od adresy 2000H nebo od adresy 4000H (pak ale musí být adrese 2000H byte FFH).
Další funkcí lze zkopírovat MONITOR ROM do paměti RAM (položka MONITOR IN RAM), podrobnosti dále v textu.
Je-li MONITOR ROM zkopírován do paměti RAM, je tato jeho kopie aktivována při volbě jakékoli položky v okénku SORD (kromě položky MONITOR) a při volbě TAPE. Aby mohl MONITOR v paměti RAM fungovat, je po každém zkopírování upravena jeho rutina CHKRAM. Výběrem položky MONITOR IN ROM je předvolen (a volán) MONITOR ROM v ROM a to i v případě, že byl před tím zkopírován do paměti RAM.
Obsah zvolené položky se z EPROM disku (až na výjimky, viz dále v textu) kopíruje z aktuálního umístění v adresním prostoru EPROM disku do RAM od adresy 2000H (SORD) nebo od adresy 0000H (MSX).
WINDOWS dále předpokládá, že na pozici třetí EPROM může být buď BASIC-I, nebo jakýkoliv jiný 8KB program (například dump herní kartridže). Pokud začíná bytem C3H, není přesunut do RAM, ale je spuštěn od adresy, která je na adrese +0001H od začátku EPROM.
Volbou položky DISC se spustí rutina, která očekává, že se v RAMDISKU na sektoru 32 nachází 128 byte dlouhý zaváděcí program, který načte a spustí.
Z WINDOWS lze spustit WINDOWS Assembler Tool, což je jednoduchý monitorovací / debugovací / editační program, který je do WINDOWS zaintegrován.
WINDOWS pro své potřeby využívá spolu s MONITORem ROM také paměť RAM v oblasti 7000H až 72FFH a paměť VRAM od adresy 2000H do 3FFFH. RAM v oblasti 7000H až 72FFH jsou ve skutečnosti interní 4KB RAM (7000H až 7FFFH) na desce M5 a překrývají 4KB z 64 KB RAM na desce 64KRX. Nicméně interní RAM lze odpojit a pak je v adresním prostoru 64 KB RAM z desky 64KRX - jinými slovy, ve skutečnosti deska 64KRX umožňuje využít až 68 KB RAM v adresním prostoru CPU. Tedy ruku do ohně bych za to nedal, ale snad to tak opravdu je.
Ovládání a funkce
V okénku, které nabízí uživateli program WINDOWS, se lze pohybovat nahoru a dolů pomocí směrových šipek. Výběr volby (inverzní text) se provádí stiskem RETURN. Návrat o úroveň níž (předchozí okénko) se realizuje stiskem klávesy RESET, která má během činnosti programu WINDOWS význam klávesy ESC (vrací kód 27 - 1BH).
Protože původní návrh hadware desky počítal při osazování EPROM jen s existujícími Basiky a o MSX se v době návrhu nevědělo, byly EPROM MSX přidány až dodatečně, jako stínové kopie k v návrhu již existujícím EPROM. Mapování EPROM proto nelze ovládat programově. Z tohoto důvodu se musí před použitím položek SORD nebo MSX přepnout mechanický přepínač do odpovídající polohy (v MAME pomocí tzv. DIP switche).
WINDOWS Assembler Tool
Výběrem položky TOOL v základním okénku je nabídnut výběr typu paměti RAM, VRAM (VRM) a ROM, se kterým se bude pracovat. Po odeslání některého z nich je vykresleno základní okno Assembler Toolu, které je rozděleno na tři sloupce. V prvním sloupci jsou adresy, ve druhém a třetím sloupci jsou zobrazeny bajty, které se na těchto adresách nacházejí (jako hexbyte a ASCII). V horní části okna je informace o použitém typu paměti a jejím rozsahu a informace o začátku ZÓNY. V horní části obrazovky je zobrazena jedna disassemblovaná instrukce z adresy, na které stojí (resp. bliká) kurzor.
První sloupec (a případně jeho první adresa) bude dále v textu nazýván ADR, druhý sloupec HEX a třetí sloupec ASC. Pozice v levém horním rohu ADR bude dále v textu nazývaná HOMEA, tatáž pozice v HEX bude nazývána HOMEB. Adresa, na níž stojí kurzor, bude nazývaná ADRK. Na začátek ZÓNY ukazuje adresa ZONE (ZN).
Při současném stisku CTRL a "klávesa" nastanou tyto akce:
A až F - ignorováno G - Get - zadání hledaného řetězce H - hledej - zadání hledaného řetězce s Hvězdičkovou konvencí I - instruction - posun ADRK na další Instrukci J - Jump - nastaví ADR na ZONE a kurzor umístí na HOMEB K - ctrl/K, home - umístí kurzor na HOMEA L - ctrl/L, page - posune adresy na daLší stránku (o 32 byte) M - ctrl/M, return - nastaví Minulou adresu v ADR a kurzor umístí na HOMEB N - Next - započne hledání dalšího výskytu zadaného řetězce O - Old - nahraje z magnetofonu soubor do paměti od ADRK P - disass - Prohlížení paměti jako disassemblované instrukce od ADR Q - ignorováno R - ignorováno S - ignorováno T - Type - prohlížení paměti jako ASCII (512 byte) a BIN (128 byte) od ADR U - Up - umístí ADRK na ADR a kurzor na HOMEB V - ignorováno W - ignorováno X - eXecute, call - po potvrzení (Y) spustí program od adresy ADRK Y - ctrl/Y - přepne pohled na druhou obrazovku Z - Zone - začátek ZÓNY je nastaven na ADRK @ - šipka nahoru - posune kurzor o řádek nahoru / - šipka dolů - posune kurzor o řádek dolů ; - šipka vlevo - posune kurzor o znak vlevo : - šipka vpravo - posune kurzor o znak vpravo
Poznámkay při pohybu pomocí šipek se postupně přechází všemi směry v celém rozsahu základního okna a v případě že je kurzor až jeho na hranici, přechází tento na opačný konec nového řádku, nebo je případně celé okno "odrolováno".
EXECUTE nelze provést při zvoleném typu paměti VRAM (v paměti videoprocesoru programy fakt spouštět nelze).
Při volbě ROM je připojena celá ROM, kromě oblasti 7000H až 7FFFH (kde je vždy RAM) a při volbě RAM je připojena celá RAM.
Zásobník (SP - Stack Pointer) Z80 CPU je nastaven někde pod 72FFH.
Je-li stisknuta pouze "klávesa," provedou se ve sloupci ADR a HEX tyto akce:
0 až 9 a A až F - změna hodnoty, na které stojí kurzor (zadání hex čísla) G až Z - stejné jako s CTRL/klávesa ! - (Padding! / Purge! / Prune!) - provede se zaplnění ZÓNY kódem z adresy ZONE
Poznámka: při pohybu pomocí kláves <@> </> <;> a <:> se kurzor pohybuje pouze ve sloupcích ADR a HEX. ZÓNA začíná adresou ZONE a končí na ADRK. Při zvoleném typu paměti RAM není možné zapsat do adresové oblasti 72F0H až 72FFH a při Padding! (zaplňování) je přeskočena oblast 7000H až 72FFH. Pro paměť VRAM platí totéž pro adresy 4000H až FFFFH a pro ROM to platí v celém rozsahu.
Ve sloupci ASC se hodnoty mění běžným psaním a pomocí CTRL/SHIFT/klávesy.
Upřesňující informace k Assembler Toolu
Při GET a HLEDEJ je změněno pozadí obrazovky na červené a základní okno je nastaveno na VRAM od adresy 3FE0H (tato část videopaměti je použita jako bafr pro vyhledávací funkce). Nyní je možné zadat maximálně 31 byte dlouhý hledaný řetězec buď jako hex nebo ASCII nebo jejich kombinace. ADRK určuje pozici za hledaným řetězcem! ESC vrátí do základního okna. Při NEXT je řetězec nalezen vždy! Při zvoleném typu paměti RAM a ROM je nalezen alespoň v pracovním bafru (719FH) a při VRAM v bafru pro zadávání (3FE0H). Hledání pomoci hvězdičkové konvence pracuje tak, že při hledání může být byte FFH z hledaného řetězce nahrazen čímkoli. Hledáme-li například výskyt všech řetězců CD xx 10 (instrukce CALL 10xx), zadáme CTRL/H, pak řetězec CD FF 10, stiskneme ESC a poté CTRL/N (pro spuštění vyhledávání).
Hledání a plnění paměti lze přerušit stiskem ESC.
DISASS, TYPE a OLD probíhají na druhé obrazovce, proto je umožněno se na ní pomocí CTRL/Y podívat (je to stejná stejná klávesová zkratka, jakou používají pro přepínání obrazovek jazyky BASIC).
DISASS zobrazí vždy 24 řádek instrukcí. Stiskem jakékoli klávesy pokračuje další stránkou, pouze stisk <@> zmenší dosaženou adresu o 256 (posun zpět) a ESC vrací do základního okna. Po návratu se ADR a ADRK nemění. Výpis se zobrazuje od adresy ADR (adresy okna), nikoli od ADRK (adresy kurzoru)!
TYPE posouvá vpřed a vzad o jeden (<:> a <;>) a o 128 byte (</> a <@>).
ESC vrací do základního okna. Po návratu jsou ADR a ADRK nastaveny na dosaženou adresu. Zobrazuje se od ADR, nikoli od ADRK!
Funkce Assembler Toolu lze rozšiřovat přihráním dalšího programu ve strojovém kódu a jeho připojením na háček (hook). Připojení lze realizovat například takovýmto podprogramem:
.RADIX 16T PRIPOJ: LD HL,EXPAND LD (716C),HL LD A,0C3 LD (716B),A RET
EXPAND je adresa programu, který rozšiřuje možnosti Assembler Toolu (například reaguje na některou z nevyužitých kláves a vykonává nějakou funkci). Tento program by neměl měnit obsah registrového párů BC, který obsahuje informaci o stisklých klávesách.
============ napsal LZR Soft, datum poslední editace: není známo ============
Původní verze příručky
Původní podoba příručky: WINDOW.NAV (8KB, plain text including escape sequences for the LA120 DECWriter III) od LZR Soft.