Skip to content

Commit ec0f088

Browse files
Updated to 1.43
1 parent b58a324 commit ec0f088

27 files changed

Lines changed: 2022 additions & 403 deletions

Documentation/Changes.txt

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -830,15 +830,15 @@ Bug fixes
830830
----------------------
831831
New or improved features
832832
* SparkFS images are now fully writable:
833-
* Can now write files to a SparkFS image.
834-
* Can now create a blank directory on a SparkFS image.
835-
* Can now rename files and directories on a SparkFS image.
836-
* Can now move and copy files and directories on a SparkFS image.
837-
* Can now change the timestamp on files and directories on a SparkFS image.
838-
* Can now change the filetype on files on a SparkFS image.
839-
* Can now change the load and execution addresses on files on a SparkFS image.
840-
* Can now change file and directory attibutes on a SparkFS image.
841-
* Can now delete files/directories from a SparkFS image.
833+
* Can write files to a SparkFS image.
834+
* Can create a blank directory on a SparkFS image.
835+
* Can rename files and directories on a SparkFS image.
836+
* Can move and copy files and directories on a SparkFS image.
837+
* Can change the timestamp on files and directories on a SparkFS image.
838+
* Can change the filetype on files on a SparkFS image.
839+
* Can change the load and execution addresses on files on a SparkFS image.
840+
* Can change file and directory attibutes on a SparkFS image.
841+
* Can delete files/directories from a SparkFS image.
842842

843843
Bug fixes
844844
* SparkFS failed to extract the file data if it was the first file in the archive.
@@ -847,17 +847,42 @@ Bug fixes
847847
* A bug had crept in, at some earlier version, that crashed the application when the filetype was clicked on.
848848
* When editing the date/time stamp, clicking on a field during editing would instead commence editing the selected node on the directory tree for renaming.
849849

850-
1.43
851-
----------------------
850+
1.43 - 4th May 2022
851+
-------------------
852852
New or improved features
853853
* Reports number of items in a directory in the File Details pane.
854854
* Added more sanity checks on ID-ing a DOS or DOS+ image.
855855
* Changed the order of ID-ing a format and moved DFS to the end.
856+
* The Image Details dialogue now opens, with Free Space Map display, for AmigaDOS images.
857+
* Attributes are now shown for files on an AmigaDOS image.
858+
* Can now retitle an AmigaDOS image.
859+
* CRC32 is no longer reported for directories.
860+
* Improved the file extraction function for AmigaDOS images, and made it FFS compatible.
861+
* TimeDate stamp is now reported for Amiga files and directories.
862+
* Can create blank Amiga DD and HD floppy images, and blank hard drive images.
863+
* Can create new directories on AmigaDOS images.
864+
* Can write files to an AmigaDOS image.
865+
* Can update the protect attributes on an AmigaDOS file/directory.
866+
* Can date/time stamp an AmigaDOS file/directory.
867+
* Can delete files/directories from an AmigaDOS image.
868+
* Can move files/directories around an AmigaDOS image.
869+
* Can rename files/directories in an AmigaDOS image.
870+
* The file relating to the currently open DOS partition is now marked in green in the directory tree, and cannot be deleted.
871+
* DOS Partitions will now only be searched for on Old Directory ADFS hard drives.
872+
* Added an option to specify whether to automatically open DOS partitions on ADFS hard drives.
873+
* Added an extra command line parameter to create DOS hard drive: DOSHDD|<size>
874+
* Added an extra command line parameter to create Amiga hard drive: AmigaHDD|<size>
875+
* Added extra command line parameters for creating DOS floppies: DOS+640, DOS+800, DOS360, DOS720, DOS1440, and DOS2880.
876+
* Added a command line option to change the configuration options: --config or -cf.
856877

