home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol024 / zcompar.pas < prev   
Pascal/Delphi Source File  |  1984-04-29  |  2KB  |  84 lines

  1. (****************************************************
  2. *
  3. *        CHAR COMPARE PROGRAM
  4. *
  5. *    Written by Bob Harsch during a debugging
  6. * excercise. It was done hastily but it was such a
  7. * good idea that I cleaned it and now its part of our
  8. * utilities.
  9. *
  10. * Donated to the Pascal/Z Users Group, Oct 1980
  11. * Modified by Charlie Foster
  12. *****************************************************
  13. *
  14. *        INSTRUCTIONS
  15. *
  16. *    The two files that you want to compare need to
  17. * have their names changed to F1.DAT and F2.DAT.  Then
  18. * all you have to do is type PCOMPAR. It will go thro
  19. * the entire program and list all differences and list
  20. * those in HEX, DECIMAL and ASCII. The line numbers are
  21. * in reference to 100H.
  22. *
  23. ******************************************************)
  24.  
  25. PROGRAM COMPAREFILES;
  26.  
  27. TYPE    BYTE=0..255;
  28.  
  29. VAR    F1,F2 : FILE OF BYTE;
  30.     B1,B2 : BYTE;
  31.     COUNT : INTEGER;
  32.  
  33.  
  34. PROCEDURE HEX(N: INTEGER);
  35.  
  36. VAR            I : INTEGER;
  37.         HEXDIGIT : ARRAY [1..4] OF INTEGER;
  38.     
  39. BEGIN
  40.     FOR I := 1 TO 4 DO
  41.       BEGIN
  42.         HEXDIGIT[I] := N MOD 16;
  43.               N := N DIV 16
  44.       END;
  45.     FOR I:= 4 DOWNTO 1 DO
  46.       IF HEXDIGIT[I] > 9
  47.         THEN WRITE(CHR( ORD('A')+HEXDIGIT[I]-10 ):1)
  48.         ELSE WRITE(HEXDIGIT[I]:1);
  49.     WRITE(' ');
  50. END; (* OF HEX *)
  51.  
  52.  
  53. FUNCTION CHRCHK(B: BYTE): CHAR;
  54.  
  55. BEGIN
  56.   IF (B < 32) OR (B > 126)
  57.     THEN CHRCHK := '.'
  58.     ELSE CHRCHK := CHR(B)
  59. END; (* OF CHRCHK *)
  60.  
  61.  
  62. BEGIN    (* MAIN PROGRAM *)
  63.  
  64.  RESET('F1.DAT',F1);   
  65.  RESET('F2.DAT',F2);
  66.   WRITELN('HEX-ADDR  HEX-B1-B2    DEC-B1-B2   CHR1-CHR2');
  67.   WRITELN('--------------------------------------------');
  68. COUNT := 256;
  69.   REPEAT
  70.     READ(F1,B1);
  71.     READ(F2,B2);
  72.     IF B1 <> B2 THEN
  73.     BEGIN
  74.         HEX(COUNT); 
  75.       WRITE(' ':5);
  76.       HEX(B1);
  77.       HEX(B2);
  78.       WRITE('   ',B1:3,'  ',B2:3);
  79.       WRITE('      ',CHRCHK(B1),'  ',CHRCHK(B2));
  80.       WRITELN;
  81.     END;
  82.     COUNT := COUNT + 1;
  83.   UNTIL EOF(F1) OR EOF(F2);
  84. END.