Skip to content

Commit 559b620

Browse files
authored
Add files via upload
(Almost) a total rewrite.
1 parent bec13a5 commit 559b620

File tree

4 files changed

+383
-738
lines changed

4 files changed

+383
-738
lines changed

MDX_Tool.lpi

+4
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@
152152
<Filename Value="MDX_Tool.lpr"/>
153153
<IsPartOfProject Value="True"/>
154154
</Unit>
155+
<Unit>
156+
<Filename Value="untDXUtils.pas"/>
157+
<IsPartOfProject Value="True"/>
158+
</Unit>
155159
</Units>
156160
</ProjectOptions>
157161
<CompilerOptions>

MDX_Tool.lpr

+15-34
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
uses
66
{$IFDEF UNIX}
77
cthreads,
8-
{$ENDIF}
8+
{$ENDIF}
99
Classes,
1010
SysUtils,
1111
CustApp,
@@ -30,16 +30,14 @@ TMDX_Tool = class(TCustomApplication)
3030
var
3131
ErrorMsg: string;
3232
fInput: string;
33-
fOutput: string;
3433
slReport: TStringList;
3534
msInputFile: TMemoryStream;
3635
i: integer;
3736
iStartPos: integer;
3837
begin
3938
fInput := '';
40-
fOutput:= '';
4139
// quick check parameters
42-
ErrorMsg := CheckOptions('hirf:o:', 'help info repair file: output:');
40+
ErrorMsg := CheckOptions('hirf:', 'help info repair file:');
4341

4442
if ErrorMsg <> '' then
4543
begin
@@ -58,8 +56,6 @@ TMDX_Tool = class(TCustomApplication)
5856

5957
if HasOption('f', 'file') then
6058
fInput := GetOptionValue('f', 'file');
61-
if HasOption('o', 'output') then
62-
fOutput := GetOptionValue('o', 'output');
6359

6460
if HasOption('r', 'repair') then
6561
begin
@@ -70,42 +66,28 @@ TMDX_Tool = class(TCustomApplication)
7066
Exit;
7167
end;
7268

73-
if fOutput <> '' then
74-
begin
75-
slReport := TStringList.Create;
76-
msInputFile := TMemoryStream.Create;
77-
msInputFile.LoadFromFile(fInput);
78-
iStartPos := 0;
79-
80-
if ContainsDX_SixOP_Data(msInputFile, iStartPos, slReport) then
81-
begin
82-
83-
end
84-
else
85-
if RepairDX7SysEx(fInput, fOutput, slReport) then
86-
begin
87-
88-
end;
69+
slReport := TStringList.Create;
8970

71+
WriteLn('Repairing file ' + ExtractFileName(fInput));
72+
if trim(ExtractFileDir(fInput)) = '' then
73+
fInput := IncludeTrailingPathDelimiter(GetCurrentDir) + fInput;
74+
if RepairDX7SysEx(fInput, slReport) then
75+
begin
9076
for i := 0 to slReport.Count - 1 do
9177
WriteLn(slReport[i]);
92-
93-
msInputFile.Free;
94-
slReport.Free;
9578
end
9679
else
97-
begin
98-
WriteLn('Parameter -o {filename} is missing');
99-
Terminate;
100-
Exit;
101-
end;
80+
WriteLn('No defects recognized');
81+
82+
slReport.Free;
10283
end;
10384

10485
if HasOption('i', 'info') then
10586
begin
10687
if not FileExists(fInput) then
10788
begin
10889
WriteLn('Parameter -f {filename} is missing or the file {file_name} could not be found');
90+
Terminate;
10991
Exit;
11092
end
11193
else
@@ -115,7 +97,7 @@ TMDX_Tool = class(TCustomApplication)
11597
msInputFile.LoadFromFile(fInput);
11698
iStartPos := 0;
11799

118-
if ContainsDX_SixOP_Data(msInputFile, iStartPos, slReport) then
100+
if ContainsDX_SixOP_Data_New(msInputFile, iStartPos, slReport) then
119101
begin
120102

