ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | PP01 | PETR | PLAN-80A | IQ151


ZPS | Technické prostředky | Programové vybavení | Dokumentace


8 bity / SAPI-1 / Programové vybavení / HELP


OCR návodu PROGRAMOVÝ SYSTÉM HELP











TESLA
ELTOS
OBOROVÝ
PODNIK
DIZ
SAPI 1


PROGRAMOVÝ SYSTÉM HELP











HELP

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ů.


A /Add/

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

B /Basic/

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
>

C /Call/

Příkaz vyžaduje zadáni jednoho parametru - adresy.

Volaný podprogram musí končit instrukci C9 - RET.

Příklad:

#C:03A7

D /Dump/

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

E /Exchange/

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

F /Flag/

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  _____________________________

G /Goto/

Příkaz má stejný účinek jako příkaz GOTO X v Mikrobasicu nebo JUMP adr v assembleru.

#G:1003

H /Half/

Ha tuto adresu si může uživatel uložit cokoli.


I /Insert/

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

J /Jump/

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.


K /Kill/

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
#
?

L /List/

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

M /Move/

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

N /New page/

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.


O /Output/

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 /Print/

Příkaz provede připojení tiskárny k výstupu na obrazovku pouze pro jednu následující funkci systému HELP.


Q /Quest/

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.


R /Read/

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

S /Start/

nepotřebuje žádné parametry.


T /Transfer/

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

U /User/

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

V /Verify/

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

W /Write/

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:


X

Neobsazeno


Y

Zastavení magnetofonu při nejbližší možné příležitosti.


Z /Zero/

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:





VYDÁNO PRO POTŘEBU UŽIVATELŮ POČÍTAČE SAPI-1

název : PROGRAMOVÝ SYSTÉM HELP
zpracoval :TESLA ELTOS ZAR 1984
schválil:TESLA ELTOS DIZ 1984
vydal :TESLA ELTOS DIZ 1984
náklad: 2000 výtisků
rok: 1984

VÝPIS PROGRAMU:



ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | PP01 | PETR | PLAN-80A | IQ151


ZPS | Technické prostředky | Programové vybavení | Dokumentace


8 bity / SAPI-1 / Programové vybavení / HELP



SAPI.cz - web o československých osmibitech, zejména SAPI-1. Provozuje EC1045 od roku 2011
Za korekce češtiny dekuji: MELSOFTovi, Silliconovi, Martinu Lukáškovi a NOSTALCOMPovi

Když začínám blbnout z 8bitů tak se chodím léčit mezi otaku.
Animefest.cz