857878
Bug fixes
858879
* When looking for a DOS partition on an ADFS hard drive, the drive was split as two separate drives. However, the DOS partition is a file held within the ADFS file structure and not a separate partition.
859880
* The custom filetype entry box was not positioned correctly in the filetype dialogue.
860881
* ADFS Filetypes and timestamps were getting reported for non ADFS formats and ADFS Old Directories.
882+
* Sometimes reading a file off an AmigaDOS image would hang the application.
883+
* During copy/move operations, the directory being hovered over expanded instantly which could cause issues. There is now a 1 sec hover delay before expanding.
884+
* A failed delete, or the user clicking on 'No' to confirm a deletion, would leave the confirmation window open until it was a successful delete, or the user clicked 'Yes'.
885+
* The configuration option to compress UEF images did not get saved to the registry.
861886

862887

863888
Platform History
46.3 KB
Binary file not shown.
176 KB
Binary file not shown.

Documentation/ToDo.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Bugs
99
* Some SS DFS images are IDed as DS images when 'Allow zero sectors' is selected in the preferences.
1010
* Access violation has been reported when creating an ADFS HDD image (default options) on Windows. - UNABLE TO REPLICATE
1111
* Does not work on Windows 11. - UNABLE TO REPLICATE
12+
* Changing time/date on a file does not update the 'unsaved' icon in the status bar.
1213

1314
General
1415
* Drag and Drop facilities out of the application...currently looking unlikely for cross platform. This will need to be done using 'code-per-platform' directives.
@@ -26,18 +27,14 @@ General
2627
DFS
2728

2829
ADFS
29-
* Import an existing AFS or DOS image into ADFS as a new partition.
30+
* Import an existing AFS or DOS image into ADFS as a new partition (importing DOS image as parition is as easy as just adding a DOS Image file).
3031

3132
AFS
3233
* AFS0 images do not get created correctly (in particular the free space allocation maps) - AWAITING MORE INFO ON AFS FORMATS.
3334
* Add option to new Level 3 images for pre-1988 or post-1988 format - AWAITING MORE INFO ON AFS FORMATS.
3435
* When extracting the AFS partition, remove the ADFS partition and re-address all the objects, instead of just blanking out the ADFS part - IN PROGRESS.
3536

3637
Amiga
37-
* Write/Delete/Rename files/directories to Amiga images.
38-
* Create blank Amiga images.
39-
* Create Free Space Map for Amiga.
40-
* Show file attributes in the File Details panel.
4138

4239
Spectrum/Amstrad
4340
* Write entire module - REQUIRE MORE INFO ON SPECTRUM FORMAT.

