home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c / qk3hex.pas < prev    next >
Pascal/Delphi Source File  |  2020-01-01  |  2KB  |  69 lines

  1. (* ******************************************************************** *)
  2. (* ExeHex - Dump a EXE file into a HEX file.                            *)
  3. (* Author - Victor Lee , Queen's University, Kingston, Ontario, CANADA  *)
  4. (*                       Network id -  VIC at QUCDN                     *)
  5. (* Date   - 1986 Feb 12                                                 *)
  6. (*        - 1988 April 28                                               *)
  7. (* Note :   See HexExe to convert  HEX file into EXE file.              *)
  8. (* ******************************************************************** *)
  9. Program ExeHex ;
  10. type  blocks = array [1..128] of char ;
  11.       S2 = string[2] ;
  12.  var
  13.     i : byte ;
  14.     ExeName,HexName : string[14] ;
  15.     FN    : string[8] ;
  16.     abyte : byte ;
  17.     Afile : file of byte ;
  18.     Bfile : Text ;
  19.    count,Rcount : integer ;
  20. label  exit ;
  21.  
  22.  function hex(num:byte) : S2;
  23.  var digit :byte ;
  24.       hex1 : char ;
  25.     begin (* hex *)
  26.     digit := num and $0F ;
  27.     if digit > 9 then digit := digit + 7 ;
  28.     hex1 := chr($30 + digit) ;
  29.     digit := (num and $F0) div $10 ;
  30.     if digit > 9 then digit := digit + 7 ;
  31.     hex := concat(chr($30+digit),hex1);
  32.     end;
  33.  
  34.  
  35.     Begin (* hex Dump *)
  36.     Writeln('Enter Name of EXE File to Dump into HEX file ');
  37.     Readln(FN);
  38.     ExeName := FN + '.EXE' ;
  39.     HexName := FN + '.HEX' ;
  40.     Assign (Afile,ExeName);
  41.     Assign (Bfile,HexName);
  42.     Reset(Afile);
  43.     Rewrite(Bfile);
  44.     count := 0 ;
  45.     Rcount := 0 ;
  46.     Writeln('Converting File: ',ExeName,' file size =',FileSize(Afile));
  47.     Writeln(' 32 bytes make a 64 byte Record .');
  48.     Write (' Record count = ');
  49.     While True Do
  50.       Begin (* write a line *)
  51.       For i := 1 to $20 do
  52.          Begin (* dump file *)
  53.          if Eof(Afile) then goto exit;
  54.          read(Afile,abyte);
  55.          count := count + 1 ;
  56.     (*   write(hex(abyte));   *)
  57.          write(Bfile,hex(abyte));
  58.          End;
  59.       Writeln(Bfile);
  60.       Rcount := Rcount + 1 ;
  61.       Write(RCount ,'  ');
  62.       End ; (* write a line *)
  63.   exit :
  64.    Close(Bfile) ;
  65.    Writeln(' ');
  66.    Writeln('Number of 64 byte records =',Rcount);
  67.    Writeln('New file ',HexName,' created. ');
  68.    End. (* hex Dump *)
  69.