Listing of file='COPY010A' on disk='vmedia/701-2046C.wvd.zip'
# Sector 109, program filename = 'COPY010A'
0010 REM COPY010A,00-00(09/23/75),12003
0200 COM N$(255)8,F,M$5,E,N$8,C
: COM R1$8,R2$1,R3$2,R9$8,R9$(16)
: DIM Q6$64,W$8,W3$3,W4$1,W$(3)8,Q4(3),Q5(3)
: DIM B$(1)2
: INIT(20)N$()
0280 I=1
: GOSUB '91(1,I)
: I$=D$
0330 O=5
: GOSUB '91(2,O)
: O$=D$
0380 F=3
0410 M$= "ALL"
0440 E=0
: GOSUB '92(HEX(03))
0480 GOSUB '243("ARE THE PARAMETERS OK? (Y/N)",1)
: IF Q6$= "Y"THEN 1180
: IF Q6$= "N"THEN 550
: GOSUB 2480
: GOTO 480
0550 GOSUB '245("ENTER THE NUMBER OF THE ITEM TO BE CHANGED. (0 = END)",1,0)
: IF Q9=0THEN 1180
: IF Q9<6THEN 600
: GOSUB 2480
: GOTO 550
0600 ON Q9GOSUB 640,770,850,930,1050
: GOSUB '92(HEX(01))
: GOTO 550
0640 GOSUB '248(11,0,0)
: PRINT ,"FUNCTIONS AVAILABLE"
: PRINT ," 1 - COPY"
: PRINT ," 2 - VERIFY"
: PRINT ," 3 - COPY AND VERIFY"
0690 GOSUB '245("ENTER THE NUMBER OF THE FUNCTION DESIRED.",1,0)
: IF (Q9-1)*(Q9-2)*(Q9-3)=0THEN 730
: GOSUB 2480
: GOTO 690
0730 F=Q9
: GOSUB '248(11,0,4)
: RETURN
0770 GOSUB '245("ENTER THE NUMBER OF ADDITIONAL SECTORS/FILE. (-1 = LEAVE AS I
S)",-2,0)
: IF Q9=-1THEN 820
: IF Q9>=0THEN 820
: GOSUB 2480
: GOTO 770
0820 E=Q9
: RETURN
0850 GOSUB '243("ENTER THE DESIRED MODE. (ALL OR PARTS)",5)
: IF Q6$= "ALL"THEN 900
: IF Q6$= "PARTS"THEN 900
: GOSUB 2480
: GOTO 850
0900 M$=Q6$
: RETURN
0930 GOSUB '93
0940 GOSUB '245("ENTER THE NUMBER OF THE DESIRED INPUT ADDRESS.",1,0)
: IF Q9=OTHEN 990
: I=Q9
: GOSUB '91(1,I)
: IF Q6$<> "E"THEN 1010
0990 GOSUB 2480
: GOTO 940
1010 I$=D$
: GOSUB '248(11,0,4)
: RETURN
1050 GOSUB '93
1060 GOSUB '245("ENTER THE NUMBER OF THE DESIRED OUTPUT ADDRESS.",1,0)
: IF Q9=ITHEN 1110
: O=Q9
: GOSUB '91(2,O)
: IF Q6$<> "E"THEN 1130
1110 GOSUB 2480
: GOTO 1060
1130 O$=D$
: GOSUB '248(11,0,4)
: RETURN
1180 IF M$= "ALL"THEN 1570
: PRINT HEX(010A);"MOUNT INPUT PLATTER";TAB(64)
: GOSUB '254
: C=0
1240 PRINT HEX(010A);"ENTER THE NAME OF FILE #";C+1," (0 = END)";TAB(64)
: GOSUB '244(8)
: IF Q6$= " "THEN 1240
: N$=Q6$
: MAT SEARCHN$(),=N$TO B$()STEP 8
: IF B$(1)=HEX(0000)THEN 1370
: GOSUB '248(3,0,1)
1340 PRINT "FILE - ";N$;" - IS A DUPLICATE FILE NAME"
: GOTO 1240
1370 IF N$= "0"THEN 1510
: GOSUB '229(1,N$)
: IF R2$=HEX(10)THEN 1450
: GOSUB '248(3,0,1)
: PRINT "FILE - ";N$;" - DOES NOT EXIST"
: GOTO 1240
1450 C=C+1
: N$(C)=N$
: IF C<255THEN 1240
1510 IF C>0THEN 1570
: PRINT HEX(030A);"NUMBER OF FILES = 0"
: GOSUB '254
1540 DEFFN'15
: LOAD DC T#6,"START"
1570 LOAD DC T#6,"COPY020A"
1600 DEFFN'92(N$)
: PRINT N$
: GOSUB '248(5,0,0)
: PRINT ,"COPY/VERIFY UTILITY"
: PRINT
: PRINT TAB(3);"1. FUNCTION = ";
: ON F-1GOTO 1690,1710
: PRINT "COPY";
: GOTO 1720
1690 PRINT "VERIFY";
: GOTO 1720
1710 PRINT "COPY/VERIFY";
1720 PRINT TAB(32);"4. INPUT ADDRESS = ";I$
: PRINT TAB(3);"2. EXTRA SECTORS =";E;TAB(32);"5. OUTPUT ADDRESS = ";O$
: PRINT TAB(3);"3. MODE = ";M$,TAB(32)
: RETURN
1780 DEFFN'93
: GOSUB '248(11,0,0)
: PRINT ,"ADDRESSES AVAILABLE"
: PRINT ,"1 - 310 4 - B10"
: PRINT ,"2 - 320 5 - B20"
: PRINT ,"3 - 350 6 - 360"
: RETURN
1870 DEFFN'91(D,A)
: ON DGOTO 1910,2100
1890 Q6$= "E"
: RETURN
1910 ON AGOTO 1920,1950,1980,2010,2040,2070
1920 SELECT #1310
1930 D$= "310"
: RETURN
1950 SELECT #1320
1960 D$= "320"
: RETURN
1980 SELECT #1350
1990 D$= "350"
: RETURN
2010 SELECT #1B10
2020 D$= "B10"
: RETURN
2040 SELECT #1B20
2050 D$= "B20"
: RETURN
2070 SELECT #1360
2080 D$= "360"
: RETURN
2100 ON AGOTO 2120,2140,2160,2180,2200,2220
: GOTO 1890
2120 SELECT #2310
: GOTO 1930
2140 SELECT #2320
: GOTO 1960
2160 SELECT #2350
: GOTO 1990
2180 SELECT #2B10
: GOTO 2020
2200 SELECT #2B20
: GOTO 2050
2220 SELECT #2360
: GOTO 2080
2240 DEFFN'229(R9,R9$)
: DATA LOAD BA T#R9,(0,R3)R9$()
: AND (STR(R9$(1),2,1),7F)
: R4=VAL(STR(R9$(1),2,1))
: R1$=R9$
: XOR (STR(R1$,2),R1$)
: R2$=STR(R1$,8,1)
: R3$=HEX(0000)
: ADDC(R3$,R2$)
: ADDC(R3$,R2$)
: ADDC(R3$,R2$)
2250 ADD(STR(R3$,1,1),STR(R3$,2,1))
: R3=VAL(R3$)
: R3=R3-INT(R3/R4)*R4
: R5=R3
2260 DATA LOAD BA T#R9,(R3,R)R9$()
: R6=0
: FOR R7=1TO 16
: IF R3<>0THEN 2270
: IF R7<>1THEN 2270
: R7=2
2270 R2$=STR(R9$(R7),1,1)
: IF R2$=HEX(00)THEN 2290
: IF R2$=HEX(10)THEN 2280
: IF R2$<>HEX(11)THEN 2300
2280 IF STR(R9$(R7),9,8)<>R9$THEN 2300
: R6=R7
2290 R7=16
2300 NEXT R7
: IF R2$=HEX(00)THEN 2310
: IF R6<>0THEN 2310
: R2$=HEX(00)
: R3=R3-1
: IF R3=R5THEN 2310
: IF R3>=0THEN 2260
: R3=R4-1
: GOTO 2260
2310 RETURN
2320 DIM Q6$64,W$8,W3$3,W4$1,W$(3)8,Q4(3),Q5(3)
2330 DEFFN'242(W0,Q6$)
: IF W0<=0THEN 2350
: IF W0=1THEN 2340
: STR(Q6$,2)=STR(Q6$,1,W0-1)
2340 PRINT Q6$;
2350 RETURN
2360 DEFFN'254
: GOSUB '248(2,0,1)
: INPUT "KEY RETURN(EXEC) TO RESUME ",Q6$
: W4$=Q6$
: GOSUB '248(1,0,3)
: Q6$=W4$
: RETURN
2370 DEFFN'243(Q6$,Q0)
: GOSUB 2490
2380 SELECT CO 205
: Q6$=" "
: INPUT Q6$
: IF Q0=0THEN 2520
: IF LEN(Q6$)<=Q0THEN 2520
: GOSUB 2480
2390 DEFFN'244(Q0)
: GOSUB 2510
: GOSUB 2500
: GOTO 2380
2400 DEFFN'245(Q6$,Q2,Q3)
: Q0=ABS(Q2)+Q3+1
: GOSUB 2490
2410 IF ABS(Q2)+ABS(Q3)=0THEN 2420
: GOSUB '242(ABS(Q2)+2,HEX(09))
: PRINT "/"
: GOTO 2430
2420 PRINT ,," "
2430 GOSUB 2510
: SELECT CO 205
: Q9,W0=-1E-99
: INPUT Q9
: IF W0=Q9THEN 2440
: IF ABS(Q2)+Q3=0THEN 2470
: IF Q9>=0THEN 2460
: IF Q2<=0THEN 2460
2440 GOSUB 2480
2450 DEFFN'246(Q2,Q3)
: Q0=ABS(Q2)+Q3+1
: GOSUB 2510
: GOSUB 2500
: GOTO 2410
2460 IF ABS(Q9)>=10^ABS(Q2)THEN 2440
: W0=ABS(Q9*10^Q3)
: IF INT(W0)<>W0THEN 2440
2470 GOSUB '248(3,0,1)
: RETURN
2480 GOSUB '248(3,0,1)
: PRINT "RE-ENTER"
: RETURN
2490 SELECT PRINT 005(64),CO 005
: PRINT HEX(010A);STR(Q6$,1);
2500 SELECT PRINT 005(64),CO 005
: GOSUB '242(Q0+2,"-")
: PRINT TAB(64)
2510 PRINT HEX(010A0A)
: RETURN
2520 PRINT HEX(0A);TAB(64)
: SELECT PRINT 005(64),CO 005
: RETURN
2530 DEFFN'248(Q6,Q7,Q8)
: GOSUB 2550
: IF Q8<1THEN 2540
: GOSUB 2540
: SELECT PRINT 205
: Q6$=" "
: PRINT STR(Q6$,Q7+1)
: IF Q8<2THEN 2540
: FOR W0=2TO Q8
: PRINT HEX(0A);STR(Q6$,1)
: NEXT W0
2540 PRINT HEX(01)
: GOSUB '242(Q7,HEX(09))
: GOSUB '242(Q6,HEX(0A))
2550 SELECT PRINT 005(64),CO 005
: RETURN