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

Radek Suk 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><pre>
Obecne muze byt vice polozek v adresari nez 64 ale neni bezne. Spise by 
chtelo rozvinout diskusi na nejakem konktretnim pripade.

Jinak existuje zavislost a to ta ze kdyz se kontroluje adresar coz se 
dela u FDD ale nedela se to napr. u Ramdisku tak CKS=(DRM+1)/4. Proto 
pri bezne diskete 720KB je DRM=127 a CKS=32.

EXM rika jak velkou pamet popisuje jedna polozka adresare. Bezne se 
popisuje 16KB ale pri vetsich ulozistich je to vice. Napr. pri kdyz je 
zde cislo 3 tak to znamena (3+1)*16=64KB - a tak jeden zaznam v adresari 
umi popsat 64KB dat.

Co se tyce uint8_t dext - tak zde se vyuziva 5 bitu a tak povolene cislo 
je 0..31. - Dalsi bity jsou ulozene v S2 a tam se vyuziva 4 bity. Jinak 
v CR se vyuziva 7 bitu - celkem kdyz to spocitas tak je to 16 bitu a to 
je 2^16*128=8MB a to je max. soubor v cp/m v2.2.

Az bude vice casu tak se chci podivat na to jak jaky system nastavuje RD 
a FDD. Zatim jsem nasel jiste nedostatky a az si potvrdim ze to spravne 
chapu tak bych to zde otevrel k diskusi.

Radek


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