Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Michal Hučík Zpět na příspěvek

Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).

<!-------------------------------------------------------------->

<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR>     <font><br/> Ahoj,<br/> <br/> postupuji dale a zacinam tedy pracovat na cp/m filesystemu, ktery je jiz mnohem variabilnejsi a u ktereho bude zajimave vytvorit i drivery pro RD, RD image a pripadne i pro IDE - nicmene prozatim je funkcni jen IDE8 v NIPOSu.<br/> <br/> Jako zdroj informaci o specifikacich formatu jsem pouzil predevsim tuto stranku <a href="http://www.sharpmz.org/succpminfo06.htm">http://www.sharpmz.org/succpminfo06.htm</a><br/> <br/> Popis adresarove polozky jsem asi nejak prehlednul, nebo tam neni, nicmene snad jsem jej poskladal dobre i po pameti.<br/> <br/> I pres popis jsem bohuzel nejak nepochopil vyznam polozek EXM a CKS. Taky mi vrta hlavou informace, kterou tady pred nedavnem napsal tusim Radek, ze v cp/m na logickem disku nemuze byt vice jak 64 souboru. Pokud vite, muzete mi prosim pomoci zodpovedet tyto 3 veci?<br/> <br/> Tady jsou struktury uz s mym komentarem:<br/> <br/> #define FS_CPM_LSECTOR_SIZE     128<br/> <br/> typedef struct {<br/>     uint16_t    SPT;    // SPT - sectors per track<br/>     uint8_t     BSH;    // BSH - block shift = pocet cp/m log. sectoru v jednom fyzickem<br/>     uint8_t     BLM;    // BLM - block mask = pocet cp/m log. sectoru v clusteru - 1<br/>     uint8_t     EXM;    // EXM - extent mask ???<br/>     uint16_t    DSM;    // DSM - highest block number = max. pocet clusteru - systemove bloky - 1<br/>     uint16_t    DRM;    // DRM - highest directory entry number = max. pocet polozek adresare - 1<br/>     uint16_t    ALD;    // ALD - bitmapa prvnich 16 clusteru, 15. bit = 0. cluster, '1' = pouzito jako directory<br/>     uint16_t    CKS;    // CKS - Directory checksum ???<br/>     uint16_t    OFS;    // OFS - poc. systemovych stop na zacatku disku, ktere preskocime<br/> } FS_CPM_DPB;<br/> <br/> <br/> /*<br/>  * - fname, ani fext neni ukonceno zadnym specialnim znakem<br/>  * - nepouzite znaky musi byt vyplneny mezerou (0x20)<br/>  * - 7. bit 0. bajtu extenze indikuje priznak R/O<br/>  * - 7. bit 1. bajtu extenze indikuje priznak SYS<br/> */<br/> typedef struct {<br/>     uint8_t     user;           // 0 - 15, 0xe5 = smazana polozka<br/>     uint8_t     fname[8];<br/>     uint8_t     fext[3];<br/>     uint8_t     dext;        // cislo extenze (muze jich byt opravdu 256?)<br/>     uint8_t     unused[2];<br/>     uint8_t     sectors;<br/>     uint16_t    clusters[8];<br/> } FS_CPM_DITEM;   <br/> <br/> <br/> </font>