Sharp MZ-800

 

Domů Sharp MZ-800 Projekty Scavenger Náš byt Fotografie Kniha návštěv Obchod SCAV

BIOS

***** BIOS *****

Inicializace systému

0EA00H BOOT   vstupní bod do BIOSu při počátečním zavedení operačního systému
0EA03H WBOOT  zajistí znovuzavedení modulů CCP a BDOS do paměti

Jednoznakové I/O operace
0EA06H CONST  zjistí stav konzole
0EA09H CONIN  čte znak z konzole
0EA0CH CONOUT vypíše znak na konzoli
0EA2DH LISTST vrátí status tiskárny (její připravenost)
0EA0FH LIST   vypíše znak na tiskárně
0EA12H PUNCH  vyděruje znak do děrné pásky
0EA15H READER přečte znak ze snímače děrné pásky

Diskové operace
0EA1BH SELDSK vybere diskovou jednotku
0EA18H HOME   nastaví hlavu na stopu 0 vybraného disku
0EA1EH SETTRK nastaví číslo stopy
0EA21H SETSEC nastaví číslo sektoru
0EA24H SETDMA nastaví DMA adresu
0EA27H READ   čte nastavený sektor
0EA2AH WRITE  zapíše nastavený sektor
0EA30H SECTRN převede logické číslo sektoru na fyzické

0EA00H - BOOT
Vstupní bod do BIOSu, na který odevzdává řízení zavaděč operačního systému (Cold Start Loader) po zavedení celého systému do paměti. Inicializuje některé systémové parametry.

0EA03H - WBOOT
Na tuto adresu je odevzdané řízení při volání služby č. 0 (reset systému). Adresa 0 v oblasti systémových parametrů obsahuje instrukci skoku na tuto položku vstupního vektoru BIOSu. WBOOT zabezpečí znovuzavedení modulů CCP a BDOS do paměti a odevzdává řízení na CCP. Skok na adresu 0 (JP 0) je obvyklý způsob ukončení práce uživatelských programů a odevzdání řízení operačnímu systému.

0EA06H - CONST
Přes tento bod se získá stav vstupu konzole. V registru A poskytne tento podprogram hodnotu 0FFH, pokud je na konzoli připravený znak pro vstup, jinak vrací nulu.

0EA09 - CONIN
Podprogram přečte ze vstupu konzole znak do registru A a nuluje sedmý (paritní) bit. Podprogram čeká, dokud na konzoli není znak k dispozici.

0EA0CH - CONOUT
Podprogram zabezpečí výpis znaku z registru C na konzoli.

0EA0FH - LIST
Znak z registru C se vypíše na tiskárně.

0EA12H - PUNCH
Znak z registru C se vyděruje do děrné pásky.

0EA15H - READER
Ze snímače děrné pásky se přečte znak do registru A. Podprogram na znak čeká.

0EA18H - HOME
Na vybraném disku nastaví hlavu na nultou stopu.

0EA1BH - SELDSK
Vybere disk, kterého číslo je v registru C (0 pro disk A, 1 pro B atd.) pro následující diskové operace. Podprogram vrátí v registru HL adresu 16 bytové oblasti (tzv. hlavičky bloku diskových parametrů) patřící vybranému disku.

0EA1EH - SETTRK
V registru BC se BIOSu předává číslo stopy, na které se má vykonat následující disková operace. Podprogram nastaví tuto stopu.

0EA21H - SETSEC
V registru BC se zadává číslo sektoru, na kterém se má vykonat následující disková operace. Podprogram nastaví tento sektor.

0EA24H - SETDMA
V registru BC se zadává počáteční adresa oblasti paměti (DMA adresa) pro následující čtení nebo zápis na disk. Například jestliže při BC = 1000H nastavíme DMA adresu, budou následující diskové operace čtení i zápisu vykonávané na adresách 1000H až 107FH tak dlouho, dokud tuto adresu nezměníme.

0EA27H - READ
Podprogram čte jeden záznam o délce 128 bytů z vybraného disku, nastavené stopy a sektoru na nastavenou adresu DMA. V registru A vrátí 0 v případě úspěšné operace a 1 v případě chyby. Chybový kód 1 je jednotný pro všechny druhy chyb, ať už jde o chybu adresace na disku, ztrátu dat, chybu kontrolního součtu atd.

0EA2AH - WRITE
Podprogram zapíše jeden záznam o délce 128 bytů na nastavený sektor na nastavené stopě na vybraném disku z nastavené DMA adresy. V registru A je vrácena 0 při úspěšné operaci, nebo 1 v případě chyby.

0EA2DH - LISTST
V registru A vrátí hodnotu 0, jestliže tiskárna není schopna převzít vypisovaný znak. V případě její připravenosti se vrací hodnota 0FFH.

0EA30H - SECTRN
Podprogram zabezpečuje převod logického čísla sektoru na fyzické. Vstupními parametry jsou logické číslo sektoru v registru BC a adresa převodní tabulky v registru DE. Logické číslo sektoru je vlastně indexem v této tabulce. Podprogram poskytne v registru HL výsledné fyzické číslo sektoru. CP/M nemusí zapisovat jednotlivé sektory na disk v plynule stoupajícím pořadí, ale z důvodu minimalizace přístupové doby mohou být sektory zaznamenány na přeskáčku. Tento způsob záznamu potom v konečném důsledku znamená, že čísla sektorů, ve kterých je sekvenčně zapsán soubor, se neshodují s čísly odpovídajících sektorů na disku. Říkáme, že sektory každé stopy jsou přečíslované. Je-li např. parametr tohoto prečíslení rovný 6, vypadá posloupnost po sobě následujících fyzických sektorů takto: 1, 7, 13, 19, 25, 5, 11, 17 atd. Logickému číslu sektoru 0 pak odpovídá fyzický (skutečný) sektor č. 1, logickému číslu 1 odpovídá sektor 7, logickému číslu 2 odpovídá sektor 13 atd.

 

(c) by fy. SCAV for SHARP MZ-821

Pavel Brázda 22.05.1972
Brno

 

 

Tento soubor informací o SHARP MZ-800 není určen jako učební text, ale jako příručka programátora, proto se v něm nezmiňuji o podrobnějších detailech Hardware. Informace o mikroprocesorové technice byly čerpány z katalogů, technické dokumentace firem INTEL, ATES, SOKODI, SGS-THOMSON, časopisů AMATÉRSKÉ RADIO, ELEKTRONIKA, a zpracováním informačních souborů o SHARP MZ-800. Jako příloha je dodán plánek počítače zpracovaný ing. Martinem Váňou, plánek o maskovatelném přerušení otisknutý v časopise Elektronika 5/92, plánky řadičů FD, plánky ramdisků a znakové sady.

 

 

Zpracováno 4.10.1996

 

 

Domů | Sharp MZ-800 | Projekty | Scavenger | Náš byt | Fotografie | Kniha návštěv | Obchod SCAV | Vyhledání na těchto stránkách | Mapa stránek

 

Tyto stránky byli naposledy aktualizovány dne 08. 02. 2014      Copyright © 05/2006 - Brázda Pavel - Scav - webmaster(c)scav.cz

 

 

Google