Listing of file='COPY020A' on disk='vmedia/701-2048D.wvd.zip'
# Sector 192, program filename = 'COPY020A'
0010 REM COPY020A,00-00(06/07/76),12003A - COPYRIGHT WANG LABS. INC., 1976
0270 DIM C1$(4)64,C2$(4)64,N1$8,B$(2,14)8
0280 DEFFNN(C0)=C0-INT((C0-1)/14)*14
: C0=1
: INIT(00)N$
: PRINT HEX(01);TAB(64)
: PRINT "MOUNT PLATTERS AT THE INDICATED ADDRESSES",TAB(64)
0330 KEYIN Q6$,330,330
: INPUT "KEY RETURN(EXEC) TO RESUME",Q6$
: PRINT HEX(010A),TAB(64),TAB(64),TAB(64)
0380 GOSUB '91
: IF N$=HEX(0000000000000000)THEN 510
: IF F=2THEN 460
: PRINT HEX(01);"COPYING FILE NUMBER";C0-1,TAB(64)
: PRINT "INPUT FILE NAME = ";N$,"OUTPUT FILE NAME = ";N1$;TAB(64)
: PRINT TAB(64)
: GOSUB 880
: IF Q6$="E"THEN 380
0460 IF F=1THEN 380
: PRINT HEX(01);"VERIFYING FILE NUMBER";C0-1,TAB(64)
: PRINT "INPUT FILE NAME = ";N$,"OUTPUT FILE NAME = ";N1$;TAB(64)
: GOSUB 590
: GOTO 380
0510 DEFFN'15
: PRINT HEX(030A);"MOUNT ISS PLATTER"
0530 KEYIN Q6$,530,530
: INPUT "KEY RETURN(EXEC) TO RESUME",Q6$
: COM CLEAR N$()
: LOAD DC T#0,"START040"
0590 GOSUB '229(3,N1$)
: IF R2$=HEX(10)THEN 700
: PRINT HEX(010A);"FILE - ";N1$;" - DOES NOT EXIST ON OUTPUT PLATTER.";TAB(
63)
0620 KEYIN Q6$,620,620
: INPUT "KEY RETURN(EXEC) TO RESUME",Q6$
: GOTO 680
0650 PRINT HEX(010A);"FILE - ";N1$;" - DOES NOT VERIFY";TAB(64)
0660 KEYIN Q6$,660,660
: INPUT "KEY RETURN(EXEC) TO RESUME",Q6$
0680 Q6$="E"
: RETURN
0700 LIMITS T#2,N$,X1,Y1,Z1
: LIMITS T#3,N1$,X2,Y2,Z2
: FOR I=1TO Z1-1
: DATA LOAD BA T#2,(X1,X1)C2$()
: DATA LOAD BA T#3,(X2,X2)C1$()
: IF I<>1THEN 800
: IF STR(R9$(R6),2,1)=HEX(80)THEN 840
0800 IF C1$(1)<>C2$(1)THEN 650
: IF C1$(2)<>C2$(2)THEN 650
: IF C1$(3)<>C2$(3)THEN 650
: IF C1$(4)<>C2$(4)THEN 650
0840 NEXT I
: RETURN
0880 GOSUB '229(3,N1$)
: IF STR(M$,10)="REPLACE"THEN 910
: IF M$<>"REPLACE"THEN 930
0910 IF R2$=HEX(00)THEN 950
: GOTO 1010
0930 IF R2$=HEX(00)THEN 1010
0950 PRINT HEX(010A);"FILE - ";N$;" - CAN NOT BE COPIED";TAB(63)
0960 KEYIN Q6$,960,960
: INPUT "KEY RETURN(EXEC) TO RESUME",Q6$
: Q6$="E"
: GOTO 1520
1010 LIMITS T#2,N$,X1,Y1,Z1
: A=Z1+E
: IF E>=0THEN 1070
: A=Y1-X1+1
1070 IF STR(M$,10)="REPLACE"THEN 1090
: IF M$<>"REPLACE"THEN 1130
1090 LIMITS T#3,N1$,X2,Y2,Z2
: IF Y2-X2+1<ATHEN 950
: GOTO 1210
1130 DATA LOAD BA T#3,(0,I)R9$()
: AND (STR(R9$(1),3,1),7F)
: AND (STR(R9$(1),5,1),7F)
: IF A>256*VAL(STR(R9$(1),5,1))+VAL(STR(R9$(1),6,1))-(256*VAL(STR(R9$(1),3,
1))+VAL(STR(R9$(1),4,1)))THEN 950
: DATA SAVE DC OPEN T#3,A,N1$
: LIMITS T#3,N1$,X2,Y2,Z2
1210 DATA LOAD BA T#2,(X1,X1)C1$()
: Q6$=C1$(1)
: AND (STR(Q6$,1,1),40)
: IF STR(Q6$,1,1)<>HEX(40)THEN 1290
: STR(C1$(1),2,8)=N1$
1290 DATA SAVE BA T#3,(X2,X2)C1$()
: IF Z1-1<2THEN 1390
: FOR I=2TO Z1-1
: DATA LOAD BA T#2,(X1,X1)C1$()
: DATA SAVE BA T#3,(X2,X2)C1$()
: NEXT I
1390 DATA LOAD BA T#2,(Y1,Y1)C1$()
: STR(C1$(1),1,1)=HEX(A0)
: GOSUB '229(2,N$)
: IF STR(R9$(R6),2,1)=HEX(00)THEN 1510
: GOSUB '229(3,N1$)
: STR(R9$(R6),1,2)=HEX(1080)
: DATA SAVE BA T#3,(R3,R)R9$()
: STR(C1$(1),1,1)=HEX(20)
1510 DATA SAVE BA T#3,(Y2,Y2)C1$()
1520 RETURN
1550 DEFFN'91
: IF M$="ALL"THEN 1740
: IF STR(M$,1,8)<>"INDIRECT"THEN 1680
: IF C0>1THEN 1600
: LIMITS T#2,N$(1,1),Z,Z1,Z1
1600 IF FNN(C0)<>1THEN 1630
: DATA LOAD DA T#2,(Z,Z)B$()
: IF END THEN 1720
1630 N$=B$(1,FNN(C0))
: N1$=B$(2,FNN(C0))
: IF N$<>" "THEN 1770
: C0=C0+1
: GOTO 1600
1680 IF C0>CTHEN 1720
: N$=N$(1,C0)
: N1$=N$(2,C0)
: GOTO 1770
1720 INIT(00)N$
: RETURN
1740 GOSUB '90(2,N$)
: N1$=N$
: IF N5<0THEN 1740
1770 C0=C0+1
: RETURN
1810 DEFFN'90(N,N$)
: GOSUB '229(N,N$)
: N5,N1=0
: IF R6<>0THEN 1870
: R=0
: GOTO 2000
1870 IF R6=16THEN 1980
: R6=R6+1
1890 FOR N0=R6TO 16
: IF (N0-1)+ABS(R-1)=0THEN 1970
: IF STR(R9$(N0),1,1)=HEX(21)THEN 1970
: ON VAL(STR(R9$(N0),1,1))-15GOTO 1940,1970
: GOTO 1960
1940 N$=STR(R9$(N0),9,8)
: N1=1
1960 N0=16
1970 NEXT N0
1980 IF N1=1THEN 2040
: IF R>=R4THEN 2030
2000 DATA LOAD BA T#N,(R,R)R9$()
: R6=1
: GOTO 1890
2030 INIT(00)N$
2040 RETURN
2050 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$)
2060 ADD(STR(R3$,1,1),STR(R3$,2,1))
: R3=VAL(R3$)
: R3=R3-INT(R3/R4)*R4
: R5=R3
2070 DATA LOAD BA T#R9,(R3,R)R9$()
: R6=0
: FOR R7=1TO 16
: IF R3<>0THEN 2080
: IF R7<>1THEN 2080
: R7=2
2080 R2$=STR(R9$(R7),1,1)
: IF R2$=HEX(00)THEN 2100
: IF R2$=HEX(10)THEN 2090
: IF R2$<>HEX(11)THEN 2110
2090 IF STR(R9$(R7),9,8)<>R9$THEN 2110
: R6=R7
2100 R7=16
2110 NEXT R7
: IF R2$=HEX(00)THEN 2120
: IF R6<>0THEN 2120
: R2$=HEX(00)
: R3=R3-1
: IF R3=R5THEN 2120
: IF R3>=0THEN 2070
: R3=R4-1
: GOTO 2070
2120 RETURN