home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
c
/
qk3hex.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2020-01-01
|
2KB
|
69 lines
(* ******************************************************************** *)
(* ExeHex - Dump a EXE file into a HEX file. *)
(* Author - Victor Lee , Queen's University, Kingston, Ontario, CANADA *)
(* Network id - VIC at QUCDN *)
(* Date - 1986 Feb 12 *)
(* - 1988 April 28 *)
(* Note : See HexExe to convert HEX file into EXE file. *)
(* ******************************************************************** *)
Program ExeHex ;
type blocks = array [1..128] of char ;
S2 = string[2] ;
var
i : byte ;
ExeName,HexName : string[14] ;
FN : string[8] ;
abyte : byte ;
Afile : file of byte ;
Bfile : Text ;
count,Rcount : integer ;
label exit ;
function hex(num:byte) : S2;
var digit :byte ;
hex1 : char ;
begin (* hex *)
digit := num and $0F ;
if digit > 9 then digit := digit + 7 ;
hex1 := chr($30 + digit) ;
digit := (num and $F0) div $10 ;
if digit > 9 then digit := digit + 7 ;
hex := concat(chr($30+digit),hex1);
end;
Begin (* hex Dump *)
Writeln('Enter Name of EXE File to Dump into HEX file ');
Readln(FN);
ExeName := FN + '.EXE' ;
HexName := FN + '.HEX' ;
Assign (Afile,ExeName);
Assign (Bfile,HexName);
Reset(Afile);
Rewrite(Bfile);
count := 0 ;
Rcount := 0 ;
Writeln('Converting File: ',ExeName,' file size =',FileSize(Afile));
Writeln(' 32 bytes make a 64 byte Record .');
Write (' Record count = ');
While True Do
Begin (* write a line *)
For i := 1 to $20 do
Begin (* dump file *)
if Eof(Afile) then goto exit;
read(Afile,abyte);
count := count + 1 ;
(* write(hex(abyte)); *)
write(Bfile,hex(abyte));
End;
Writeln(Bfile);
Rcount := Rcount + 1 ;
Write(RCount ,' ');
End ; (* write a line *)
exit :
Close(Bfile) ;
Writeln(' ');
Writeln('Number of 64 byte records =',Rcount);
Writeln('New file ',HexName,' created. ');
End. (* hex Dump *)