Implemented processing and validating the binary header

This commit is contained in:
Bartłomiej Szostak 2024-04-20 15:06:22 +02:00
parent 4b47061611
commit 4e9da4233f
No known key found for this signature in database
GPG Key ID: 562DACF230A18086

View File

@ -16,6 +16,23 @@ procedure sillymachine is
Value : Byte;
begin
ValidHeader (0) := 6;
ValidHeader (1) := 148;
ValidHeader (2) := 32;
ValidHeader (3) := 118;
ValidHeader (4) := 101;
ValidHeader (5) := 114;
ValidHeader (6) := 121;
ValidHeader (7) := 95;
ValidHeader (8) := 115;
ValidHeader (9) := 105;
ValidHeader (10) := 108;
ValidHeader (11) := 108;
ValidHeader (12) := 121;
ValidHeader (13) := 0;
ValidHeader (14) := 0;
ValidHeader (15) := 0;
if Argument_Count = 0 then
New_Line(1);
@ -27,15 +44,22 @@ begin
FileNameLength := Argument (1)'Length;
FileName(1 .. FileNameLength) := Argument (1);
--Bin_IO.Open(F, Bin_IO.In_File, FileName);
--while not Bin_IO.End_Of_File (F) loop
-- Bin_IO.Read(F, Value);
-- Arr (I) := Value;
-- I := I + 1;
--end loop;
--for i in 0 .. 15 loop
-- Put_Line(Byte'Image(Arr (i)));
--end loop;
Bin_IO.Open(F, Bin_IO.In_File, FileName);
while not Bin_IO.End_Of_File (F) loop
Bin_IO.Read(F, Value);
if ValidHeader (I) = Value then
Value := Value; -- useless line so compiler does not complain
else
New_Line(1);
Put_Line("Error: Please use a valid sm binary file");
New_Line(1);
goto THE_END;
end if;
I := I + 1;
end loop;
Put_Line("Header passed");
<< THE_END >>
end sillymachine;