[SharpMZ] MZFS a program ipldisk

Michal Hucik - ORDOZ ordoz na ordoz.com
Úterý Leden 16 18:28:40 CET 2018


Opet trochu zkoumam limity a flexibilitu MZFS formatu. Pri te 
prilezitosti jsem narazil na nekolik chyb v programu IPLDISK, ktery je 
pro mne krom BASICu jedinym znamym nastrojem, ktery pracuje s MZFS. Vite 
na MZ800 i o nejakych dalsich programech pracujicich s MZFS?

Predpokladam, ze MZFS se vyvinul napr. na MZ80B, pak byl portovan na 
MZ700 a odtud jej zdedil MZ800 BASIC. Nenarazili jste nahodou nekdo na 
nejake povidani o strukture? Znam jen toto 
http://www.sharpmz.org/mz-700/dskdetail1.htm

Zajimalo by mne, zda je nekde nejak zohlednovano volume id, ktere v 15 
bloku definuje master a slave disk - kod BASICu jsem nezkoumal, ale 
neprislo mi, ze by na zmenu tohoto bajtu nejak reagoval. IPLDISK tento 
bajt pri formatu nastavuje do hodnoty 0x01 - slave, nicmene hodnota uz 
se nezmeni ani po te co se na disk nahraje bootstrap program.

Stejne tak prvnich 32 bajtu v 16 bloku na zacatku adresare. Ve 
screenshotu na sharpmz ten blok zacina hodnotou 0x80, nasledovan 0x00. 
Na MZ800 opet neznam jiny formatovaci program, nez IPLDISK a ten do 
tohoto prostoru cpe konstantu 0x80, 0x01 a zbytek pak vyplni 0x00 ... 
vyznam techto bajtu i duvod toho rozdilu uz asi nezjistime. Kazdopadne 
BASIC pred kazdym zapisem na disk nacita nejen 15. block, ve kterem je 
discinfo, ale i 16. block ve kterem je prave techto 32 bajtu a pokud v 
tom prvnim bajtu neni nastaven 7. bit, tak BASIC hlasi system id error. 
Tedy nejaky hlubsi vyznam to zrejme ma. Jedinou cestou k dalsim moznym 
informacim je mozna disassemblovani diskoveho BASICu, do cehoz se mi moc 
nechce.

ad IPLDISK - mam tady verzi v1.3 - nemate treba nekdo vyssi verzi, ktera 
by fixovala nize popsane chyby?

Pri experimentovani s FSMZ jsem u tohoto programu narazil na nasledujici:

1) vzdy natvrdo pracuje s tim, ze filearea zacina od 48. bloku a 
ignoruje jeji nastaveni v disc info bloku - to asi neni az tak fatalni

2) pri nahravani programu CMT -> FD nekontroluje, zda se nahodou nejedna 
o duplicitni polozku a klidne soubor ulozi do adresare s takovym jmenem, 
jake precetl z headeru - pokud se jedna o BASIC, tak se takovy soubor 
stane nedostupnym - vzdy se bude pracovat s prvnim, ktery je nalezen v 
adresari

3) BASIC akceptuje 8 sektoru adresare (16. - 23. blok), tedy max. 63 
souboru. IPLDISK povazuje za adresar celou stopu, tzn 16 sektoru (16. az 
31. blok), tedy max 127 souboru - tohle je docela prusvih, protoze pokud 
jste si nekdy pres IPLDISK nahrali na disketu soubory se kterymi jste 
chteli pracovat z BASICu, tak uz jste ve v BASICu nikdy nenasli - 
pamatuju, ze tohle se mi parkrat stalo.

Michal




Další informace o konferenci SharpMZ