Dies ist eine alte Version des Dokuments!
Cpmtools
http://www.moria.de/~michael/cpmtools/
Format description
diskdef name format definition seclen n 128,256,512,1024,.. Sector length tracks n 1.. Number of tracks sectrk n 1.. Sectors per track blocksize n 1024,2048,4096,8192,16384 Block size maxdir n 1.. Number of directory entries skew n 0.. Logical sector skew skewtab r1,r2,r3,... skew table boottrk n Number of system tracks offset n | nK | nM | nT n Byte|n Kilobyte|n Megabyte|n Tracks logicalextents Logical extents per physical extent os 2.2 | 3 | isx | p2dos | zsys libdsk:format name pcw720, cpcsys end Berechnungen: size := (secLength*sectrk*(tracks-boottrk))/blksiz; if (extents==0) extents := ((size>=256 ? 8 : 16)*blksiz)/16384; if (extents==0) extents := 1; Allocatabledatablocks := size-(maxdir*32+blksiz-1)/blksiz); posix: physical pos := ((sector+track*sectrk)*secLength)+offset; win32c: SetFilePointer := ((sector+track*sectrk)*secLength)+offset; libdisk: physical sector := track*sectrk + sector + offset/secLength;
Viele Hinweise zu libsk, cpmtools, … und zur Analyse unbekannter Disketten gibt's von Larry Kraemer auf http://forums.debian.net/viewtopic.php?f=16&t=112244
Build
Erzeugen mit MINGW/MSYS
#------------------------------------------------------------------------------ # libdsk #------------------------------------------------------------------------------ tar zxvf libdsk-1.3.3.tar.gz cd libdsk-1.3.3 ./configure make strip *.exe make install cd .. #------------------------------------------------------------------------------ # cpmtools #------------------------------------------------------------------------------ PDCurses installieren, d:\devtools\MinGW\include\curses.h heißt schon richtig? cd d:\devtools\MinGW\lib\ copy libpdcurses.a libcurses.a #------------------------------------------------------------------------------ tar zxvf cpmtools-2.13.tar.gz cd cpmtools-2.13 ./configure --with-diskdefs="" --with-defformat="default" --with-libdsk=/local/ make make -i install strip /local/bin/*.exe #------------------------------------------------------------------------------ tar zxvf cpmtools-2.18.tar.gz cd cpmtools-2.18 es gibt Compiler-Probleme mit den mitgelieferten getopt-Daten, deshalb - in Makefile.in "getopt$(OBJEXT) getopt1$(OBJEXT) " überall löschen - leere Datei getopt_.h anlegen (oder vorhandene leeren) ./configure --with-diskdefs="" --with-defformat="default" --with-libdsk=/local/ make strip *.exe make -i install
Changes
Changes since 2.19: o Fixed bug in cpmfs leading to wrongly allocated blocks Changes since 2.18: o More diskdefs entries o New diskdefs option to set the libdsk format o Fixed various warnings o Fixed Makefile if building without curses Changes since 2.17: o Make timestamps in mkfs.com optional and add date stamper creation o Better cpm.5 documentation o Updated config.guess o Fixed error handling for corrupt images or diskdefs o Fixed off by one bug in fsck not detecting a wrong block number o Fixed too short directory buffer for directory sizes not matching whole blocks Changes since 2.16: o Improved filesystem documentation o Many new diskdefs o device_win32.c fixed by Bill Buckels Changes since 2.15: * Various small fixes * Datestamper support * Image offset to access disk slices
d:\user\pohlers\AltairSIMH>dskscan -formats Disk formats supported:
pcw180 : PCW / IBM 180k cpcsys : CPC System cpcdata : CPC Data pcw720 : PCW / IBM 720k pcw1440 : PcW16 / IBM 1440k ibm160 : IBM 160k (CP/M-86 / DOSPLUS) ibm320 : IBM 320k (CP/M-86 / DOSPLUS) ibm360 : IBM 360k (CP/M-86 / DOSPLUS) ibm720 : IBM 720k (144FEAT) ibm1200 : IBM 1.2M (144FEAT) ibm1440 : IBM 1.4M (144FEAT) acorn160 : Acorn 160k acorn320 : Acorn 320k acorn640 : Acorn 640k acorn800 : Acorn 800k acorn1600 : Acorn 1600k pcw800 : PCW 800k pcw200 : PCW 200k bbc100 : BBC 100k bbc200 : BBC 200k mbee400 : Microbee 400k mgt800 : MGT 800k trdos640 : TR-DOS 640k ampro200 : Ampro 40 track single-sided ampro400d : Ampro 40 track double-sided ampro400s : Ampro 80 track single-sided ampro800 : Ampro 80 track double-sided myz80 : MYZ80 8Mb pcpm320 : IBM 320k (CP/M-86 / DOSPLUS)