LazarusSource/DiscImage.pas

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
8484
FDFSBeyondEdge, //Check for files going beyond the DFS disc edge
8585
FDOSVolInRoot, //Volume name is stored in the root (DOS)
8686
FScanSubDirs, //Scan sub directories on opening (ADFS/Amiga/DOS/Spark)
87+
FOpenDOSPart, //Open DOS Partitions on ADFS
8788
FDOSUseSFN : Boolean; //Use short filenames, even if there are long filenames (DOS)
8889
secsize, //Sector Size
8990
bpmb, //Bits Per Map Bit (Acorn ADFS New)
@@ -346,15 +347,35 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
346347
function AmigaBootChecksum(offset: Cardinal): Cardinal;
347348
function AmigaChecksum(offset: Cardinal): Cardinal;
348349
function ExtractAmigaFile(filename:String;var buffer:TDIByteArray):Boolean;
349-
function FormatAmiga(minor: Byte): TDisc;
350+
function ExtractAmigaData(sector,filelen: Cardinal;
351+
var buffer: TDIByteArray): Boolean;
352+
function FormatAmigaFDD(minor: Byte): TDisc;
353+
function FormatAmigaHDD(harddrivesize: Cardinal): TDisc;
354+
procedure FormatAmiga(size: Cardinal);
350355
function WriteAmigaFile(var file_details: TDirEntry;var buffer: TDIByteArray): Integer;
351356
function CreateAmigaDirectory(var dirname,parent,attributes: String): Integer;
352-
function RetitleAmigaDirectory(filename, newtitle: String): Boolean;
353357
function RenameAmigaFile(oldfilename: String;var newfilename: String):Integer;
354358
function DeleteAmigaFile(filename: String):Boolean;
355359
function UpdateAmigaFileAttributes(filename,attributes: String): Boolean;
356360
function UpdateAmigaDiscTitle(title: String): Boolean;
357361
function MoveAmigaFile(filename,directory: String): Integer;
362+
procedure ReadAmigaFSM;
363+
procedure AmigaFillFreeSpaceMap(address: Cardinal;usage: Byte);
364+
procedure ToAmigaTime(time: TDateTime;var days,mins,ticks: Cardinal);
365+
function FromAmigaTime(days, mins, ticks: Cardinal): TDateTime;
366+
function AmigaIntToStrAttr(attr: Cardinal): String;
367+
function AmigaStrToIntAttr(attr: String): Cardinal;
368+
function AmigaCalculateHashValue(filename: String): Cardinal;
369+
procedure AmigaAllocateFSMBlock(addr:Cardinal;used:Boolean;var fsm:TDIByteArray);
370+
function GetAmigaFSMOffset(addr: Cardinal;var bit: Byte): Cardinal;
371+
function AmigaReadBitmap(var fsm: TDIByteArray): TFragmentArray;
372+
procedure AmigaWriteBitmap(fsmlist: TFragmentArray;var fsm: TDIByteArray);
373+
function AmigaFindFreeSpace(filelen: Cardinal): TFragmentArray;
374+
function UpdateAmigaTimeStamp(filename: String;newtimedate: TDateTime): Boolean;
375+
function GetAmigaChain(sector: Cardinal): TFragmentArray;
376+
procedure AmigaAddToChain(filename: String;paraddr,sector: Cardinal);
377+
function AmigaRemoveFromChain(filename: String;paraddr,sector: Cardinal):Boolean;
378+
procedure ValidateAmigaFile(var filename: String);
358379
//Acorn CFS Routines
359380
function ID_CFS: Boolean;
360381
function ReadUEFFile: TDisc;
@@ -443,8 +464,9 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
443464
'DELDeleted' ,'SEQSequence' ,'PRGProgram' ,
444465
'USRUser File','RELRelative' ,'CBMCBM' );
445466
//Disc title for new images
446-
disctitle = 'DiscImgMgr';
447-
afsdisctitle = 'DiscImageManager'; //AFS has longer titles
467+
disctitle = 'DiscImgMgr';
468+
afsdisctitle = 'DiscImageManager'; //AFS has longer titles
469+
amigadisctitle= 'Disc Image Manager';//Amiga has even longer titles
448470
//Root name to use when AFS is partition on ADFS
449471
afsrootname = ':AFS$';
450472
{$INCLUDE 'DiscImageRISCOSFileTypes.pas'}
@@ -532,6 +554,7 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
532554
property MapType: Byte read MapFlagToByte;
533555
property MapTypeString: String read MapTypeToString;
534556
property MaxDirectoryEntries: Cardinal read FMaxDirEnt;
557+
property OpenDOSPartitions: Boolean read FOpenDOSPart write FOpenDOSPart;
535558
property ProgressIndicator: TProgressProc write FProgress;
536559
property RAWData: TDIByteArray read Fdata;
537560
property RootAddress: Cardinal read GetRootAddress;

LazarusSource/DiscImageManager.lpi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@
2121
<VersionInfo>
2222
<UseVersionInfo Value="True"/>
2323
<MajorVersionNr Value="1"/>
24-
<MinorVersionNr Value="42"/>
25-
<RevisionNr Value="1"/>
24+
<MinorVersionNr Value="43"/>
2625
<Language Value="0809"/>
27-
<StringTable CompanyName="GJH Software" FileDescription="Disc Image Manager for Acorn and Commodore disc formats" ProductName="Disc Image Manager" ProductVersion="1.42.1"/>
26+
<StringTable CompanyName="GJH Software" FileDescription="Disc Image Manager for Acorn and Commodore disc formats" ProductName="Disc Image Manager" ProductVersion="1.43"/>
2827
</VersionInfo>
2928
<BuildModes Count="10">
3029
<Item1 Name="Default" Default="True"/>

0 commit comments

Comments
 (0)