Periferni zarizeni FD-5
***********************
K mikropocitaci SORD M5 bylo mozne dokoupit pridavne zarizeni FD-5. Toto
zarizeni obsahuje oboustranou disketovou mechaniku 3,5 palce, radic INTEL,
ktery ji obsluhuje a jednoduchy mikropocitac postaveny na bazi Z80, ktery
zastava funkci diskoveho systemu a obstarava komunikaci s pocitacem M5.
Propojeni FD-5 a M5 je vyreseno paralelnim stykem ( 8255 ). M5 vysila do FD-5
akcni texty, na ktere mu FD-5 odpovida ( dalo by se to prirovnat k volani
sluzeb BDOSu a BIOSu ).
S jednotkami FD-5 ( k pocitaci jich muze byt pripojeno az osm ) umi komuniko-
vat interpretr jazyka Basic-F a graficky program Paint Designer. Ostatni
jazyky k tomu potrebuji specialni ovladace.
Basic-F umoznuje zapisovat na FD-5 a cist z FD-5 pomoci prikazu SAVE, VSAVE,
OLD, VERIFY, OPEN, PUT a GET. Dale je pak mozne komunikovat s FD-5 primo,
pomoci prikazu FX a REG, ktere maji tvar:
FX DRAJVR,"TXT",AF,BC,DE,HL,BAFR,DELKA, - do FD-5
BAFR,DELKA,PAMET:PRINT REG(0);REG(1);REG(2);REG(3) - z FD-5
DRAJVR - urcuje jedno z osmi moznych pripojenych zarizeni FD-5 ( 0 az 7 ).
TXT - akcni text ( velkymi pismeny )
AF...HL - vysilane registry ( viz nize )
BAFR - adresa vyrovnavaci pameti pro vysilana nebo prijimana data
DELKA - delka vysilanych nebo prijimanych dat
PAMET - typ pameti, ve ktere je BAFR ( 0=RAM, 1=VRAM )
REG(x) - vracene registry ( 0=AF ... 3=HL )
Poznamka "do FD-5" znamena, ze se definuji data, ktera se vysilaji z M5
do FD-5. Analogicky "z FD-5" znamena, ze se definuji data, ktera se vysilaji
z FD-5 do M5. Funkce REG se nevaze jen na registry vyslane z FD-5, ale lze
ji pouzivat obecne k zobrazeni registru Z80.
FD-5 zna nekolik desitek akcnich textu. U kazdeho akcniho textu jsou uvedeny
ocekavane vstupni a vysilane vystupni udaje. Akcni text sestava vzdy ze tri
velkych pismen abecedy ( prvni udaj na radce ). Cisla v zavorkach oznacuji
delku ( dekadicky ) prenasenych dat.
Bafr IDTCHN (63) obsahuje informace o otevrenem souboru. Obsah:
atribut souboru (1), jmeno souboru (9), zacatek (2) delka (2) a startovaci
adresa (2) programu, rozsirujici atribut (1), "BF" (2), nevyuzito (22),
heslo souboru (4), ochrany souboru (1), cislo prvniho bloku souboru (2),
00 (1), delka souboru - pocitadlo (2), 00 (1), delka souboru (2), 00 (1),
cislo posledniho bloku (2), 00 (1), offset posledniho bytu v bloku (1),
00 (1), predposledni ukazatel bloku (2), 00 (1)
Specialnimi prikazy lze cist obsah pameti, menit obsah pameti a spoustet
program v pameti jednotky FD-5. Zadanim registru pri RMM BC=0100H, HL=FD00H
se provede odemknuti pameti v FD-5 pro prikazy RMM, WMM a EXM. Pri uzamcene
pameti se cte a pise vzdy na adresu 8000H a EXM hlasi Err 130.
FD-5 ma kazdou disketu rozlisenu jmenem, ktere zadava uzivatel a deviti bajty,
jejichz obsah je obsazen nahodne vygenerovanymi cisly, cimz se zarucuje
rozdilnost i stejne pojmenovanych disket. FD-5 dale umoznuje chranit disketu
heslem. Neuvedenim spravneho hesla je disketa naprosto nepristupna. Lze
chranit take jednotlive skupiny bloku pred ctenim nebo pred zapisem. K tomuto
ucelu jsou vyhrazeny dva bajty ( jeden pro cteni, druhy pro zapis ). Bity
techto bajtu se vztahuji na ( nasetovane bity jsou aktivni, pro inverzni je
tomu naopak ):
0 - systemove bloky
1 - FAT bloky ( inverzne )
2 - bloky direktorare
3 - bloky urcene pro data ( inverzne )
4 - bloky rezervovane na konci diskety
5 - nepouzit
6 - vsechny bloky, na nez pak nelze pouzit prikaz CPY
7 - vsechny bloky, na nez pak nelze pouzit prikazy RVI, FNM
Rovnez lze chranit jednotlive soubory na diskete. Bajt ochrany souboru je
ulozen v direktorari a jeho bity chrani soubor pred:
0 - smazanim a nebo prejmenovanim
1 - ctenim
2 - zapisem
3 - zmenou hlavicky ( prikazy SDR, RDR, WDR )
4 - nepouzit
5 - nepouzit
6 - nepouzit
7 - zmenou techto ochran ( prikaz ATR )
Basic-F dusledne vypina veskere ochrany a hesla. K jejich zavedeni slouzi
specialni podprogram CHATR.
Akcni texty
===========
WHO - odpoved od FD-5, jake je jednotka FD-5 verze
do FD: registry: nic
bafr : nic
z FD: registry: nemeni
bafr (16): "text verze FD-5."
FMT - formatovani diskety
do FD: registry: B - mechanika, C - skew faktor na prokladani sektoru
bafr (7): pocet stop na stranu (2), 00 (1),
pocet stran na diskete (1), 00 (1),
pocet sektoru na stope (1), 00 (1)
z FD: registry: nemeni
bafr : nic
GEN - inicializace diskety
do FD: registry: B - mechanika
bafr (128): "M5 BASIC-FFD-5 1.0 1.0 "
pocet stop na stranu (2), 00 (1),
pocet stran na diskete (1), 00 (1),
pocet sektoru na stope (1), 00 (1),
pocet bloku na diskete (2), 00 (1),
zacatek direktorare (2), 00 (1),
konec direktorare (2), 00 (1),
pocet hlavicek souboru (2), 00 (1),
zacatek FAT (2), 00 (1),
konec FAT (2), 00 (1),
prvni blok pro data (2), 00 (1),
posledni blok pro data (2), 00 (1),
prostor pro uschovu puvodniho jmena diskety pri FNM (9),
jmeno diskety (9),
nahodna cisla identifikujici disketu (9),
ochrany skupin bloku diskety pred ctenim (1),
ochrany skupin bloku diskety pred zapisem (1), 00 (1),
heslo diskety (9),
zbytek nevyuzit
z FD: registry: nemeni
bafr : nic
IDV - precteni parametru diskety v mechanice a jeji prijmuti
do FD: registry: B - mechanika
bafr : nic
z FD: registry: nemeni
bafr : nic
RVI - nacteni boot sektoru z diskety
do FD: registry: B - mechanika
bafr : nic
z FD: registry: nemeni
bafr (128): blok dat viz vstupni bafr pro GEN
VPR - zadani noveho hesla a ochran skupin bloku diskety
do FD: registry: nic
bafr (22): mechanika (1), soucasne heslo diskety (9),
nove ochrany skupin bloku diskety pred ctenim (1),
nove ochrany skupin bloku diskety pred zapisem (1), 00 (1),
nove heslo diskety (9)
z FD: registry: nemeni
bafr : nic
FNM - prejmenovani diskety
do FD: registry: nic
bafr (28): mechanika (1), stare (9) a nove (9) jmeno diskety (9),
nova nahodna cisla pro identifikaci diskety (9),
z FD: registry: nemeni
bafr : nic
CPY - kopirovani z diskety na disketu po blocich. Diskety musi mit shodnou
kapacitu, delku FAT a direktorare
do FD: registry: B - mechanika zdrojove diskety, C - mechanika cilove diskety
bafr (18): heslo zdrojove (9) a cilove (9) diskety
z FD: registry: nemeni
bafr : nic
RDB - cteni bloku direktorare
do FD: registry: A - mechanika, BC - cislo bloku
bafr : nic
z FD: registry: nemeni
bafr (256): blok direktorare (256)
WDB - zapis bloku direktorare
do FD: registry: A - mechanika, BC - cislo bloku
bafr (256): blok direktorare (256)
z FD: registry: nemeni
bafr : nic
RBL - cteni libovolneho bloku diskety
do FD: registry: A - mechanika, BC - cislo bloku
bafr : nic
z FD: registry: nemeni
bafr (256): blok dat (256)
WBL - zapis libovolneho bloku diskety
do FD: registry: A - mechanika, BC - cislo bloku
bafr (256): blok dat (256)
z FD: registry: nemeni
bafr : nic
NAM - prejmenovani souboru
do FD: registry: nic
bafr (23): mechanika (1), stare jmeno souboru (9), heslo souboru (4),
nove jmeno souboru (9)
z FD: registry: nemeni
bafr : nic
OPN - otevreni souboru
do FD: registry: A, D - pozadovany pristup, BC - delka zaznamu ( RECORD )
E - cislo kanalu FD-5
bafr (64): mechanika (1), IDTCHN (63)
z FD: registry: nemeni
bafr : nic
RDC - precteni kanalovych informaci
do FD: registry: E - cislo kanalu
bafr : nic
z FD: registry: nemeni
bafr (63): IDTCHN (63)
CHN - zjisti volny kanal v FD-5
do FD: registry: nic
bafr : nic
z FD: registry: E - cislo kanalu
bafr : nic
WBI - zapis bloku dat do souboru
do FD: registry: B - delka bloku, E - cislo kanalu,
HL - zdrojova adresa dat v M5
bafr (B): blok dat (B)
z FD: registry: A - posledni byte, HL - viz do FD zvetseno o zapsane byte
bafr : nic
RBI - cteni bloku dat ze souboru
do FD: registry: B - delka bloku, E - cislo kanalu,
HL - cilova adresa dat v M5
bafr : nic
z FD: registry: A - posledni byte, HL - viz do FD zvetseno o prectene byte
bafr (B): blok dat (B)
WTX - zapis bloku textu do souboru
do FD: registry: B - delka bloku, E - cislo kanalu,
HL - zdrojova adresa dat v M5
bafr (B): blok dat (B)
z FD: registry: A - posledni byte, B - zbylo nezapsano, C - bylo zapsano,
HL - viz do FD zvetseno o zapsane byte
bafr : nic
RTX - cteni bloku textu ze souboru
do FD: registry: B - delka bloku, E - cislo kanalu,
HL - cilova adresa dat v M5
bafr : nic
z FD: registry: A - posledni byte, B - zbylo neprecteno, C - bylo nacteno,
HL - viz do FD zvetseno o prectene byte
bafr (B): blok dat (B)
MAP - nastaveni zaznamu ( RECORD ) souboru
do FD: registry: BC - cislo zaznamu, E - cislo kanalu
bafr : nic
z FD: registry: nemeni
bafr : nic
SAP - preskoceni useku dat
do FD: registry: B - pocet vynechanych byte, E - cislo kanalu
bafr : nic
z FD: registry: nemeni
bafr : nic
CLS - uzavreni souboru a kanalu v FD-5
do FD: registry: D - =1 uzavreni kanalu, nezarazeni souboru do direktorare,
do souboru zapsane bloky nejsou vyrazeny z evidence FAT,
E - cislo kanalu
bafr : nic
z FD: registry: nemeni
bafr : nic
DEL - smazani souboru
do FD: registry: nic
bafr (14): mechanika (1), jmeno souboru (9), heslo souboru (4)
z FD: registry: nemeni
bafr : nic
SDR - hledani hlavicky souboru
do FD: registry: nic
bafr (14): mechanika (1), jmeno souboru (9), heslo souboru (4)
z FD: registry: BC - cislo hlavicky
bafr (63): IDTCHN (63)
RDR - precti hlavicku
do FD: registry: BC - cislo hlavicky
bafr (5): mechanika (1), heslo souboru (4)
z FD: registry: A - =0 neplatna hlavicka, soubor byl smazan
bafr (63): IDTCHN (63)
WDR - zapis hlavicku
do FD: registry: BC - cislo hlavicky
bafr (68): mechanika (1), soucasne heslo souboru (4), IDTCHN (63)
z FD: registry: nemeni
bafr : nic
ATR - zmena ochrany souboru
do FD: registry: E - novy atribut ochrany
bafr (14): mechanika (1), jmeno souboru (9), heslo souboru (4)
z FD: registry: nemeni
bafr : nic
CAP - vraci informace o obsazeni prostoru na diskete
do FD: registry: B - mechanika
bafr : nic
z FD: registry: nemeni
bafr (12): pocet bloku vyhrazenych pro data (2), 00 (1),
z toho pocet volnych bloku pro data (2), 00 (1),
vyhrazeny pocet hlavicek souboru (2), 00 (1),
z toho pouzito hlavicek souboru (2), 00 (1)
TDA - opakovani poslednich dat
do FD: registry: nic
bafr : nic
z FD: registry: nemeni
bafr (??): blok dat (??)
TRA - opakovani poslednich registru
do FD: registry: nic
bafr : nic
z FD: registry: posledni registry
bafr : nic
WMM - zapis bloku dat do vnitrni pameti FD-5
do FD: registry: B - delka bloku, DE - na adresu
bafr (B): blok dat (B)
z FD: registry: nemeni
bafr : nic
RMM - cteni bloku dat z vnitrni pameti FD-5
do FD: registry: B - delka bloku, DE - z adresy
bafr : nic
z FD: registry: nemeni
bafr (B): blok dat (B)
EXC - spusteni programu ve vnitrni pameti FD-5
do FD: registry: HL - adresa rutiny
bafr : nic
z FD: registry: odpoved z rutiny
bafr : nic
DOM - prechod do jineho protokolu komunikace. Procesor Z80 komunikuje
s radicem INTEL za pouziti modu sense interrupt, FD-5 komunikuje
s vnejsim svetem ( server ) bez pomoci vyse uvedenych akcnich textu,
ke komunikaci je pouzit princip paketovych zprav.
====== napsal LZR Soft, datum poslední editace: není známo =====