Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| cpm:cpmtools [2015/01/15 10:49] – angelegt volkerp | cpm:cpmtools [2024/04/10 06:27] (aktuell) – [Format description] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| http:// | http:// | ||
| - | Format description | + | GUI -> http:// |
| + | |||
| + | https:// | ||
| + | |||
| + | ===== Format description | ||
| < | < | ||
| diskdef name format definition | diskdef name format definition | ||
| - | seclen n 128, | + | seclen n 128, |
| - | tracks n 1.. Number of tracks | + | tracks n 1.. Number of tracks |
| - | sectrk n 1.. Sectors per track | + | sectrk n 1.. phys. Sectors per track |
| - | blocksize n 1024, | + | blocksize n 1024, |
| - | maxdir n 1.. Number of directory entries | + | maxdir n 1.. Number of directory entries |
| + | boottrk n Number of system tracks | ||
| + | rest is optional | ||
| + | dirblks n to allow reserving blocks after the directory using an inflated DPB ALV0 (since 2.21) | ||
| + | bootsec n total numbers of sectors used by the boot area | ||
| skew n 0.. Logical sector skew | skew n 0.. Logical sector skew | ||
| skewtab r1, | skewtab r1, | ||
| - | | + | offset n | nK | nM | nT | nS n Byte|n Kilobyte|n Megabyte|n Tracks|n Sectors |
| - | | + | logicalextents |
| - | logicalextents Logical extents per physical extent | + | |
| os 2.2 | 3 | isx | p2dos | zsys | os 2.2 | 3 | isx | p2dos | zsys | ||
| - | libdsk: | + | libdsk: |
| end | end | ||
| Zeile 25: | Zeile 33: | ||
| Berechnungen: | Berechnungen: | ||
| - | size := (secLength*sectrk*(tracks-boottrk))/ | + | size := (secLength*sectrk*(tracks-boottrk))/ |
| if (extents==0) extents := ((size> | if (extents==0) extents := ((size> | ||
| Allocatabledatablocks := size-(maxdir*32+blksiz-1)/ | Allocatabledatablocks := size-(maxdir*32+blksiz-1)/ | ||
| posix: | posix: | ||
| - | physical pos := (sector+track*sectrk)*secLength)+offset; | + | physical pos := ((sector+track*sectrk)*secLength)+offset; |
| | | ||
| + | win32c: | ||
| + | SetFilePointer := ((sector+track*sectrk)*secLength)+offset; | ||
| + | |||
| libdisk: | libdisk: | ||
| - | physical sector := track*sectrk + sector + offset/ | + | physical sector := (track*sectrk + sector) + offset/ |
| - | win32c: | ||
| - | SetFilePointer ((sector+track*sectrk)*secLength)+offset; | ||
| </ | </ | ||
| + | |||
| + | Viele Hinweise zu libsk, cpmtools, ... und zur Analyse unbekannter Disketten gibt's von Larry Kraemer auf | ||
| + | http:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== 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, | ||
| + | |||
| + | cd d: | ||
| + | copy libpdcurses.a libcurses.a | ||
| + | |||
| + | # | ||
| + | |||
| + | tar zxvf cpmtools-2.13.tar.gz | ||
| + | cd cpmtools-2.13 | ||
| + | ./configure --with-diskdefs="" | ||
| + | make | ||
| + | make -i install | ||
| + | strip / | ||
| + | |||
| + | # | ||
| + | |||
| + | tar zxvf cpmtools-2.18.tar.gz | ||
| + | cd cpmtools-2.18 | ||
| + | |||
| + | es gibt Compiler-Probleme mit den mitgelieferten getopt-Daten, | ||
| + | - in Makefile.in " | ||
| + | - leere Datei getopt_.h anlegen (oder vorhandene leeren) | ||
| + | |||
| + | ./configure --with-diskdefs="" | ||
| + | make | ||
| + | strip *.exe | ||
| + | make -i install | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Changes ===== | ||
| + | |||
| + | < | ||
| + | Changes since 2.22: | ||
| + | |||
| + | o Use 16 bit block pointers for file systems > 256 blocks, not >= 256 | ||
| + | o Translate CP/M file name character '/' | ||
| + | o dirblks in Kaypro format fixed | ||
| + | o Misc fixes for directory listing | ||
| + | o Added bootsec diskdefs option | ||
| + | o Check Device_close return value | ||
| + | o Check for too small block number when reading file data | ||
| + | o Replaced obsolete macros in configure.in | ||
| + | o Cygwin/ | ||
| + | some time, so it was removed. | ||
| + | |||
| + | |||
| + | Changes since 2.21: | ||
| + | |||
| + | o Refactored curses terminal calls into own module | ||
| + | o Many autoconf changes with the hope to improve portability and | ||
| + | | ||
| + | o New diskdef for HP200 | ||
| + | o Added dirblks to allow reserving blocks after the directory | ||
| + | as used by Kaypro | ||
| + | o Fixed user number output for cpmls -d | ||
| + | o Added option -u to show all CP/M file names in uppercase | ||
| + | |||
| + | |||
| + | Changes since 2.20: | ||
| + | |||
| + | o rc759 diskdef renamed to rc75x, as it works for the series | ||
| + | o diskdefs.5 added | ||
| + | o Many disk formats from Larry Kraemer added | ||
| + | o Renamed ampdsdd to ampro400d for consistency with libdsk and because | ||
| + | | ||
| + | o Check for invalid block size | ||
| + | o Output line number for diskdefs errors | ||
| + | o Correctly output create or access time for CP/M 3 in cpmls | ||
| + | o Spectravideo SVI-728 diskdef added | ||
| + | o $DESTDIR support | ||
| + | o Correctly handle empty files | ||
| + | o Fix block allocation for large directories. | ||
| + | o Fix time stamp conversion | ||
| + | o Allow user number 16-31 for CP/M 2.2 | ||
| + | o Intel MDS/22 formats added | ||
| + | o Crash when using blocksize 16384 fixed | ||
| + | |||
| + | 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 | ||
| + | | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== libdisk-Formate und Typen ===== | ||
| + | |||
| + | < | ||
| + | d:> | ||
| + | Disk formats supported: | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | d:> | ||
| + | Disk image types supported: | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||