10 POKE56,64:CLR:CO=06:CR=02:CB=1:POKE646,CO:POKE53280,CR:POKE53281,CB 20 IF PEEK(26636)=51 AND PEEK(26638)=52 THEN100 30 GOSUB940:PRINT"[211][212][193][206][196][194][217] - [204]OADING [205][204] [211]UBROUTINES. " 40 DN%=PEEK(186):LOAD"CMP.ML.6800",DN%,1 100 HD$="* [198]ILE [195]OMPARISON [213]TILITY [214]3.4 *" 110 BX$="**********************************" 120 REM OF$=CHR$(160):NF$=CHR$(176) 130 MM%=0:RC%=0:CR$=CHR$(13):ZE$=CHR$(0):FORI=1TO16:SP$=SP$+CHR$(160):NEXT 140 OV$="":OT$="":OZ$="":OS$="":OB%=0:OY%=0 150 NV$="":NT$="":NZ$="":NS$="":NB%=0:NY%=0 160 : 170 GOSUB940 180 DN%=0:INPUT"[196]ISK UNIT NR (8-11)";DN%:IF DN%=0 THEN END 190 IF DN%<8 OR DN%>11 THEN PRINT"[213]NIT NR MUST BE 8-11":GOTO180 200 GOSUB940:OL$="":INPUT"[207][204][196] FILE NAME OR $[146]";OL$ 210 IF OL$="$" THEN GOSUB970:GOTO200 220 IF OL$="" THEN170 230 NU$="":INPUT"[206][197][215] FILE NAME OR *[146]";NU$ 240 IF NU$="$" THEN GOSUB970:GOSUB940:GOTO200 250 IF NU$="" THEN200 260 PD$="":INPUT"[210]EPORT TO S[146]CREEN OR P[146]RINTER";PD$ 270 IF PD$="" THEN230 280 IF PD$="S" THEN PN%=3:PC%=0:GOTO310 290 IF PD$="P" THEN PN%=4:PC%=7:GOTO310 300 GOTO260 310 : 320 :REM--- GET FILE TYPE, TRK, SECTOR 330 OO$=LEFT$(OL$+SP$,16) 340 NN$=LEFT$(NU$+SP$,16) 350 SYS26627:IF NU$="*" THEN NY%=1:NB%=0 360 IF RC%<128 THEN400 370 IF RC%<255 THEN A$="FAILED.":GOTO390 380 A$="CANCELLED." 390 PRINT"[196]IRECTORY SEARCH ";A$:GOTO440 400 IF OY%<>0 AND NY%<>0 THEN480 410 IF OY%=0 THEN PRINT"[207][204][196] FILE NOT FOUND." 420 IF NY%=0 THEN PRINT"[206][197][215] FILE NOT FOUND." 430 PRINT"[197]NTER $[146] TO LIST THE DISK DIRECTORY." 440 PRINT"[208]RESS ANY KEY TO CONTINUE" 450 GET A$:IF A$="" THEN450 460 GOTO200 470 : 480 :REM--- GET REPORT AND RECORD TYPE 490 OS$=ZE$:PRINT"[195]HOOSE A[146]SCII"; 500 IF OY%=2 THEN PRINT",B[146]ASIC,D[146]ISASSEMBLY"; 510 OV$="":INPUT",HEX[146]";OV$ 520 IF OV$="A" OR OV$="X" THEN580 530 IF OY%=2 AND OV$="B" THEN OT$="C":OZ$=CHR$(0):GOTO820 540 IF OY%=2 AND OV$="D" THEN OT$="F":OZ$=CHR$(1):GOTO820 550 IF OV$="" THEN GOTO820 560 GOTO490 570 :REM--- RECORD SPECIFICATION 580 OT$="":INPUT"[201]S RECORD LENGTH F[146]IXED OR V[146]ARIABLE";OT$ 590 IF OT$="F" THEN630 600 IF OT$="V" THEN660 610 IF OT$="" THEN490 620 GOTO580 630 X=0:INPUT"[211]PECIFY RECORD LENGTH (1-255)";X:IF X<1 OR X>255 THEN580 640 OZ$=CHR$(X):GOTO820 650 :REM--- VARIABLE LN RECORD 660 PRINT"[195]HOOSE END OF RECORD INDICATOR..." 670 OT$="":INPUT" C[146]HARACTER, L[146]ENGTH, OR M[146]ASK";OT$ 680 IF OT$="C" THEN A$="CHARACTER":GOTO730 690 IF OT$="M" THEN A$="MASK":GOTO730 700 IF OT$="L" THEN790 710 IF OT$="" THEN580 720 GOTO660 730 X$="":PRINT"[197]NTER VALUE OF ";A$;" (0-255)";:INPUT X$:IF X$="" THEN660 740 X=VAL(X$):IF X<0 OR X>255 THEN730 750 OZ$=CHR$(X) 760 X$="":INPUT "[197]NTER MINIMUM RECORD LENGTH (0-255)";X$:IF X$="" THEN730 770 X=VAL(X$):IF X<0 OR X>255 THEN760 780 OS$=CHR$(X):GOTO820 790 X$="":INPUT "[211]PECIFY THE LOCATION (1-255)";X$:IF X$="" THEN760 800 X=VAL(X$):IF X<1 OR X>255 THEN790 810 OZ$=CHR$(X) 820 IF OV$="" THEN260 830 NV$=OV$:NT$=OT$:NZ$=OZ$:NS$=OS$ 840 : 850 :REM--- PRODUCE COMPARISON REPORT 860 A$=CHR$(147):B$=" ":IF PN%<>3 THEN A$=CHR$(12):B$=" " 870 OPEN PN%,PN%,PC% 880 PRINT#PN%,A$;B$;BX$;CR$;B$;HD$;CR$;B$;BX$;CR$ 890 PRINT#PN%,B$;"[207][204][196] [206]AME: ";OL$ 900 PRINT#PN%,B$;"[206][197][215] [206]AME: ";NU$;CR$ 910 SYS26624:GOSUB990:GOTO200 920 : 930 :--- DISPLAY SCREEN HEADER 940 PRINT"[147]"CHR$(14)TAB(3)HD$CR$CR$:RETURN 950 : 960 :--- LIST DIRECTORY 970 PN%=3:NU$="*":OPEN PN%,PN%,PC%:SYS26630 980 : 990 A$="[195]OMPARE ":IF NU$="*" THEN A$="[204]ISTING " 1000 B$="FINISHED.":IF RC%>99 THEN B$="FAILED.":IF RC%=255 THEN B$="CANCELLED." 1010 IF NU$<>"*" THEN B$=B$+STR$(MM%)+" MISMATCHES." 1020 PRINT#PN%,CR$CR$A$B$:PRINT#PN%:CLOSE PN% 1030 IF PN%<>3 THEN1060 1040 PRINT"[208]RESS ANY KEY TO CONTINUE." 1050 GET A$:IF A$="" OR A$=CHR$(136) THEN1050 1060 RETURN