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;
  
libdisk:
physical sector := track*sectrk + sector + offset/secLength;

win32c:
SetFilePointer ((sector+track*sectrk)*secLength)+offset; 

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

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 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 
  
  • cpm/cpmtools.1421331090.txt.gz
  • Zuletzt geändert: 2015/01/15 14:11
  • von volkerp