2019-08-23 John Elliott

	* libdsk-1.5.12 released.

	* LDBS driver: Fixed geometry probe when dealing with non-power-of-2
	 sector sizes.

2019-07-27 John Elliott

	* libdsk-1.5.11 released.

2019-07-20 John Elliott

	* New driver: dc42 (for Apple DiskCopy 4.2 disk images. This 
	 required an update to LDBS to support GCR encoding, so the
	 LDBS format now stands at version 0.4. This should be forward-
	 and backward-compatible with existing files in LDBS 0.3 format.

2019-07-06 John Elliott

	* QRST: Added transparent decompression for QRST v5 disk images.

	* Gotek driver: Added support for 720k disk image collections 
	 (as written by the SFRM72-TU100K firmware)

2019-02-17 John Elliott

	* dsk_getgeom(): Added rudimentary support for detecting Apple 
	 HFS 1.4Mb format. This allows dsklabel and lsgotek to display 
	 the labels of Apple-format disc images.

	 Support for 400k and 800k formats is going to have to wait until
	 I can work out how to represent them in a DSK_GEOMETRY structure!

	* Gotek driver: Added the ability to select which drive image is
	 current without closing and reopening (using the driver-specific
	 option GOTEK:PARTITION). This should improve performance of
	 lsgotek under Windows.

2019-01-17 John Elliott

	* libdsk-1.5.10 released.

2019-01-01 John Elliott

	* dsktrans, dskform, dskdump: Output filetype always defaulted to 
	 'dsk'. Attempt to come up with a reasonable default based on
	 the filename (which can be overridden if required)

	* The compression type 'none' can be used to disable auto-expansion
	 of compressed disc images (necessary if you are writing compressed
	 data such as the Slackware installer without decompression).

	* Geometry probe: Rewrite the DFS boot block check so that LibDsk
	 has a sporting chance of detecting DFS-format media.

	* New utility: dsklabel (get / set label on DOS, CP/M or DFS media)

	* New utility: lsgotek (list the drive images on a Gotek-format USB
	 drive)

	* New driver: gotek (allows access to Gotek-format drive emulation
	 disc images stored on a USB key)

	* More bug fixes from Mark Ogden: Incorrect results returned by the
	 geometry probe in LDBS-based formats, and accessing sectors with
	 dsk_lread() on disc images with 'extended surface' layout.

	* dskutil: Swapped "sectors / track" and "sectors / cylinder"
	 captions (Mark Ogden).

	* Fixed some memory corruption issues detected by VS2017 analysis
	 (Mark Ogden).

	* dskform: Widened total_sectors32 to 32 bits (Mark Ogden).

	* apridisk: Fixed a crash writing to Apridisk files.

2018-09-18 John Elliott

	* libdsk-1.5.9 released.

	* Fixed compilation issue on recent glibc (Steven Fosdick).

	* dskform: Added -pcdos and -apricot options to create FAT12 
	 filesystems.

2018-04-09 John Elliott

	* SAP: New disk image format implemented (Thanks to Emulix75).

2018-02-06 John Elliott

	* libdsk-1.5.8 released.

	* Teledisk driver: Drive type guesser had types 1 and 2 (5.25" 48tpi 
	 and 96tpi) round the wrong way.

2018-01-31 John Elliott

	* libdsk-1.5.7 released.

	* Teledisk driver: Improved drive type guesser to cope with FM 
	 recording, sector sizes other than 512, extended-surface format 
	 discs.

2018-01-26 John Elliott

	* libdsk-1.5.6 released.

	* Teledisk driver: Make a stab at guessing the drive type when
	 converting a disk image to Teledisk format.

2018-01-10 John Elliott

	* Geometry probe: Change the behaviour so that dsk_getgeometry()
	 on a raw-format disc image of a DOS 1.4M disc comes up with 
	 the correct data rate.

2017-10-29 John Elliott

	* libsk-1.5.5 released.

	* POSIX: Integer underflow when formatting a track, causing a 
		 file of infinite size to be written. 

	* POSIX: Sanity-check sector numbers passed to the driver, 
		 for another integer underflow.

2017-03-14 John Elliott

	* DSK: Rewritten to support Simon Owen's 'Offset-Info' extension. 
		DSK files using Offset-Info cannot be readily rewritten 
		in-place, so the DSK driver now uses LDBS as an intermediate
		format.

	* LDBS: In order to support the 'Offset-Info' extension properly,
		the LDBS file format has changed and the reference 
		implementation updated accordingly. LDBS files generated by
		previous versions of LibDsk are still supported for now.

2017-03-03 John Elliott

	* New backend: Compaq QRST (Quick Release Sector Transfer).

	* New utility: dskconv -- convert a disc image file from one format
		to another using LDBS as an intermediate format.

	* ApriDisk, CFI, IMD, JV3, CopyQM and TeleDisk: All these drivers
		have been rewritten to use LDBS for intermediate storage,
		rather than each one using its own internal storage system.

	* All drivers: Driver names now allow aliases (eg, 'td0' as a synonym
		for 'teledisk').

	* Win16 port no longer supports TeleDisk or CopyQM drivers (Win16 
	 	DLLs have not access to sscanf() )

2016-11-01 John Elliott

	* libdsk-1.5.2 released. Changes from libdsk 1.4.2 merged:

	* Geometry probe: Make the Apricot BPB check more discerning.
	* IMD: Support IMD files with no comment (header line is followed
	      immediately by 0x1A).
	* IMD: Fixed segfault when writing IMD file if number of tracks is not
		20,40,80 or 160.

2016-03-18 John Elliott

	* libdsk-1.5.0 released.

	* New driver: LDBS ('LibDsk Block Store'), a new disc image 
	 format under development. 

2015-12-28 John Elliott

	* libdsk-1.4.1 released.

	* General: Added a 'complement' flag to the recording mode,
	 allowing support of disk images where all bytes are stored 
	 complemented.

2015-12-15 John Elliott

	* OK, let's call it stable: libdsk-1.4.0 released.

2015-05-01 John Elliott

	* libdsk-1.3.9 released.

	* New backend: JV3 (for TRS-80 'JV3' disc images). These have no
	 magic number, so must be specified manually.

2015-04-24 John Elliott

	* libdsk-1.3.8 released.

	* IMD bugfix: Geometry probe was returning an incorrect data rate
		     for HD disks.

2015-04-21 John Elliott

	* libdsk-1.3.7 released.

	* New geometry type added: "extsurface", for discs where the sector
	 numbers increase across both sides (eg: 1-9 on side 0, 10-18 on 
	 side 1).

	* New backend: IMD (for files created by ImageDisk). Read/write
	 support. Also has a built-in extra geometry probe, which may be worth
	 pushing to other drivers (eg: DSK, TD0) that carry a similar amount 
	 of detail.

2015-01-06 John Elliott

	* Configure script: winioctl.h was not being detected. Also
			updated to autoconf 2.69
	* dsk_getgeom: Fixed C89 compilation issue.

2014-03-02 John Elliott

	* libdsk-1.3.5 released.
	* Teledisk: Added read-only support for 'advanced' compression.
	 Based on wteledsk decompression code by Will Kranz (relicensed
	 under LGPLv2, with permission).
	* Teledisk: Check CRC of header before opening disk image.
	* dg_stdgeom(): Built-in geometry specifications were out of step 
	 with the corresponding dsk_format_t numbers. This wouldn't have 
	 affected setting formats by name, but some of the automatic geometry 
	 probes could have returned an incorrect geometry.
	* dsk_getgeom(): Added four Ampro formats: ampro200, ampro400d, 
	 ampro400s and ampro800. These correspond to formats AMP1-AMP4 
	 under 22DISK. The double-sided ones can be autodetected  by
	 dsk_getgeom(); sadly, the single-sided ones can't.
	* dsk_typedesc_enum(): New function to enumerate driver 
	 descriptions without needing to open a disk image in each 
	 format in turn.
	* Utilities: All utilities now take options '-types' and '-formats' 
	 to list supported drivers and disk formats. 
	* dsktest: New -libdskrc argument to dump all known disk formats
	 in .libdskrc format.

2014-03-01 John Elliott

	* libdsk-1.3.4 released.
	* Documentation fix: 'teledisk' -> 'tele'
	* Included an example .libdskrc file.
	* Set the dirty flag when a drive comment is changed.

2011-04-20 John Elliott (based on patches from Ralf-Peter Nerlich)

	* Replacement CopyQM driver
	* All utilities now use basename() (if available) to trim paths
	 from argv[0]

2011-03-29 John Elliott

	* dsk_creat: Check that this method is implemented before calling		 it.
	* dskutil: Correct the description of the 'W' command (Ralf-Peter 
	 Nerlich)

2011-01-10 John Elliott

	* rcpmfs: Added support for the ISX variant of the CP/M 2 format.

2010-09-27 John Elliott

	* libdsk-1.3.3 released.
	* rcpmfs: Buffer overflow when renaming a file with a full 8.3 name
		and a nonzero user number. [Thanks to Jurgen Sievers]

2010-06-28 John Elliott

	* Updated to latest autotools, various compiler warnings fixed.

2009-11-07 John Elliott

	* libdsk-1.3.2 released.

2009-11-07 Jacob Nevins

	* CFI format: Ensure that status messages are correctly removed.

2009-05-14 John Elliott

	* Geometry probe: Support Opus Discovery disks.

2008-12-26 John Elliott

	* Linux floppy driver: Do an FDCLRPRM when opening the floppy drive.
	This seems to be necessary to force a seek on the first read. 
	[Thanks to Stewart Kay]	

2008-08-24 John Elliott

	* CPCEMU format: Corrected a problem with signed/unsigned integer
	 comparison.

2008-08-16 John Elliott

	* Fixed some compiler warnings under 16-bit DOS.
	* Added a -comment option to dsktrans, allowing the comment to be
	 set when disks are imaged.

2008-06-07 John Elliott
	
	* libdsk-1.3.0 released.
	* Added support for SIMH disc image format.

2008-06-01 John Elliott

	* Added support for YAZE ydsk format.
	* Added skeletal support for IBM dskf format (not yet functional).
	* Added knowledge of filesystem parameters, since both the above 
	 formats require these as part of their metadata. 

2008-04-02 Alistair John Bush

	* Patched Makefile.am to pass JAVACFLAGS to Java compiler.

2008-01-23 John Elliott

	* libdsk-1.2.1 released.

2008-01-19 Sven Klose

	* Corrected a compilation problem on FreeBSD.

2008-01-12 John Elliott

	* Corrected a bug which caused rcpmfs to give 'overrun' errors 
	 when emulating a CP/M 2 filesystem.

2007-12-17 John Elliott

	* libdsk-1.2.0 released.

2007-12-10 John Elliott

	* Removed O_CREAT from attempts to open serial ports.
	* For some reason I commented out the ibm320 format between 
	 libdsk-1.1.2 and libdsk-1.1.3. Can't think why. Uncommented it.
	* Removed a couple of C99 style comments (//) which prevented 
	 compilation on really old gcc versions.

2007-07-27 John Elliott

	* libdsk-1.1.14 released.

2007-06-11 Stuart Brady

	* Added a new geometry (FMT_TRDOS640).

2007-06-10 John Elliott

	* Updated the DOS and Windows projects with the new drivers
	 (the Teledisk one didn't compile under Win16).

2007-06-09 John Elliott

	* libdsk-1.1.13 released. 

	* New driver: Logical. This is a raw disc image as generated by 
	 'dsktrans -logical'; that is, it is arranged in logical sector order 
	 rather than SIDES_ALT order. Useful for dealing with raw disc images
	 that were dumped in logical order.
	* dsktrans: The -logical option has accordingly been deprecated, 
	 since '-otype logical' should have the same effect.

2007-06-02 John Elliott

	* New driver: Teledisk, based on the file format documentation at
	 <http://www.fpns.net/willy/wteledsk.htm>. This driver is read-only.
	 No code from WTELEDSK has been used, because it's GPLed rather than
	 LGPLed.

2006-11-18 John Elliott

	* libdsk-1.1.12 released.

2006-08-02 John Elliott

	* cpcemu driver: Bug fix when a sector is not found and it has
	 to start searching again at the beginning of the track.

2006-07-23 John Elliott

	* libdsk-1.1.11 released.

2006-07-02 Ramlaid <www.ramlaid.com>

	* cpcemu driver: Modified so that the dsk_trkids() function more
	 accurately reflects the result from a real disk. Also exposed the
	 ST0-ST3 registers.
	* SQ compression: Doesn't leak file handles if file not compressed.
	* NTWDM driver: Uses the passed sector size in dsk_xread / dsk_xwrite 
	 rather than the sector size in the geometry structure.

2006-04-18 John Elliott

	* libdsk-1.1.10 released.

2006-04-11 John Elliott

	* Extended the Apricot -> PCDOS boot sector conversion code to save
	 a copy of the original boot sector.
	* Created a reverse conversion, PCDOS -> Apricot
	* dsktrans: The -apricot option now converts *to* Apricot format,
	 not *from*. A -pcdos option has been added to convert from Apricot
	 to PCDOS format.
	* A new utility, apriboot, just rewrites the boot sector in place.

2006-04-07 John Elliott

	* Made a start on a driver for Apricot MS-DOS.

2006-04-01 John Elliott

	* Corrected a problem in the Linux floppy driver that caused 'no data'
	 errors reading 70-track Apricot discs if the geometry was probed
	 automatically. 

2006-01-21 John Elliott

	* libdsk-1.1.9 released.

2006-01-18 John Elliott

	* Expanded dskutil with the ability to read and write data.

2005-12-26 John Elliott

	* Bugfix: The rcpmfs driver was conflating User 1 and User 0.

2005-12-17 John Elliott

	* libdsk-1.1.8 released.

	* Added the myz80 geometry as one of the standard geometries,
	 so that rcpmfs can present drives in the myz80 format.

2005-12-07 John Elliott

	* Updated the ApriDisk driver to support an extra block type, which
	 I hypothesize to be the name of the utility that created the disk 
	 image.

2005-12-05 John Elliott

	* Modified the rcpmfs driver to accept SysTracks=0 as a valid
	 parameter, rather than ignoring it silently.

2005-11-18 John Elliott

	* libdsk-1.1.7 released.

2005-11-13 John Elliott

	* Added support for reading DSK files created with Simon Owen's 
	 'weak/random data' extension.
	* Created dskutil, a simple interactive program allowing arbitrary
	 sectors to be read. Used to test the weak/random data extension 
	 above.
	* Added code to rcpmfs to deal with file truncation.

2005-09-03 John Elliott

	* libdsk-1.1.6 released.
	* Bug fix: Don't leak file handles in drvcpcem.c.

2005-07-21 John Elliott

	* Fixed the '-logical' option in dsktrans so it doesn't fall over
	 with "bad parameter" errors.
	* libdskrc parser now understands 'sides' and 'sidedness' for
	 the how-to-treat-sidedness parameter. 

2005-07-03 John Elliott

	* libdsk-1.1.5 released.

2005-06-28 Daniel Black

	* Corrected an install bug in Makefile.am

2005-06-14 John Elliott

	* Added guard code against a buffer overrun in the DSK driver 
	 (if an attempt is made to format a track with more than 29 sectors)

	* Serial remote drivers and standalone serslave written for Linux, 
	 Win32, DOS16, DOS32 (DOS32 untested).

2005-06-14 John Elliott

	* Corrected a bug in the Linux and NTWDM drivers - dsk_xread was 
	 failing when the sector size passed in did not match the sector
	 size in the geometry structure.

	* Added dskdump and dskscan to the list of utilities that get 
	 installed. 

	* dskid(1) allows multiple arguments.

2005-05-10 John Elliott

	* Started expanding the internal 'RPC' system to support operation
	 over serial lines.

2005-03-14 John Elliott

	* libdsk-1.1.4 released.

	* Added dsk_{p,l}trkids() and dsk_rtread() functions.

	* Added COM bindings (Windows version).

2005-02-28 Simon Owen

	* Added ntwdm driver. 

2005-02-19 Philip Kendall

	* Added dsk_dirty() function.

2005-01-26 John Elliott

	* libdsk-1.1.3 released.

2005-01-25 John Elliott

	* Merged CopyQM format documentation from Per Ola Ingvarsson.

2005-01-21 John Elliott

	* dsk_getgeom refactored so that drivers can call the default 
	 guesser and then override individual fields. 
	* dsk_getgeom also supports detection of BBC Master 512 DOS Plus 
	 format, which is like acorn800 but has 1-based sector numbers.

	* CPCEMU read and write now use the passed sector size, not the
	 size in the geometry structure. 

	* Merged a read-only CopyQM driver from Per Ola Ingvarsson.

2005-01-18 John Elliott

	* Updated ApriDisk driver and apridisk.html with the official 
	 ApriDisk format definitions.

	* Continued knocking rcpmfs into shape.

	* Added -apricot, -noformat, -first and -last options to dsktrans.
	 Fixed the -retry option in dsktrans so the default is 1 and not 
	 MAXINT.

2005-01-16 John Elliott

	* Updated dg_aprigeom() to use sector size in the Apricot 
	 superblock.

2005-01-03 John Elliott

	* LibDsk now loads format definitions from a libdskrc file, allowing
	 user-defined formats.

	* Created an experimental rcpmfs driver which presents a filesystem
	 directory as a CP/M disk image.

2004-03-27 John Elliott

	* v1.1.2 release.

2003-01-11 John Elliott

	* Added support for density and recording mode to the DSK and
	 extended DSK file formats. See appendix C of the documentation
	 for the details of this.

2003-08-13 John Elliott

	* v1.1.1 release.

2003-08-13 John Elliott

	* Added dsk_set_retry() and dsk_get_retry() so that LibDsk can 
	 automatically retry reads/writes.

	* Added double-stepping support to the Linux floppy driver, thus
	 allowing 360k floppies to be imaged in 1.2Mb drives.

2003-02-13 John Elliott

	* Added a driver for the 'apridisk' disc image format. 

	* Added support for comments in disc images.

	* Added functions for LibDsk to display messages during lengthy
	 operations.

2003-01-13 John Elliott

	* v1.1.0 release.
	
	* Added a mini-RPC system to allow 32-bit Windows applications to use
	 the more capable 16-bit floppy API.
	* The 16-bit DLL is now called LIBDSK16.DLL, so it can be installed in
	 the same directory as the 32-bit DLL.

	* Added a driver for the 'nanowasp' disc image format.

	* Removed constraints on the parameter order of the example utilities. 

2002-12-16 John Elliott

	* v1.0.0 release. 

	* Minor portability fixes.

	* DOS16 and Win16 drivers retry three times; this avoids "Disc changed"
	 errors on drives that are slow to spin up.

2002-12-01 John Elliott

	* v0.9.9 release.

	* Projects provided to build LibDsk under 16-bit Windows and DOS;
	 bug fixes in the .DSK driver to work correctly on a 16-bit compiler
	 (CFI won't work on 16-bit DOS, except for very small images).
	* Drivers added for the Win16, DOS16 and DOS32 architectures. There 
	 may be a case for combining the source files for Win16 and DOS16 as 
	 they are quite similar.

	* Previous MYZ80 bugfix was faulty. Corrected.

2002-11-18 John Elliott

	* v0.9.5 release.

	* MicroDesign serial numbers can be read or altered by md3serial

	* Bug fix in the posix driver; when sectors are written beyond the
	 end of the file, the gap is filled with 0xE5 rather than leaving the
	 OS to decide what goes there.
	* Similar bug fix in the myz80 driver.

2002-04-27 John Elliott

	* v0.9.1 release.

	* Squeeze compression rewritten from scratch to avoid a possible
	 licence conflict.

2002-04-10 John Elliott

	* v0.9.0 release.

	* IMPORTANT CHANGES: This release breaks backward compatibility in a 
	 number of ways. Most importantly, you must replace "DSK_DRIVER *" 
	 with "DSK_PDRIVER " throughout your programs.

	* Support for reading/writing deleted data (DSK and Linux floppy 
	 only; other formats do not support marking data as deleted). 

	* DSK files in the extended CPCEMU format now have their own file 
	 type - "edsk". This means that extended DSK files can be created
	 using LibDsk.
	* Bug fixes in the extended DSK format handler (Thierry Jouin).

	* Transparent compression layer added, supporting Squeeze, GZip 
	 and BZip2 (read only).
	* Special-case DQK driver removed; the standard CPCEMU driver + 
	 the compression layer can now handle this case.

	* BBC Micro DFS formats added to the list of built-in formats, and
	 to the geometry probe. 
	* Bugfix in the Linux floppy driver so that discs with FM encoding
	 can be read (requires a suitable floppy controller and drive).

2002-04-06 John Elliott

	* v0.8.2 release.

	* New driver added: .DQK (.DSK compressed using Squeeze compression).

	* XCF2 200k format added to the list of built-in formats.

	* Darren Salt's manual pages added to the distribution.

2002-02-25 John Elliott

	* v0.8.0 release.

	* Support added for Java Native Interface bindings (requires JDK 
	 v1.1 or later). Use ./configure --with-jni to build them.
	* Java versions of dskid, dskform and dsktrans added.

2002-02-07 John Elliott

	* v0.7.0 release.

	* Support added for .CFI format (a strange format used by Cliff 
	 Lawson to distribute Amstrad PC boot floppies). 
	
	* Bug fixes in the example utilities (Darren Salt).

	* dsktrans includes a -format option to use a built-in geometry 
	 rather than trying to probe it from the disc.

	* PCW 800k format added to list of builtin formats.

2002-01-15 John Elliott

	* v0.6.0 release.

	* Acorn ADFS formats added to the list of formats, and to the 
	 geometry probe. These don't work on Windows because of the limitations
	 of the underlying floppy driver.

	* dsk_xread() and dsk_xwrite() altered so that only part of a sector
	 can be read or written.

	* Make libdsk compile in Microsoft Visual C++ (Kevin Thacker)

	* dskform supports all built-in disc geometries.
	* dg_stdformat() can be used to enumerate the built-in geometries.

	* dsktrans includes a "-logical" option to rearrange the tracks of
	 a disc, so that they come out in logical order in a "raw" file. This
	 option is only effective for ADFS and 144FEAT formats.