Skip to content

Commit

Permalink
Updated to 1.45.3
Browse files Browse the repository at this point in the history
  • Loading branch information
geraldholdsworth committed May 5, 2023
1 parent e61623a commit 61a302a
Show file tree
Hide file tree
Showing 20 changed files with 194 additions and 112 deletions.
3 changes: 2 additions & 1 deletion Documentation/Changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -948,13 +948,14 @@ Bug fixes
* The application would crash if an ADFS image had zero free space.
* Creating a 640KB ADFS L image, then adding a DOS partition would not result in the partition being visible.

1.45.2
1.45.3
---------------------
New or improved features
* Image report now lists the free space map for ADFS.
* Add Partition button now works for DFS single sided images to add a second side.
* Exporting files now includes a date/time stamp field in the *.inf file if set.
* Importing files, where the *.inf file has a date/time stamp field, updates the date/time for the file.
* The ADFS interleave can now be changed without re-organising the data. This method then re-reads the file using the new method.

Bug fixes
* When deleting directories, the internal directory references were not getting updated.
Expand Down
1 change: 0 additions & 1 deletion Documentation/ToDo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ General - Ideas which are maybe possible
* ADFS: When a DOS image file is added to an ADFS image (and the "Open DOS Partition" setting is set), automatically open as the second partition (if there isn't one already).
* ADFS: Rebuild the Old Map FS Map by scanning the files and rebuilding from scratch (in the class definition).
* ADFS: Use the above, along with other functions, to create a new function to fix ADFS Old Map images which otherwise won't load.
* ADFS: Change the interleave, without moving data around.
* AFS: AFS0 images do not get created correctly (in particular the free space allocation maps) - AWAITING MORE INFO ON AFS FORMATS.
* AFS: Add option to new Level 3 images for pre-1988 or post-1988 format - AWAITING MORE INFO ON AFS FORMATS.
* AFS: 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.
Expand Down
4 changes: 4 additions & 0 deletions LazarusSource/DiscImage.pas
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,8 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
CDRFileTypes : array[0.. 5] of String = (
'DELDeleted' ,'SEQSequence' ,'PRGProgram' ,
'USRUser File','RELRelative' ,'CBMCBM' );
//Interleave types
Fints : array[0..2] of String=('Sequential','Interleave','Multiplex');
//Disc title for new images
disctitle = 'DiscImgMgr';
afsdisctitle = 'DiscImageManager'; //AFS has longer titles
Expand Down Expand Up @@ -785,6 +787,8 @@ TFragment = record //For retrieving the ADFS E/F fragment informati
function GetDirSep(partition: Byte): Char;
function ReadDirectory(dirname: String): Integer;
function ImageReport(CSV: Boolean): TStringList;
function GetInterleaveString(Inter: Byte): String;
function GetNumberOfInterleaves: Byte;
//Published properties
property AFSPresent: Boolean read FAFSPresent;
property AFSRoot: Cardinal read Fafsroot;
Expand Down
4 changes: 3 additions & 1 deletion LazarusSource/DiscImageManager.lpi
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
</Linking>
</CompilerOptions>
</Item2>
<Item3 Name="Release platform native">
<Item3 Name="Release macOS 64 bit">
<CompilerOptions>
<Version Value="11"/>
<SearchPaths>
Expand All @@ -73,6 +73,8 @@
</SearchPaths>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="darwin"/>
<Optimizations>
<OptimizationLevel Value="3"/>
</Optimizations>
Expand Down
152 changes: 82 additions & 70 deletions LazarusSource/DiscImageManager.lps
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<CONFIG>
<ProjectSession>
<Version Value="12"/>
<ManyBuildModesSelection Value="&quot;Release platform native&quot;,&quot;Release Windows 64 bit&quot;,&quot;Release Windows 32 bit&quot;,&quot;Release macOS 32 bit&quot;,&quot;Release macOS ARM&quot;,&quot;Release Linux 64 bit&quot;,&quot;Release Linux 32 bit&quot;,&quot;Release Linux ARM&quot;"/>
<ManyBuildModesSelection Value="&quot;Release macOS 64 bit&quot;,&quot;Release Windows 64 bit&quot;,&quot;Release Windows 32 bit&quot;,&quot;Release macOS 32 bit&quot;,&quot;Release macOS ARM&quot;,&quot;Release Linux 64 bit&quot;,&quot;Release Linux 32 bit&quot;,&quot;Release Linux ARM&quot;"/>
<BuildModes Active="Default"/>
<Units Count="39">
<Units Count="40">
<Unit0>
<Filename Value="DiscImageManager.lpr"/>
<IsPartOfProject Value="True"/>
Expand All @@ -18,10 +18,8 @@
<ComponentName Value="MainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="555"/>
<CursorPos X="35" Y="573"/>
<TopLine Value="560"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
Expand All @@ -30,8 +28,8 @@
<Filename Value="DiscImage.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="13"/>
<TopLine Value="77"/>
<CursorPos X="47" Y="91"/>
<TopLine Value="770"/>
<CursorPos X="50" Y="786"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit2>
Expand Down Expand Up @@ -67,6 +65,7 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="27"/>
<TopLine Value="94"/>
<CursorPos X="60" Y="27"/>
<UsageCount Value="204"/>
<Loaded Value="True"/>
Expand All @@ -76,7 +75,6 @@
<Filename Value="DiscImageUtils.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="24"/>
<TopLine Value="294"/>
<CursorPos X="38" Y="319"/>
<UsageCount Value="205"/>
<Loaded Value="True"/>
Expand Down Expand Up @@ -107,9 +105,10 @@
<ComponentName Value="HexDumpForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="26"/>
<TopLine Value="11"/>
<CursorPos X="20" Y="28"/>
<TopLine Value="199"/>
<CursorPos X="37" Y="207"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
Expand Down Expand Up @@ -284,13 +283,13 @@
<EditorIndex Value="-1"/>
<TopLine Value="72"/>
<CursorPos X="4" Y="84"/>
<UsageCount Value="142"/>
<UsageCount Value="140"/>
</Unit24>
<Unit25>
<Filename Value="DiscImage_ADFS.pas"/>
<EditorIndex Value="18"/>
<TopLine Value="2136"/>
<CursorPos X="24" Y="2144"/>
<TopLine Value="922"/>
<CursorPos X="2" Y="1109"/>
<UsageCount Value="102"/>
<Loaded Value="True"/>
</Unit25>
Expand Down Expand Up @@ -374,16 +373,16 @@
<Unit36>
<Filename Value="DiscImage_Private.pas"/>
<EditorIndex Value="15"/>
<TopLine Value="1515"/>
<CursorPos X="23" Y="1532"/>
<TopLine Value="510"/>
<CursorPos X="2" Y="490"/>
<UsageCount Value="119"/>
<Loaded Value="True"/>
</Unit36>
<Unit37>
<Filename Value="DiscImage_Published.pas"/>
<EditorIndex Value="14"/>
<TopLine Value="1582"/>
<CursorPos X="81" Y="1593"/>
<TopLine Value="1444"/>
<CursorPos X="4" Y="1467"/>
<UsageCount Value="119"/>
<Loaded Value="True"/>
</Unit37>
Expand All @@ -395,114 +394,123 @@
<UsageCount Value="108"/>
<Loaded Value="True"/>
</Unit38>
<Unit39>
<Filename Value="/Applications/Lazarus/components/turbopower_ipro/iphtml.pas"/>
<UnitName Value="IpHtml"/>
<EditorIndex Value="-1"/>
<TopLine Value="2435"/>
<CursorPos X="15" Y="2679"/>
<UsageCount Value="10"/>
</Unit39>
</Units>
<JumpHistory Count="27" HistoryIndex="26">
<Position1>
<Filename Value="DiscImage_ADFS.pas"/>
<Caret Line="2144" Column="24" TopLine="2136"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="267" Column="14" TopLine="261"/>
</Position1>
<Position2>
<Filename Value="DiscImage.pas"/>
<Caret Line="78" Column="12" TopLine="72"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4815" Column="2" TopLine="4809"/>
</Position2>
<Position3>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="8" Column="2" TopLine="3"/>
<Filename Value="DiscImage_Published.pas"/>
<Caret Line="1461" Column="3" TopLine="1457"/>
</Position3>
<Position4>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="1117" Column="26" TopLine="1096"/>
<Filename Value="DiscImage_Published.pas"/>
<Caret Line="1482" Column="37" TopLine="1458"/>
</Position4>
<Position5>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="1270" Column="24" TopLine="1249"/>
<Filename Value="DiscImage.pas"/>
<Caret Line="725" Column="13" TopLine="99"/>
</Position5>
<Position6>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="2080" Column="28" TopLine="2059"/>
<Filename Value="DiscImage_Published.pas"/>
<Caret Line="1448" Column="70" TopLine="1435"/>
</Position6>
<Position7>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="2259" Column="24" TopLine="2238"/>
<Filename Value="DiscImage.pas"/>
<Caret Line="786" Column="71" TopLine="786"/>
</Position7>
<Position8>
<Filename Value="DiscImage.pas"/>
<Caret Line="89" Column="23" TopLine="74"/>
<Filename Value="DiscImage_Published.pas"/>
<Caret Line="1480" Column="14" TopLine="1467"/>
</Position8>
<Position9>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="236" Column="2" TopLine="228"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4683" Column="13" TopLine="4658"/>
</Position9>
<Position10>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="294" Column="23" TopLine="276"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4674" Column="21" TopLine="4658"/>
</Position10>
<Position11>
<Filename Value="DiscImage.pas"/>
<Caret Line="90" Column="11" TopLine="77"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4675" Column="5" TopLine="4658"/>
</Position11>
<Position12>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="298" Column="2" TopLine="276"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4678" Column="6" TopLine="4660"/>
</Position12>
<Position13>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="1117" Column="13" TopLine="1105"/>
<Filename Value="DiscImage.pas"/>
<Caret Line="786" Column="13" TopLine="770"/>
</Position13>
<Position14>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="2259" Column="69" TopLine="2238"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4674" Column="6" TopLine="4663"/>
</Position14>
<Position15>
<Filename Value="DiscImage_AFS.pas"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4673" Column="7" TopLine="4663"/>
</Position15>
<Position16>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="329" Column="37" TopLine="308"/>
<Filename Value="DiscImage.pas"/>
<Caret Line="790" Column="12" TopLine="770"/>
</Position16>
<Position17>
<Filename Value="DiscImage.pas"/>
<Caret Line="481" Column="12" TopLine="470"/>
<Caret Line="786" Column="12" TopLine="770"/>
</Position17>
<Position18>
<Filename Value="DiscImage.pas"/>
<Caret Line="90" Column="20" TopLine="71"/>
<Caret Line="790" Column="12" TopLine="770"/>
</Position18>
<Position19>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="298" Column="2" TopLine="276"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4676" Column="6" TopLine="4665"/>
</Position19>
<Position20>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="294" Column="20" TopLine="287"/>
<Filename Value="DiscImage.pas"/>
<Caret Line="786" Column="50" TopLine="770"/>
</Position20>
<Position21>
<Filename Value="DiscImage.pas"/>
<Caret Line="91" Column="47" TopLine="77"/>
<Filename Value="DiscImage_Published.pas"/>
<Caret Line="1482" Column="8" TopLine="1463"/>
</Position21>
<Position22>
<Filename Value="DiscImage_AFS.pas"/>
<Caret Line="259" Column="9" TopLine="239"/>
<Filename Value="MainUnit.pas"/>
<Caret Line="4682" Column="33" TopLine="4659"/>
</Position22>
<Position23>
<Filename Value="DiscImageUtils.pas"/>
<Caret Line="319" Column="9" TopLine="294"/>
<Filename Value="HexDumpUnit.pas"/>
<Caret Line="884" Column="10" TopLine="14"/>
</Position23>
<Position24>
<Filename Value="MainUnit.pas"/>
<Caret Line="1061" Column="27" TopLine="1048"/>
<Filename Value="HexDumpUnit.pas"/>
<Caret Line="97" Column="14" TopLine="90"/>
</Position24>
<Position25>
<Filename Value="MainUnit.pas"/>
<Caret Line="1056" Column="61" TopLine="1044"/>
<Filename Value="HexDumpUnit.pas"/>
<Caret Line="879" Column="43" TopLine="873"/>
</Position25>
<Position26>
<Filename Value="MainUnit.pas"/>
<Caret Line="1057" Column="33" TopLine="1051"/>
<Filename Value="HexDumpUnit.pas"/>
<Caret Line="861" Column="19" TopLine="852"/>
</Position26>
<Position27>
<Filename Value="MainUnit.pas"/>
<Caret Line="371" Column="16" TopLine="347"/>
<Filename Value="HexDumpUnit.pas"/>
<Caret Line="760" TopLine="746"/>
</Position27>
</JumpHistory>
<RunParams>
Expand All @@ -515,10 +523,14 @@
<Debugging>
<Watches>
<Item>
<Expression Value="Index"/>
<Expression Value="NewMethod"/>
</Item>
<Item>
<Expression Value="Finterleave"/>
</Item>
<Item>
<Expression Value="Zone"/>
<Expression Value="FFormat"/>
<DisplayStyle Value="wdfHex"/>
</Item>
</Watches>
</Debugging>
Expand Down
6 changes: 2 additions & 4 deletions LazarusSource/DiscImage_Private.pas
Original file line number Diff line number Diff line change
Expand Up @@ -991,16 +991,14 @@ function TDiscImage.Inflate(filename: String): TDIByteArray;
Convert the interleave into a string
-------------------------------------------------------------------------------}
function TDiscImage.InterleaveString: String;
const
ints:array[0..2] of String=('Sequential','Interleave','Multiplex');
begin
Result:='';
if(GetMajorFormatNumber=diAcornDFS)and(FDSD)then Result:=ints[1];
if(GetMajorFormatNumber=diAcornDFS)and(FDSD)then Result:=Fints[1];
{if(FFormat=diAcornADFS<<4+2)
or(FFormat=diAcornADFS<<4+$E)}
if(GetMajorFormatNumber=diAcornADFS)
or(GetMajorFormatNumber=diAcornFS)then
if FInterleave-1<=High(ints) then Result:=ints[FInterleave-1];
if FInterleave-1<=High(Fints) then Result:=Fints[FInterleave-1];
end;

{-------------------------------------------------------------------------------
Expand Down
Loading

0 comments on commit 61a302a

Please sign in to comment.