LIBDSK is a library for accessing discs and disc image files. It is intended for use in:
- Emulator tools - converting between real floppy discs and disc images, as CPCTRANS / PCWTRANS do under DOS.
- Filesystem utilities - CPMTOOLS is configurable to use LIBDSK, thus allowing the use of CPMTOOLS on emulator .DSK images. To do this, install LIBDSK and then build CPMTOOLS, using "./configure --with-libdsk". For CPMTOOLS 1.9 or 2.0, you will also need to apply this patch.
- Emulators - it is possible to use LIBDSK as part of an emulator's floppy controller emulation, thus giving the emulator transparent access to .DSK files or real discs.
- Bugfixes: Corrected various faults in the IMD file driver.
- Added a 'complement' flag to the recording mode, allowing support of disk images where all bytes are stored complemented.
- New backend: JV3 (for TRS-80 disc images in the JV3 format) .
New in 1.5.x
- The LDBS format has been updated to support round-trip compatibility with the further EDSK extensions.
- DSK, EDSK, ApriDisk, CFI, IMD, JV3, CopyQM and TeleDisk drivers have all been rewritten to use LDBS for intermediate storage.
- New utility: dskconv (convert a disc image file from one format to another)
- New backend: QRST (for the Compaq Quick Release Sector Transfer format)
- New backend: LDBS (for the LDBS format)
LIBDSK has drivers for:
- Raw files (including /dev/fdn).
- Raw files, rearranged into logical filesystem order.
- .DSK files, as used in CPCEMU, JOYCE and other Sinclair/Amstrad emulators.
- MYZ80 hard drive image files.
- NanoWasp floppy image files.
- .CFI (Compressed Floppy Image) files, as created by FDCOPY.COM under DOS.
- The Linux floppy drive (supports CPC System and Data formats, which the standard "Raw file" driver does not).
- The Windows 3.x/95/98/ME/NT/2000 floppy drive.
- The DOS floppy drive (via the PC BIOS).
- CopyQM files
- TeleDisk files
- Compaq QRST files
- APRIDISK image files
- The LDBS format
- rcpmfs - a backend that makes a Unix/Windows directory appear to be a CP/M disc image.
- Another instance of LibDsk over a serial line.
Stable version: libdsk-1.4.2.tar.gz
Development version: libdsk-1.5.4.tar.gz
Debian packages by Darren Salt.
Packages for Fedora Core 2 and Redhat 9 by Ian Chapman.
Lib765 is the floppy controller emulation from JOYCE, separately packaged. It is (in some sense) the reverse of LibDsk; it converts uPD765a commands into LibDsk API calls. It should come in handy if you're writing a PCW, CPC or Spectrum+3 emulator; if you want to use it in a PC emulator, you'll need to add features such as DMA.
New in v0.4.x
- (v0.4.2) Increased buffer size to fix multisector reads on high-density disc images.
- (v0.4.1) Removed spurious references to LIBDSK_EXPOSES_DIRTY.
- (v0.4.0) Initial support for multisector reads.
The Diskette Tools program is a GUI front-end to LibDsk. It doesn't do any more than the provided sample utilities, but it looks nicer.
dsktool103.zip (1473k): Compiled version for Windows, including source code.
AUXD is a server for CP/M, allowing drives from CP/M systems to be made available to LibDsk over a serial link. Two versions are included - a generic CP/M server, and one for Amstrad PCW/CPC/Spectrum +3 CP/M.
auxd.zip (62k) - source code and compiled programs.
John Elliott 2017-03-03