home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
c
/
qk3exe.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2020-01-01
|
2KB
|
68 lines
(* ******************************************************************** *)
(* HexExe - Load a HEX (Hex dump file) and makes it a Exe file. *)
(* Author - Victor Lee , Queen's University, Kingston, Ontario, CANADA *)
(* Network id - VIC at QUCDN *)
(* Date - 1988 October 12 *)
(* Note : See ExeHex to convert Exe file into HEX file. *)
(* ******************************************************************** *)
Program HexExe ;
type blocks = array [1..128] of char ;
S2 = string[2] ;
var
i : byte ;
ExeName,HexName : string[14] ;
FN : string[8] ;
REC : string[64] ;
abyte : byte ;
Afile : file of byte ;
Bfile : Text ;
count,Rcount : integer ;
label exit ;
function HexNum(char1,char2:char) : byte ;
var Hi,Low :byte ;
tempbyte : byte ;
begin (* hex *)
Hi := ord(char1) ;
Low := ord(char2);
If Hi > $40 then Hi := Hi + 9 ;
Hi := Hi shl 4 ;
If Low> $40 then Low:= Low + 9 ;
Low := Low and $0F ;
hexNum := Hi + Low ;
end;
Begin (* Exe Load *)
Writeln('Enter Name of HEX File to Load into Exe file ');
Readln(FN);
ExeName := FN + '.EXE' ;
HexName := FN + '.HEX' ;
Assign (Afile,ExeName);
Assign (Bfile,HexName);
Reset(Bfile);
Rewrite(Afile);
count := 0 ;
Rcount := 0 ;
Writeln('Converting File: ',HexName,' file size =',FileSize(Afile));
Writeln(' 64 byte record makes 32 bytes.');
While Not Eof(Bfile) Do
Begin (* read a record *)
Rcount := Rcount + 1 ;
Write(RCount ,' ');
Readln(Bfile,Rec) ;
writeln('rec=',Rec);
i := 1 ;
While i < length(Rec) do
Begin (* load file *)
abyte := HexNum(Rec[i],Rec[i+1]) ;
i := i + 2 ;
write(Afile,abyte);
count := count + 1 ;
End;
End ; (* read a record *)
exit :
Close(Afile) ;
Writeln('Number of 64 byte records read =',Rcount);
Writeln('New file ',ExeName,' created.');
End. (* Exe Load *)