[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