· Text 2919 · w8 · inlagg
På förekommen anledning skall jag be att få göra lite förtydligande.
Om man tänker använda doset mot 832/834 drives så behöver man *INTE*
bry sig om filen UFDPATCH.ASM, då denna redan är gjord i mitt dos.
Att filen överhuvud taget finns med beror på att jag vill visa vad som
är gjort och varför. ( Det finns alltid en utbildningsaspekt att ta
hänsyn till. Jag vill visa att det här med assembler och patchar INTE
är något hokus-pokus ! )
Om man däremot använder andra drive:s i sytemet och vill ha dessa som
default drives ( dvs de som adresseras när man säger DR0: och DR1: )
då KAN man ändra i doset med hjälp av informationen i UFDPATCH.ASM.
Det är alltså INTE NÖDVÄNDIGT att ändra i doset för att uppnå detta
resultat. Man kan lika gärna gå ut i enhetstabellen i RAM och fixa
detta efter start av systemet, t.ex genom START80 som doset letar
efter och försöker starta vid initiering.
Så länge man använder "vanlig" filhanering i BASIC, är nu allt
gott och väl. Men för er som "trixar" kan det behövas lite ändringar
i era specialsnuttar. Jag skall ge några ex. på saker som man måste
ta hänsyn till när man använder drive:s typ 832.
* Ett problem som *ALLA* kommit och frågat om är sektoradresseringen.
Den skall **INTE** vara ggr. 32, utan sektornumret
direkt. ( Ex. CALL(xxxxx%,S%*32%) skall vara CALL(xxxxx%,S%) )
* Antal sektorer uppgår till 2560 ( 0 - 2559 )
Ofta använd i t.ex. FOR ... TO ... eller som test för max sektor.
* Bitmap placering 14,15 ( 14 bitmap, 15 lockout )
I 830 har jag för mig det är 6 och 7 !? Användes oftast för att
räkna ut utrymmet som finns på disken. Då får man ta hänsyn även
till nedanstående.
* Clustersize är 4 istället för 1. Clustersize är det antal sektorer
på skivan som varje bit i bitmapen representerar.
Ex. Clustersize 1 -> 1 bit i bitmapen = 1 sektor (830)
" 4 -> 1 " 4 sektorer (832)
32 -> 1 " 32 " (Winch.)
* Libsectorerna finns på sektorerna 16-32 ( Utom ev. Ufd:er )
På 830 finns de endast på 16-24 ( ** TROR ** jag )
* Disc select kod. ( Det som POKAS in på adr. 64769 innan man
läser/skriver sektorer direkt på disk. )
DR0,1 -> 0, 1 ( Default drive )
MF0,1 -> 8, 9 ( 832 )
MO0,1 -> 12,13 ( 830 ) Författaren ej provat !
SF0,1 -> 16,17 ( 838 ) "
HD0,1 -> 4, 5 ( Winch. ) "
Skulle någon upptäcka felaktigheter så skulle jag bli tacksam om jag
fick
veta detta.
Mvh BER
Ps Det har kommit till min kännedom att programmet LIB.BAC kan ställa
till
problem. Det största är att programmet använder instruktioner som
Ch.sum 11273 inte klarar av. ( Jag har 10042 )
Fix: Byt tolk !
Ett annat är att den öppnar en fil vid namn SYSDIR.SYS.
Fix: Formattera skivorna med det DOSGEN.ABS som ligger i
dir:et ABC80/SYSTEMPR/UFDDOS. Det initierar skivan med
denna "fil".
OBS OBS detta gäller de som kör 832 OBS OBS Ds