?login_element?

Subversion Repositories NedoOS

Rev

Rev 11 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. //// imported
  2. #include "../_sdk/io.h"
  3. #include "../_sdk/print.h"
  4.  
  5. VAR PBYTE _fin2;
  6.  
  7. #define _MAXERRORS 8;
  8. ////
  9.  
  10. PROC diff(PCHAR fn1, PCHAR fn2)
  11. {
  12. VAR BYTE b;
  13. VAR BYTE b2;
  14. VAR UINT errors;
  15. VAR UINT addr;
  16. VAR BOOL waswaseof;
  17.   errors = 0;
  18.   addr = 0;
  19.   setxy(0x00,0x00);
  20.   _fin = nfopen(fn1, "rb");
  21.   IF (_fin != (PBYTE)0) {
  22.     _waseof = +FALSE;
  23.     _fin2 = nfopen(fn2, "rb");
  24.     IF (_fin2 != (PBYTE)0) {
  25.       WHILE (!_waseof) {
  26.         b = readfin();
  27.         waswaseof = _waseof;
  28.         fread((PBYTE)&b2, +sizeof(BYTE), 1, _fin2);
  29.         IF (waswaseof != _waseof) {
  30.           nprintf("invalid file size!\r\n");
  31.           goto quit;
  32.         }ELSE IF (b != b2) {
  33.           nprintf("addr=%x f1=%x f2=%x\r\n", addr, (UINT)b, (UINT)b2);
  34.           INC errors;
  35.           IF (errors == _MAXERRORS) goto quit;
  36.         };
  37.         INC addr;
  38.       };
  39.       IF (errors == 0) nprintf("files %s, %s are equal\r\n", (UINT)fn1, (UINT)fn2);
  40.       quit:
  41.       fclose(_fin2);
  42.     };
  43.     fclose(_fin);
  44.   };
  45. }
  46.