-
Notifications
You must be signed in to change notification settings - Fork 3
/
ChangeLog
732 lines (462 loc) · 20.6 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
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.