Skip to content

Commit

Permalink
Updated to version 1.42
Browse files Browse the repository at this point in the history
  • Loading branch information
geraldholdsworth committed Apr 23, 2022
1 parent c1c3084 commit e0d8417
Show file tree
Hide file tree
Showing 27 changed files with 1,835 additions and 328 deletions.
22 changes: 22 additions & 0 deletions Documentation/Changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -826,6 +826,28 @@ Bug fixes
* Acorn/Watford DFS, Commodore 64, Acorn CFS and Spark images were being opened with the 'directory been read' flag not set, so appeared as if the directories were unread.
* DFS images were still not correctly being IDed.

1.42 - 23rd April 2022
----------------------
New or improved features
* SparkFS images are now fully writable:
* Can now write files to a SparkFS image.
* Can now create a blank directory on a SparkFS image.
* Can now rename files and directories on a SparkFS image.
* Can now move and copy files and directories on a SparkFS image.
* Can now change the timestamp on files and directories on a SparkFS image.
* Can now change the filetype on files on a SparkFS image.
* Can now change the load and execution addresses on files on a SparkFS image.
* Can now change file and directory attibutes on a SparkFS image.
* Can now delete files/directories from a SparkFS image.

Bug fixes
* SparkFS failed to extract the file data if it was the first file in the archive.
* If a ZIP file is read in where the reported number of entries does not match the actual number of entries, this would crash the application.
* If the directory entry, in a SparkFS archive, appeared after any of it's child entries, then these child entries would not get shown in the directory tree.
* A bug had crept in, at some earlier version, that crashed the application when the filetype was clicked on.
* 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.


Platform History
----------------

Expand Down
Binary file modified Documentation/Disc Image Manager User Guide.docx
Binary file not shown.
Binary file modified Documentation/Disc Image Manager User Guide.pdf
Binary file not shown.
8 changes: 1 addition & 7 deletions Documentation/ToDo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,6 @@ Spectrum/Amstrad
MMFS
* Rewrite/rethink entire MMFS idea. Possibly remove from Disc Image Manager.

Spark
* Create new archive.
* Create directory.
* Write file.
* Rename file/directory.
* Delete file/directory.
* Move file.
SparkFS

DOS Plus
16 changes: 13 additions & 3 deletions LazarusSource/DiscImage.pas
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
unit DiscImage;

{
TDiscImage class V1.41
TDiscImage class V1.42
Manages retro disc images, presenting a list of files and directories to the
parent application. Will also extract files and write new files. Almost a complete
filing system in itself. Compatible with Acorn DFS, Acorn ADFS, UEF, Commodore
Expand Down Expand Up @@ -140,7 +140,7 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
free_space : array of QWord;//Free space per partition
disc_name : array of String;//Disc title(s)
bootoption : TDIByteArray; //Boot Option(s)
CFSFiles : array of TDIByteArray;//All the data for the CFS files
FilesData : array of TDIByteArray;//All the data for CFS or Spark files
FProgress : TProgressProc;//Used for feedback
SparkFile : TSpark; //For reading in Spark archives
//Private methods
Expand Down Expand Up @@ -377,6 +377,16 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
function ID_Spark: Boolean;
function ReadSparkArchive: TDisc;
function ExtractSparkFile(filename: String;var buffer: TDIByteArray): Boolean;
function FormatSpark(Zipfilename: String): TDisc;
function DeleteSparkFile(filename: String): Boolean;
function UpdateSparkAttributes(filename,attributes: String): Boolean;
function MoveSparkFile(filename, dest: String): Integer;
function WriteSparkFile(var file_details:TDirEntry;var buffer:TDIByteArray):Integer;
function RenameSparkFile(filename, newfilename: String): Integer;
function UpdateSparkFileType(filename: String; newtype: String): Boolean;
function UpdateSparkTimeStamp(filename: String;newtimedate:TDateTime): Boolean;
function UpdateSparkFileAddr(filename:String;newaddr:Cardinal;load:Boolean):Boolean;
function CreateSparkDirectory(filename, parent, attributes: String): Integer;
//DOS Plus Routines
function ID_DOSPlus: Boolean;
function IDDOSPartition(ctr: Cardinal): Boolean;
Expand Down Expand Up @@ -448,7 +458,7 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
procedure ReadImage;
procedure SaveToFile(filename: String;uncompress: Boolean=False);
procedure Close;
function FormatFDD(major:Word;minor,tracks: Byte): Boolean;
function FormatFDD(major:Word;minor:Byte=0;tracks: Byte=0;filename: String=''): Boolean;
function FormatHDD(major:Word;harddrivesize:Cardinal;newmap:Boolean;dirtype:Byte):Boolean;
function ExtractFile(filename:String;var buffer:TDIByteArray;entry:Cardinal=0): Boolean;
function WriteFile(var file_details: TDirEntry; var buffer: TDIByteArray): Integer;
Expand Down
4 changes: 2 additions & 2 deletions LazarusSource/DiscImageManager.lpi
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
<VersionInfo>
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="1"/>
<MinorVersionNr Value="41"/>
<MinorVersionNr Value="42"/>
<Language Value="0809"/>
<StringTable CompanyName="GJH Software" FileDescription="Disc Image Manager for Acorn and Commodore disc formats" ProductName="Disc Image Manager" ProductVersion="1.41"/>
<StringTable CompanyName="GJH Software" FileDescription="Disc Image Manager for Acorn and Commodore disc formats" ProductName="Disc Image Manager" ProductVersion="1.42"/>
</VersionInfo>
<BuildModes Count="10">
<Item1 Name="Default" Default="True"/>
Expand Down
Loading

0 comments on commit e0d8417

Please sign in to comment.