ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
ZPS | Technické prostředky | Programové vybavení | Dokumentace
OCR návodu PROGRAMOVÝ SYSTÉM HELP
TESLA ELTOS OBOROVÝ PODNIK | DIZ |
SAPI 1 |
Programový systém HELP doplňuje, rozšiřuje a prohlubuje funkce Mikromonitoru, dodávaného standardně s mikropočítačem SAPI-1. Vzhledem k omezením, daným malým rozsahem disponibilní paměti nemohl Mikromonitor řadu funkci obsáhnout. Rozšířeni, obsažená v HELPu umožňují a usnadňují především práci při programování ve strojovém kódu a zkracuji dost podstatně dobu, potřebnou k odladění programů na SAPI-1. Kde to jen bylo možné je i z důvodů úspory paměti používáno podprogramů Mikromonitoru.
Při zadávání parametrů tak, jak jsou u jednotlivých příkazů předepsány - a týká se to zejména adres - se parametry zadávají normálně a systém si je pro vnitřní zobrazení obraci sám. Samozřejmě to neplatí pro přímý zápis do jednotlivých buněk paměti - po slabikách. Pokud při zápisu např. adresy uděláte chybu a zadání parametru jste ještě neukončili stiskem klávesy mezera, systém uloží jako platný parametr jen čtyři posledně zadané znaky tak, jak je to např. uvedeno u příkladu v příkazu LIST (prvý parametr) a u příkazu USER (prvý parametr příkazu I). Chybně zadané znaky systém nebere na vědomí.
HELP je v paměti uložen od adresy 1000, odkud je možné jej spustit monitorovskýn příkazem G. Po spuštění od této dresy
je v tzv. výchozí pozici, displej je vynulován a na poslední řádce se objeví znaky:
?
#
Pak je již možno zadávat jednotlivé příkazy, jejichž popis následuje dále.
Podobně jako u Mikrobasicu je i zde možné spuštěni i na dalších adresách s tím, že některé úvodní procedury nejsou provedeny.
Při spuštění od adresy 1003 se obrazovka nenuluje, vše ostatní zůstává nezměněno, SP se nastavuje na počátek.
Po spuštěni od adresy 1008 jde HELP na obrazovce na nový řádek, otazník se netiskne, jen # . SP je nastaven na počátek a výstup je jen na displej.
Při spuštění od adresy 100B se nastavuje SP na začátek.
Při spuštění od adresy 100E zůstane SP beze změny, na displeji se otiskne pouze znak # .
Na závěr můžeme jen doporučit, abyste si všechny příkazy vyzkoušeli "nasucho" před jejich ostrým použitím. Nic při tom pokazit nemůžete, neboť vše důležité se nachází v pamětech ROM, které v počítači nepřepíšete.
Přejeme Vám mnoho úspěchů.
Příkaz zajisti přesun bloku paměti slabiku po slabice od nejvyšších adres postupně až po počáteční adresu bloku. Příkaz vyžaduje zadání tří parametrů:
Prvý parametr musí být větší než třetí, jinak dojde ke zničení obsahu paměti. HELP to nekontroluje. Rovněž není nijak chráněn obsah paměti, kam se blok přesouvá. Je tedy třeba bezpečně vědět, že za přesouvaným blokem je volné místo s nepodstatným obsahem.
V následujícím příkladu je nejprve uveden výpis příslušné oblasti paměti příkazem D (viz dále), potom zadání přesunu příkazem A a konečně opět výpis téže oblasti paměti. Obsah buněk paměti, odkud byl přesun proveden a které nebyly přepsány novým obsahem zůstal nezměněn. Týká se to adres 4108 a 4109.
#D:4100 :412F 4100 00 00 00 00 00 00 00 00 4108 CD AD 11 3E 3F CD 07 40 4110 CD 5C 0C 31 B1 40 CD 19 4118 89 3E 23 CD 07 40 CD 6A 4120 0D CD 07 40 D6 41 FA 03 4128 00 00 00 00 00 00 00 00 #A:4123 :4108 :4127 #D:4100 :412F 4100 00 00 00 00 00 00 00 00 4108 CD AD CD AD 11 3E 3F CD 4110 07 40 CD 5C 0C 31 B1 40 4118 CD 19 89 3E 23 CD 07 40 4120 CD 6A 0D CD 07 40 D6 41 4128 00 00 00 00 00 00 00 00
Příkaz provede skok na adresu 004D, t. j. provede tzv. teplý start (viz příručku Programové vybaveni SAPI 1, odst. 8.1.).
Přiklad:
#B READY >
Příkaz vyžaduje zadáni jednoho parametru - adresy.
Volaný podprogram musí končit instrukci C9 - RET.Příklad:
#C:03A7
Po zvoleni příkazu k výpisu obsahu paměti vypíše systém dvojtečku (:) a očekává zadáni počáteční adresy výpisu. Zadáni parametru se ukončuje mezerou nebo novým řádkem. Potom požaduje další dvojtečkou zadáni koncové adresy, jejíž obsah ještě bude vypsán. Výpis je v obvyklém tvaru, t.j. v prvých čtyřek sloupcích je adresa a za ní v řádce jsou po dvou hexadecimálních číslicích obsahy jednotlivých buněk, oddělené mezerou ve skupinách po osmi.
Přiklad výpisu:
#D:1008 :101F 1000 CD AD 11 3E 3F CD 07 40 1008 CD 5C 0C 31 B1 40 CD 19 1010 89 3E 23 CD 07 40 CD 6A 1018 0D CD 07 40 D6 41 FA 03
Příkaz zajisti změnu obsahu všech adres v instrukcích programu, které odpovídají zadanému obsahu na nový obsah. Příkaz vyžaduje čtyři parametry:
Přiklad začíná výpisem příkazem V, zadáním příkazu E a opětným výpisem po provedení. (Viz dále příkaz V).
#V:4100 :411F 4100 CD AD 11 4103 3E 3F 4105 CD 07 40 4109 CD 5C 0C 410B 31 B1 40 410E CD 19 09 4111 3E 23 4113 CD 07 40 4116 CD 6A 0D 4119 CD 07 40 411C D6 41 411E FA 03 10 #E:4007 :0000 :4100 :411F #V:4100 :411F 4100 CD AD 11 4103 3E 3F 4105 CD 00 00 4109 CD 5C 0C 410B 31 B1 40 410E CD 19 09 4111 3E 23 4113 CD 00 00 4116 CD 6A 0D 4119 CD 00 00 411C D6 41 411E FA 03 10
Příkaz zajistí přepnuti programového přepínače. Počáteční nastavení při spuštění programu je "vypnuto - OFF". Přepínač je testován při použití příkazu V (viz déle). Při jeho zapnutí vystupuje výpis ve tvaru programovacích formulářů. Přepínač je rovněž testovém (zda je zapnut) při výpisu registrů a obsahu zásobníku (viz dále).
Příklad:
#F #V:1000 :101F 1000 CD AD 11 _____________________________ 1003 3E 3F _____________________________ 1003 CD 07 40 _____________________________ 1008 CD 5C 0C _____________________________ 100B 31 B1 40 _____________________________ 100E CD 19 09 _____________________________ 1011 3E 23 _____________________________ 1013 CD 07 40 _____________________________ 1016 CD 6A 0D _____________________________ 1019 CD 07 40 _____________________________ 101C D6 41 _____________________________ 101E FA 03 10 _____________________________
Příkaz má stejný účinek jako příkaz GOTO X v Mikrobasicu nebo JUMP adr v assembleru.
#G:1003
Ha tuto adresu si může uživatel uložit cokoli.
Příkaz zajistí zobrazování jednotlivých buněk paměti postupně od zadané adresy. V případě, že má být obsah zobrazené slabiky změněn, zapíše se nový obsah dvěma hexadecimálními číslicemi. Chceme-li obsah ponechat, stiskneme mezeru a systém zobrazí další slabiku (včetně adresy). Činnost příkazu se ukončí sekvencí nový řádek, nový řádek. Příkaz vyžaduje zadání jednoho parametru, t.j. počáteční adresy.
Přiklad (nový, měněný obsah je podtržen):
#I:5000 5000 21 CD ~~ 5001 6F AD ~~ 5002 50 42 ~~ 5003 11
Příkaz provede skok do programu uživatele přes jeho tabulku adres, která může být na libovolném místě. Její adresa však musí být uložena příkazem U na určenou adresu. Tímtéž příkazem se musí zadat i počet adres a hexadecimální hodnota prvého vyvolávacího znaku.
Přiklad použiti a zadáni.
Uživatelův dispečink (tabulka adres) je uložen od adresy 4900. Tabulka obsahuje celkem 5 adres. Kam se má provést skok se určuje číslicemi 0 až 4.
Zadáme následující funkce:
#U:4900 :0530 #J3
#U:4900 :0530 - hexadecimální nula ASCII, čili je požadován skok na prvou adresu tabulky.
#U:4900 :0530 - prvé nepoužité číslo tabulky, jim se hlídá délka tabulky.
Systém HELP provede skok na adresu, uvedenou v tabulce na čtvrtém místě.
Zde zvolených pět adres je dosažitelných jen uvedením číslic 0, 1, 2, 3 nebo 4. Jakýkoli jiný znak nebo číslice vedou mimo funkci (žádný skok se neprovede) a systém požaduje po výpisu ? zadáni nové funkce.
Příkaz provede skok na adresu 0F0D (bez nulováni displeje) viz příručku "Výpis programu SAPI-1".
Přiklad:
#K MONITOR *G1000 # ?
Příkaz zobrazí abecedněčíslicové znaky, uložené v zadané oblasti paměti.
Vyžaduje zadáni dvou parametrů:
Přiklad (pro srovnání s výpisem stejné oblasti Dumpem):
#L:94900 :492C PROGRAMOVI SYSTEM HELP VERSE 1. 3. 12. 12. 1983 #D:4900 :492C 4900 50 52 4F 47 52 41 4D 4F 4908 56 59 20 53 59 53 54 45 4918 4D 20 48 45 4C 50 20 20 4918 56 45 52 53 45 20 31 2E 4928 33 2E 0D 31 32 2E 31 32 4928 2E 31 39 38 33
Přesun obsahu bloku paměti postupně po slabikách od nižších adres k vyšším (obdoba funkce A s opačným postupem).
Příkaz vyžaduje zadáni tři parametrů:
Aby mohl příkaz správně pracovat, musí být nová a stará adresa rozdílné minimálně o délku celého přesouvaného bloku.
Přiklad:
#D:4100 :412F 4100 00 00 00 00 00 00 00 4108 00 00 00 00 00 00 00 4110 00 00 00 00 00 00 00 4118 00 00 00 00 00 00 00 4120 00 00 00 00 00 00 00 4128 00 00 00 00 00 00 00 #M:4108 :1000 :101F #D:4100 :412F 4100 00 00 00 00 00 00 00 00 4108 CD AD 11 3E 3F CD 07 40 4110 CD 5C 0C 31 B1 40 CD 19 4118 89 3E 23 CD 07 40 CD 6A 4120 0D CD 07 40 D6 41 FA 03 4128 00 00 00 00 00 00 00 00
Nepotřebuje parametry, vyšle do tiskárny pouze řídící znak "0C". U tiskárny Consul 2111 bez traktorů nevyvolá příkaz žádnou činnost.
Příkaz vyžaduje zadání znaku hexadecimálně. Lze jej využít k řízeni některých funkcí tiskárny, např. přepínáni barvicí pásky (je-li dvoubarevná) a pod.
Přiklad:
#O:11 #O:12
Příkaz provede připojení tiskárny k výstupu na obrazovku pouze pro jednu následující funkci systému HELP.
Příkaz vyžaduje zadáni tři parametrů:
Příklad zadáni a tvar výpisu:
#Q:0BAE :1000 :13CC 12BC 12C6 12D3 12DE 12E2 12EC 12F0 12F4 1309
To znamená, že na těchto adresách byla nalezena zadaná konstanta. Nemusí to být vždy adresa, ale i náhodně se vyskytující kombinace dat a pod.
Příkaz zajistí načteni jednoho bloku dat nebo programu, určeného číslem do paměti mikropočítače. Magnetofon musí být připojen k počítači a zapnut na přehráváni. Kaseta může být nastavena libovolně před požadovanými daty nebo programem. Vše, co nebude souhlasit a požadavkem bude přeskočeno. Při zápisu do paměti je kontrolován kontrolní součet, dříve tam zapsaný.
Příkaz vyžaduje zadáni dvou parametrů:
POZOR. Při ukládání programu na jinou adresu je třeba program před spuštěním přepracovat (nesouhlasí adresy). Adresy je nutno relokovat funkcí T (Transfer).
Při vyhledávání programu na kazetě se.postupně zobrazují názvy - texty programů, které procházejí. Po nalezení správného programu a jeho uložení do paměti se magnetofon zastaví. Při nesprávném kontrolním součtu je ohlášena chyba a systém vyžaduje zadání adresy programu, od které má pokračovat.
Při čtení dat je přečten první blok dat z kazety. Všechny programy jsou ignorovány, pokud se na pásce nacházejí a je hledán blok s daty.
Příklad zadání:
#R:01 :0
nepotřebuje žádné parametry.
Příkaz zajistí relokaci programu vzhledem k jeho novému uložení v paměti. V relokovaném programu nesmí být žádné pole dat.konstant nebo tabulka adres.
Relokovat lze buď celý program nebo jen jeho koncovou část. Druhá možnost umožňuje vkládat do programu další instrukce nebo je též vypouštět.
Příkaz vyžaduje zadání čtyř parametrů:
Příklad. Od adresy 4100 je program, který byl původně na adrese 1000. Před spuštěním je nutno jej upravit - relokovat. Nejprve tedy výpis paměti před spuštěním příkazu, pak zadání příkazu a opět výpis téže oblasti, kde lze porovnáním zjistit změněné adresy. Některé jsou zvýrazněny rámečkem.
#D:4100 :412F 4100 CD AD 11 3E 3F CD 07 40 4108 CD 5C 0C 31 B1 40 CD 19 4110 89 3E 23 CD 07 40 CD 6A 4118 0D CD 07 40 D6 41 FA 03 4120 10 FE 1A F2 03 10 21 08 4128 10 E5 21 CC 13 87 85 6F #T:4100 :1000 :4100 :44FF #D:4100 :412F 4100 CD [AD 42] 3E 3F CD 07 40 4108 CD 5C 0C 31 B1 40 CD 19 4110 89 3E 23 CD 07 40 CD 6A 4118 0D CD 07 40 D6 41 FA 03 4120 [41 FE] 1A F2 03 10 21 08 4128 10 E5 21 CC 13 87 85 6F
Příkaz zapíše jako systémové konstanty dvě adresy na adresu 40BA až 40BD. Viz příkaz J - použití uživatelského dispečinku a tabulky adres.
Příklad: (s výpisem obsahu před a po zadání příkazu).
#I:40AB40BA 40BA 00 40BB 49 40BC 30 40BD 05 #U:1234 :5678 #I:48BA 40BA 34 40BB 12 40BC 78 48BD 56 40BE 84
Příkaz vyžaduje zadáni dvou parametrů:
Příkaz rozliší ve výpisu instrukce podle délky, t.j. jedno-, dvou- a tříslabikové.
Příklad výpisu.
#V:1000 :101F 1000 CD AD 11 1003 3E 3F 1005 CD 07 40 1008 CD 5C 0C 100B 31 B1 40 100E CD 19 09 1011 3E 23 1013 CD 07 40 1016 CD 6A 0D 1019 CD 07 40 101C D6 41 101E FA 03 10
Příkaz zajisti zápis jednoho bloku informaci na kazetu magnetofonu. Magnetofon musí být zapnut pro nahrávání a připojen k mikropočítačovému systému. Systém sám provede jeho spuštění a zastavení. Nastaveni pásky v kazetě si musí uživatel provést sám.
Příkaz vyžaduje zadáni tří parametrů:
Přiklad zadáni: Je třeba zapsat na kazetu program pod číslem FF, který je v paměti od adresy 4100 do adresy 410E včetně.
#W:FF ,4100 ,410F NAME :ABC
Po zadáni v případě programu (nenulové číslo) žádá HELP ještě o zadání pojmenování programu či jiného textu, který bude při jeho volání do paměti zobrazen a to zobrazením hesla NAME: .
Text zde zadaný může mít až 40 znaků a musí být ukončen znakem nový řádek.
Na magnetické pásce pak mají zapsané informace tuto strukturu:
Neobsazeno
Zastavení magnetofonu při nejbližší možné příležitosti.
Příkaz zaplní zadanou oblast paměti určeným znakem. Vyžaduje zadání tři parametrů:
Přiklad zadáni:
#D:4100 :411F 4100 01 00 00 00 FF 00 00 00 4108 05 57 00 58 00 00 4E 00 4110 06 07 41 07 00 00 00 00 4118 00 01 00 00 00 00 00 00 #Z:00 :4100 :411F #D:4100 :411F 4100 00 00 00 00 00 00 00 00 4108 00 00 00 00 00 00 00 00 4110 00 00 00 00 00 00 00 00 4118 00 00 00 00 00 00 00 00
V HELPu je dále několik podprogramů bez zvláštního označeni, které lze volat z uživatelských programů.
Od adresy 106E je podprogram výpisu registrů, který při zapnutém programovém přepínači ( příkaz F ) vypisuje též obsah zásobníku - všechny hodnoty, zde uložené). Podprogram lze volat z libovolného místa uživatelského programu. Uživatel se nemusí starat o uchování obsahu registrů. Po výstupu z tohoto podprogramu mají registry původní obsahy jako při vstupu do podprogramu. Výpis registrů je proveden v následujícím pořadí (bez zapnutého přepínače):
A PSW B C D E H L
Je-li programový přepínač zapnut ( F ), provede podprogram kromě výpisu obsahu registrů táž výpis hodnot, uložených v zásobníku (stacku).
Příklad:
registry | zásobník 00 56 50 00 50 10 50 04 5D 6D 50 00 5C 08 | poslední<-uložená->první
Další podprogram na adrese 1C5B zajišťuje vstup dvou dvouslabikových konstant do registrů HL a DE.
Na adrese 105E je podprogram pro vstup jedné dvouslabičné konstanty do registru DE.
Na adrese 1218 je podprogram pro zápis bloku dat nebo programu na magnetickou pásku. Podprogram potřebuje tyto vstupy:
Podprogram na adrese 1295 čte záznam z magnetické pásky do paměti. Potřebuje jediný vstup:
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
ZPS | Technické prostředky | Programové vybavení | Dokumentace