Konference: SAPI-1 a československé mikropočítače

Od: Roman Bórik
Datum: 13.9.2011 21:15
Předmět: Re: 5,25 disky


> Tak to mam Romane nejaky jiny vydani. Na 241 az 244 mam prehled funkci
> modulu BDOS. Viz scan, co jsem dal na Drop. Ja to mam na strankach 177-184.

Strany 241 až 244 platia pre tú oscanovanú knihu na Dropboxe
\'SAPI_DOKU\'skeny_dokumentace_bez_retusi_Petr\'MANUAL_CP-M\'

Pre knihu, ktorú zrejme obaja máme, platia strany 177 až 184.

> Ty delky CSV=CKS a ALV=(DSM/8)+1 jsem jiz nasel, maji to popsany u tabulky
> DPH. Uz tomu zacinam trochu rozumet. Jen mi neni jasne, jak se urcuje pro
> konkretni disk BLM - pocet vet v alokacnim bloku. A taky co to je BLS, ze
> kteryho se urcuje EXM.
> Je to spravne, ze DSM je kapacita disku minus kapacita systemovych stop?

Príklad vytvorenia tabuliek diskových parametrov v prílohe.

> Taky jak se pomoci Offestu a DSM udela dalsi logicky disk. Pokud bych chtel
> RMD-1/1MB rozdelit na dva 0,5 Mb tak takhle? On je totiz docela problem s
> treba s vypisem adresare na velkym disku. Navic je to dost neprehledny. Me
> vypis zastavuje az po 24 radku a AND-1 ma jen 20 radku. Asi by to slo
> upravit v CCP.
> ;pro RMD1, 256 alokacnich bloku velikosti 2kB, 64 polozek adresare

Opravené tabuľky:

DPB_1:   DW 16     ; SPT
        DB 4      ; BSH
        DB 15     ; BLM
        DB 1      ; EXM
        DW 255    ; DSM
        DW 63     ; DRM
        DB 128    ; AL0
        DB 0      ; AL1
        DW 0     ; CKS
        DW 0      ; OFF

DPB_2:   DW 16     ; SPT
        DB 4      ; BSH
        DB 15     ; BLM
        DB 1      ; EXM
        DW 255    ; DSM
        DW 63     ; DRM
        DB 128    ; AL0
        DB 0      ; AL1
        DW 0     ; CKS
        DW 256  ; OFF

ALV_1: DS 32 ;ALOKACNI VEKTOR
ALV_2: DS 32 ;ALOKACNI VEKTOR

> A jeste jednu vec. Pokud bude mit disketa sektor 256 nebo 512byte,
> predpokladam, ze se pri BOOT ctou primo 256 (512) byte sektory do pameti. Uz
> jsem sice videl, ze jeden formatovaci program nabizel formatovani
> systemovych stop na 128 byte a zbytek disku 256 bytu. Chodi potom Sysgen?
> Ten je prece nastavenej natvrdo na 128 byte a pocet sektoru a stop na 8".

BOOT je zvyčajne špeciálny prípad a často existujú osobitné rutiny,
 ktoré systém načítavajú.
To ako bude BOOT systém načítavať závisí teda aj od SYSGENu.

Štandardný SYSGEN (ktorého zdrojáky boli dodávané s pôvodným CP/M)
predpokladá, že systém je umiestnený na prvých dvoch stopách, na ktoreých
je po 26 sektorov a skew factor je 1, teda, že sektory nie sú poprehadzované.
Sektory sú čítané a zapisované priamo rutinami BIOSu.
To znamená, že aj keď bude fyzický sektor väčší ako 128 bytov, rutiny
READ a WRITE BIOSu budú zapisovať správne, keďže musia mať implementovaný
blokovací-deblokovací algoritmus pre "transformáciu" logického sektora na
fyzický.
Ak si vezmeme náš ukážkový príklad s 5,25" diskom, tak SYSGEN zapíše
systém pripravený od adresy 0900h v pamäti na disk tak, že na 0. stope bude 
prvých 26 logických sektorov systému a na 1. stope bude zostávajúcich 26
logických sektorov systému. Na každej stope bude teda nevyužitých po 10
logických sektorov.

Takže BOOT kód musí rovnakým spôsobom systém načítať. Pochopiteľne s
použitím nejakého kódu v EPROM, keďže  BIOS sa ešte len bude
načítavať.

Pokiaľ by mal byť systém rozložený inak, alebo by mal byť väčší, musel
by sa SYSGEN upraviť pre daný prípad.

Roman

Připojené soubory:

cpm-tabulky-diskov.txt

Ostatní příspěvky vlákna:

 
[2011/2 (7)] [2011/3 (12)] [2011/5 (50)] [2011/6 (18)] [2011/7 (112)] [2011/8 (192)] [2011/9 (94)] [2011/10 (16)] [2011/11 (46)] [2011/12 (39)]


[2010 (676)] [2011 (586)] [2012 (976)] [2013 (538)]