121103
end;
@@ -153,15 +135,14 @@ TMDX_Tool = class(TCustomApplication)
153135
writeln(' Parameters (short and long form):');
154136
writeln(' -h --help This help message');
155137
writeln(' -i --info Information');
156-
writeln(' -r --repair Repair');
138+
writeln(' -r --repair Repair/extract DX7 VMEM data from files');
157139
// writeln(' -d --dx7 output DX7 mark I files');
158140
// writeln(' (DX7II and TX data will be removed)');
159141
writeln(' -f {filename} --file={filename} Input file');
160-
writeln(' -o {filename} --output={filename} Output file');
161142
WriteLn('');
162143
writeln(' Example usage:');
163144
writeln(' MDX_Tool -i -f my_dx_file.syx');
164-
writeln(' MDX_Tool -r -f my_dx_file.syx -o my_repaired_file.syx');
145+
writeln(' MDX_Tool -r -f my_dx_file.syx');
165146
writeln(' MDX_Tool --info --file=my_dx_file.syx');
166147
end;
167148

MDX_Tool.lps

+56-48
Original file line numberDiff line numberDiff line change
@@ -10,196 +10,204 @@
1010
<Filename Value="MDX_Tool.lpr"/>
1111
<IsPartOfProject Value="True"/>
1212
<IsVisibleTab Value="True"/>
13-
<CursorPos Y="130"/>
14-
<UsageCount Value="37"/>
13+
<TopLine Value="59"/>
14+
<CursorPos X="39" Y="80"/>
15+
<UsageCount Value="51"/>
1516
<Loaded Value="True"/>
1617
</Unit>
1718
<Unit>
1819
<Filename Value="untDXUtils.pas"/>
20+
<IsPartOfProject Value="True"/>
1921
<EditorIndex Value="1"/>
20-
<TopLine Value="631"/>
21-
<CursorPos X="56" Y="661"/>
22-
<UsageCount Value="18"/>
22+
<TopLine Value="421"/>
23+
<CursorPos X="7" Y="439"/>
24+
<UsageCount Value="31"/>
2325
<Loaded Value="True"/>
2426
</Unit>
2527
<Unit>
2628
<Filename Value="units\untDX7Voice.pas"/>
2729
<EditorIndex Value="-1"/>
2830
<CursorPos X="13" Y="895"/>
29-
<UsageCount Value="12"/>
31+
<UsageCount Value="11"/>
3032
</Unit>
3133
<Unit>
3234
<Filename Value="units\untDX7IISupplement.pas"/>
3335
<EditorIndex Value="-1"/>
3436
<TopLine Value="136"/>
3537
<CursorPos X="81" Y="149"/>
36-
<UsageCount Value="12"/>
38+
<UsageCount Value="11"/>
3739
</Unit>
3840
<Unit>
3941
<Filename Value="units\untUtils.pas"/>
4042
<EditorIndex Value="-1"/>
4143
<TopLine Value="4"/>
4244
<CursorPos X="11" Y="20"/>
43-
<UsageCount Value="12"/>
45+
<UsageCount Value="11"/>
4446
</Unit>
4547
<Unit>
4648
<Filename Value="units\untTX7Function.pas"/>
4749
<EditorIndex Value="-1"/>
4850
<TopLine Value="212"/>
4951
<CursorPos X="79" Y="225"/>
50-
<UsageCount Value="12"/>
52+
<UsageCount Value="11"/>
5153
</Unit>
5254
<Unit>
5355
<Filename Value="units\untMDXSupplement.pas"/>
5456
<EditorIndex Value="-1"/>
5557
<TopLine Value="90"/>
5658
<CursorPos X="78" Y="105"/>
57-
<UsageCount Value="12"/>
59+
<UsageCount Value="11"/>
5860
</Unit>
5961
</Units>
6062
<JumpHistory HistoryIndex="29">
6163
<Position>
6264
<Filename Value="untDXUtils.pas"/>
63-
<Caret Line="147" TopLine="135"/>
65+
<Caret Line="362" TopLine="341"/>
6466
</Position>
6567
<Position>
6668
<Filename Value="untDXUtils.pas"/>
67-
<Caret Line="146" TopLine="135"/>
69+
<Caret Line="363" TopLine="341"/>
6870
</Position>
6971
<Position>
7072
<Filename Value="untDXUtils.pas"/>
71-
<Caret Line="147" TopLine="135"/>
73+
<Caret Line="364" TopLine="342"/>
7274
</Position>
7375
<Position>
74-
<Filename Value="MDX_Tool.lpr"/>
75-
<Caret Line="263" Column="48" TopLine="231"/>
76+
<Filename Value="untDXUtils.pas"/>
77+
<Caret Line="363" TopLine="342"/>
7678
</Position>
7779
<Position>
7880
<Filename Value="untDXUtils.pas"/>
79-
<Caret Line="139" TopLine="132"/>
81+
<Caret Line="364" TopLine="342"/>
8082
</Position>
8183
<Position>
8284
<Filename Value="untDXUtils.pas"/>
83-
<Caret Line="140" TopLine="132"/>
85+
<Caret Line="363" TopLine="342"/>
8486
</Position>
8587
<Position>
8688
<Filename Value="untDXUtils.pas"/>
87-
<Caret Line="141" TopLine="132"/>
89+
<Caret Line="364" TopLine="342"/>
8890
</Position>
8991
<Position>
9092
<Filename Value="untDXUtils.pas"/>
91-
<Caret Line="142" TopLine="132"/>
93+
<Caret Line="363" TopLine="342"/>
9294
</Position>
9395
<Position>
9496
<Filename Value="untDXUtils.pas"/>
95-
<Caret Line="143" TopLine="132"/>
97+
<Caret Line="364" TopLine="342"/>
9698
</Position>
9799
<Position>
98100
<Filename Value="untDXUtils.pas"/>
99-
<Caret Line="144" TopLine="132"/>
101+
<Caret Line="363" TopLine="342"/>
100102
</Position>
101103
<Position>
102104
<Filename Value="untDXUtils.pas"/>
103-
<Caret Line="146" TopLine="132"/>
105+
<Caret Line="364" TopLine="342"/>
104106
</Position>
105107
<Position>
106108
<Filename Value="untDXUtils.pas"/>
107-
<Caret Line="147" TopLine="132"/>
109+
<Caret Line="363" TopLine="342"/>
108110
</Position>
109111
<Position>
110112
<Filename Value="untDXUtils.pas"/>
111-
<Caret Line="146" TopLine="132"/>
113+
<Caret Line="364" TopLine="342"/>
112114
</Position>
113115
<Position>
114116
<Filename Value="untDXUtils.pas"/>
115-
<Caret Line="147" TopLine="132"/>
117+
<Caret Line="363" TopLine="342"/>
116118
</Position>
117119
<Position>
118120
<Filename Value="untDXUtils.pas"/>
119-
<Caret Line="146" TopLine="132"/>
121+
<Caret Line="325" TopLine="314"/>
120122
</Position>
121123
<Position>
122124
<Filename Value="untDXUtils.pas"/>
123-
<Caret Line="147" TopLine="132"/>
125+
<Caret Line="365" TopLine="352"/>
124126
</Position>
125127
<Position>
126128
<Filename Value="untDXUtils.pas"/>
127-
<Caret Line="146" TopLine="132"/>
129+
<Caret Line="366" TopLine="352"/>
128130
</Position>
129131
<Position>
130132
<Filename Value="untDXUtils.pas"/>
131-
<Caret Line="147" TopLine="132"/>
133+
<Caret Line="371" TopLine="352"/>
132134
</Position>
133135
<Position>
134136
<Filename Value="untDXUtils.pas"/>
135-
<Caret Line="146" TopLine="132"/>
137+
<Caret Line="410" TopLine="397"/>
136138
</Position>
137139
<Position>
138140
<Filename Value="untDXUtils.pas"/>
139-
<Caret Line="147" TopLine="132"/>
141+
<Caret Line="433" TopLine="420"/>
140142
</Position>
141143
<Position>
142144
<Filename Value="untDXUtils.pas"/>
143-
<Caret Line="146" TopLine="132"/>
145+
<Caret Line="434" TopLine="420"/>
144146
</Position>
145147
<Position>
146148
<Filename Value="untDXUtils.pas"/>
147-
<Caret Line="147" TopLine="132"/>
149+
<Caret Line="435" TopLine="420"/>
148150
</Position>
149151
<Position>
150152
<Filename Value="untDXUtils.pas"/>
151-
<Caret Line="146" TopLine="132"/>
153+
<Caret Line="320" TopLine="307"/>
152154
</Position>
153155
<Position>
154156
<Filename Value="untDXUtils.pas"/>
155-
<Caret Line="147" TopLine="132"/>
157+
<Caret Line="437" TopLine="424"/>
156158
</Position>
157159
<Position>
158160
<Filename Value="untDXUtils.pas"/>
159-
<Caret Line="146" TopLine="132"/>
161+
<Caret Line="438" TopLine="424"/>
160162
</Position>
161163
<Position>
162164
<Filename Value="untDXUtils.pas"/>
163-
<Caret Line="147" TopLine="132"/>
165+
<Caret Line="439" TopLine="424"/>
164166
</Position>
165167
<Position>
166168
<Filename Value="untDXUtils.pas"/>
167-
<Caret Line="146" TopLine="132"/>
169+
<Caret Line="304" TopLine="291"/>
168170
</Position>
169171
<Position>
170172
<Filename Value="untDXUtils.pas"/>
171-
<Caret Line="147" TopLine="132"/>
173+
<Caret Line="440" TopLine="427"/>
172174
</Position>
173175
<Position>
174176
<Filename Value="MDX_Tool.lpr"/>
175-
<Caret Line="180" Column="24" TopLine="177"/>
177+
<Caret Line="78" TopLine="63"/>
176178
</Position>
177179
<Position>
178180
<Filename Value="MDX_Tool.lpr"/>
179-
<Caret Line="49" Column="5" TopLine="36"/>
181+
<Caret Line="81" TopLine="63"/>
180182
</Position>
181183
</JumpHistory>
182184
<RunParams>
183185
<FormatVersion Value="2"/>
184186
<Modes ActiveMode="default">
185187
<Mode Name="default">
186188
<local>
187-
<CommandLineParams Value="-i -f BUCK-1.SYX"/>
188-
<WorkingDirectory Value="C:\Users\Administrator\Documents\Lazarus\MDX_Tool"/>
189+
<CommandLineParams Value="-r -f DMC-1.SYX"/>
190+
<LaunchingApplication PathPlusParams="C:\WINDOWS\system32\cmd.exe /C ${TargetCmdLine}"/>
191+
<WorkingDirectory Value="C:\Users\User\Documents\Lazarus\MDX_Tool"/>
189192
</local>
190193
</Mode>
191194
</Modes>
192195
</RunParams>
193196
<HistoryLists>
194-
<List Name="WorkingDirectory" Type="File" Count="1">
195-
<Item1 Value="C:\Users\Administrator\Documents\Lazarus\MDX_Tool"/>
197+
<List Name="WorkingDirectory" Type="File" Count="3">
198+
<Item1 Value="C:\Users\User\Documents\Lazarus\MDX_Tool"/>
199+
<Item2 Value="C:\Users\User\Documents\Lazarus\MDX_Tool\bin\Debug"/>
200+
<Item3 Value="C:\Users\Administrator\Documents\Lazarus\MDX_Tool"/>
196201
</List>
197202
<List Name="LaunchingApplication" Type="File" Count="1">
198203
<Item1 Value="C:\WINDOWS\system32\cmd.exe /C ${TargetCmdLine}"/>
199204
</List>
200-
<List Name="CommandLineParameters" Count="2">
201-
<Item1 Value="-i -f BUCK-1.SYX"/>
202-
<Item2 Value="-i -f DMC-1.SYX"/>
205+
<List Name="CommandLineParameters" Count="5">
206+
<Item1 Value="-r -f DMC-1.SYX"/>
207+
<Item2 Value="-r -f BUCK-1.SYX"/>
208+
<Item3 Value="-i -r BUCK-1.SYX"/>
209+
<Item4 Value="-i -f BUCK-1.SYX"/>
210+
<Item5 Value="-i -f DMC-1.SYX"/>
203211
</List>
204212
</HistoryLists>
205213
</ProjectSession>

0 commit comments

Comments
 (0)