Konference: Počítač SHARP MZ-800 a emulátory
Od: | Michal Hučík |
Datum: | 1.2.2012 13:46 |
Předmět: | cp/m filesystem |
Ahoj,
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.
Jako zdroj informaci o specifikacich formatu jsem pouzil predevsim tuto stranku http://www.sharpmz.org/succpminfo06.htm
Popis adresarove polozky jsem asi nejak prehlednul, nebo tam neni, nicmene snad jsem jej poskladal dobre i po pameti.
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?
Tady jsou struktury uz s mym komentarem:
#define FS_CPM_LSECTOR_SIZE 128
typedef struct {
uint16_t SPT; // SPT - sectors per track
uint8_t BSH; // BSH - block shift = pocet cp/m log. sectoru v jednom fyzickem
uint8_t BLM; // BLM - block mask = pocet cp/m log. sectoru v clusteru - 1
uint8_t EXM; // EXM - extent mask ???
uint16_t DSM; // DSM - highest block number = max. pocet clusteru - systemove bloky - 1
uint16_t DRM; // DRM - highest directory entry number = max. pocet polozek adresare - 1
uint16_t ALD; // ALD - bitmapa prvnich 16 clusteru, 15. bit = 0. cluster, '1' = pouzito jako directory
uint16_t CKS; // CKS - Directory checksum ???
uint16_t OFS; // OFS - poc. systemovych stop na zacatku disku, ktere preskocime
} FS_CPM_DPB;
/*
* - fname, ani fext neni ukonceno zadnym specialnim znakem
* - nepouzite znaky musi byt vyplneny mezerou (0x20)
* - 7. bit 0. bajtu extenze indikuje priznak R/O
* - 7. bit 1. bajtu extenze indikuje priznak SYS
*/
typedef struct {
uint8_t user; // 0 - 15, 0xe5 = smazana polozka
uint8_t fname[8];
uint8_t fext[3];
uint8_t dext; // cislo extenze (muze jich byt opravdu 256?)
uint8_t unused[2];
uint8_t sectors;
uint16_t clusters[8];
} FS_CPM_DITEM;
Ostatní příspěvky vlákna:
[2012/1 (125)] [2012/2 (34)] [2012/3 (57)] [2012/4 (46)] [2012/5 (40)] [2012/6 (44)] [2012/7 (64)] [2012/8 (57)] [2012/9 (32)] [2012/10 (55)] [2012/11 (25)] [2012/12 (63)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]