0 REM %%%%%%%%%%%%%%%%%%%%›1 REM % DOWNLODADED FROM %›2 REM % M.B.B.S. - THE %›3 REM % FREEWARE SYSTEM %›4 REM % * * * * %›5 REM % (206) 632-9476 %›6 REM %%%%%%%%%%%%%%%%%%%%›10 REM SUPRCOMP-3 UPDATED BY Ron Luks 6-83 PPN 76703,254›20 GRAPHICS 0:SETCOLOR 1,0,12:SETCOLOR 2,9,0:SETCOLOR 4,9,0:POKE 82,0:POKE 83,39›30 POSITION 14,8:? "ÓÕÐÒÃÏÍЭ³"›40 ? :? " This FILE COMPARISON program is ":? " an updated version of the pgm"›50 ? " SUPRCOMP by Stacy Goff of A.C.E.":? " It will make a line-by-line "›60 ? " comparison of 2 LISTed files, on ":? " the same or different drives, and"›70 ? " create a 3rd file consisting of":? " any differences. "›80 POKE 764,255:? :? " ÈÉÔ ÁÎÙ ËÅÙ ÔÏ ÃÏÎÔÉÎÕÅ "›90 IF PEEK(764)=255 THEN 90›100 DIM A$(20),FILEOLD$(19),FILETRAN$(19),FILENEW$(19),OLDREC$(128),TRANREC$(128),NWREC$(128),L$(20)›110 POKE 764,255:? "}"›120 ? :? "ENTER ÆÉÌÅÓÐÅí± ";:INPUT FILEOLD$:IF REN=1 THEN 150›130 ? :? "ENTER ÆÉÌÅÓÐÅí² to be COMPARED":? "against #1 ";:INPUT FILETRAN$:IF REN=1 THEN 150›140 ? :? "ENTER ÆÉÌÅÓÐÅí³ to consist ":? "of the differences -";:INPUT FILENEW$:? ›150 ? " ÆÉÌÅ £± = ";FILEOLD$›160 ? " ÆÉÌÅ £² = ";FILETRAN$›170 ? " ÆÉÌÅ £³ = ";FILENEW$›180 IF REN=1 THEN REN=0:? ›190 ? :? " ENTER D to ÄÉÓÐÌÁÙ only"›200 ? " ENTER P to ÐÒÉÎÔ only":? " ENTER B for ÂÏÔÈ"›210 ? " TO CHANGE THE NAME OF FILE ":? " #1,2,or 3 type the approp. #"›220 ? " or just for MENUs":POKE 764,255:TRAP 190›230 INPUT A$:IF A$="P" OR A$="B" THEN OPEN #4,8,0,"P:":PSW=1›240 IF A$="B" OR A$="D" THEN SSW=1›250 IF A$="1" THEN REN=1:GOTO 120›260 IF A$="2" THEN REN=1:GOTO 130›270 IF A$="3" THEN REN=1:GOTO 140›280 IF SSW=1 OR PSW=1 THEN GOTO 310›290 IF A$="" THEN GOSUB 860:GOTO 150›300 GOTO 150›310 CLOSE #1:CLOSE #2:CLOSE #3›320 TRAP 600:OPEN #1,4,0,FILEOLD$›330 TRAP 610:OPEN #2,4,0,FILETRAN$›340 TRAP 620:OPEN #3,8,0,FILENEW$›350 IF ERRSW=1 THEN GOTO 820:REM END›360 REM MAINLINE ROUTINE ›370 GOSUB 550:REM GO GET OLDREC›380 GOSUB 560:REM GO GET TRANREC›390 IF OLD=TRAN THEN GOTO 490›400 IF OLD>TRAN THEN 460:REM MUST ADD RECORD FROM TRAN›410 IF TRAN>OLD THEN 430›420 STOP ›430 REM ON OLD, NOT ON NEW; WE DELETE›440 NWREC$=STR$(OLD):? #3;NWREC$:GOSUB 750:REM WRITE RECORD & PRINT›450 GOSUB 570:GOSUB 550:GOTO 390:REM GO CLEAR NWREC, GET ANOTHER OLDREC›460 REM ON TRAN, NOT ON OLD; WRITEIT›470 NWREC$=TRANREC$›480 ? #3;NWREC$:GOSUB 750:GOSUB 570:GOTO 380›490 REM ON BOTH FILES, CHECK TO MAKE SURE THEY ARE IDENTICAL ›500 IF OLDREC$=TRANREC$ THEN GOTO 530›510 GOSUB 570:NWREC$=TRANREC$›520 ? #3;NWREC$:GOSUB 750:GOSUB 570›530 GOSUB 550:GOSUB 560:GOTO 390›540 REM FILE READ SUBROUTINES ›550 TRAP 640:INPUT #1,OLDREC$:A$(1,5)=OLDREC$:GOSUB 720:OLD=NUM:TRAP 4:RETURN ›560 TRAP 680:INPUT #2,TRANREC$:A$(1,5)=TRANREC$:GOSUB 720:TRAN=NUM:TRAP 4:RETURN ›570 REM CLEAR NWREC›580 FOR X=1 TO LEN(NWREC$):NWREC$(X,X)=" ":NEXT X:RETURN ›590 REM TRAP ROUTINES FOR OPENS ›600 ? "ERROR--CAN'T OPEN ";FILEOLD$:ERRSW=1:GOTO 330›610 ? "ERROR--CAN'T OPEN ";FILETRAN$:ERRSW=1:GOTO 340›620 ? "ERROR--CAN'T OPEN ";FILENEW$:ERRSW=1:IF PEEK(195)<>161 THEN 350›630 IF PEEK(195)=161 THEN 820›640 REM ERROR ON OLD FILE--CHK EOF ›650 IF PEEK(195)<>136 THEN GOTO 820›660 OLD=99999:IF TRAN=99999 THEN GOTO 790›670 RETURN ›680 REM ERROR ON TRANS FILE--CK EOF ›690 IF PEEK(195)<>136 THEN GOTO 820›700 TRAN=99999:IF OLD=99999 THEN GOTO 790›710 RETURN ›720 Z=0:FOR X=1 TO 5:IF A$(X,X)=" " THEN GOTO 740›730 Z=Z+1:NEXT X›740 NUM=VAL(A$(1,Z)):RETURN ›750 REM PRINT AND DISPLAY OUTPUT ›760 IF PSW=1 THEN ? #4;NWREC$›770 IF SSW=1 THEN ? #6;NWREC$›780 RETURN ›790 REM ALL DONE, CLOSE FILES ›800 CLOSE #1:CLOSE #2:CLOSE #3:? :? :? " END OF FILE ý"›810 L$="D1:*.*":L$(2,2)=FILENEW$(2,2):GOSUB 880:END ›820 REM UNDETERMINED ERROR ›830 ? :? :? " JOB ABORTED WITH ERROR ";STR$(PEEK(195))›840 IF PEEK(195)=161 THEN ? " MUST POKE 1801,4 THEN RE-WRITE DOS":? " AND RE-BOOT"›850 END ›860 ? :? "ENTER D1(or D2,D3,D4) for":? "the appropriate menu":TRAP 860›870 CLOSE #1:CLOSE #2:CLOSE #3:CLOSE #4:INPUT L$:L$(3)=":*.*"›880 TRAP 920:CLOSE #5:OPEN #5,6,0,L$:? :? :? ,L$:TRAP 910›890 INPUT #5;L$:IF L$(5,16)="FREE SECTORS" THEN ? :? ,L$:GOTO 920›900 ? L$;,:GOTO 890›910 PRINT ›920 TRAP 930:CLOSE #5›930 TRAP 40000:RETURN ›