image of READY prompt

Wang2200.org

Listing of file='COPY010A' on disk='vmedia/701-2048D.wvd.zip'

# Sector 160, program filename = 'COPY010A'
0010 REM COPY010A,00-00(02/18/76),12003A - COPYRIGHT WANG LABS. INC., 1976
0190 COM N$(2,100)8,F,M$16,E,N$8,C,N1$8
   : COM R1$8,R2$1,R3$2,R9$8,R9$(16),I$3,O$3
   : DIM B$(1)2,Q6$64
   : INIT(20)N$()
   : PRINT HEX(03)
   : DATA LOAD DC OPEN T#0,"COPYF010"
   : DATA LOAD DC #0,I$,O$,F,M$,E
   : GOSUB 1050
   : GOSUB 1160
   : PRINT HEX(03)
   : GOSUB 2130
0360 GOSUB '243("ARE THE PARAMETERS OK? (Y/N)",1)
   : IF Q6$="Y"THEN 1260
   : IF Q6$="N"THEN 430
   : GOSUB 2560
   : GOTO 360
0430 F$="N"
   : GOSUB '245("ENTER ITEM TO BE CHANGED.  (0=END,6=SWITCH INPUT AND OUTPUT)"
     ,1,0)
   : IF Q9=0THEN 1260
   : IF Q9=6THEN 540
   : IF Q9<6THEN 500
   : GOSUB 2560
   : GOTO 430
0500 ON Q9GOSUB 590,720,800,1030,1140
0510 GOSUB 2130
   : GOTO 430
0540 Q6$=I$
   : I$=O$
   : O$=Q6$
   : GOTO 510
0590 GOSUB '248(11,0,0)
   : PRINT ,"FUNCTIONS AVAILABLE"
   : PRINT ,"   1 - COPY"
   : PRINT ,"   2 - VERIFY"
   : PRINT ,"   3 - COPY AND VERIFY"
0640 GOSUB '245("ENTER THE NUMBER OF THE FUNCTION DESIRED.",1,0)
   : IF (Q9-1)*(Q9-2)*(Q9-3)=0THEN 680
   : GOSUB 2560
   : GOTO 640
0680 F=Q9
   : GOSUB '248(11,0,4)
   : RETURN
0720 GOSUB '245("ENTER THE NUMBER OF ADDITIONAL SECTORS/FILE. (-1 = LEAVE AS I
     S)",-2,0)
   : IF Q9=-1THEN 770
   : IF Q9>=0THEN 770
   : GOSUB 2560
   : GOTO 720
0770 E=Q9
   : RETURN
0800 GOSUB '248(11,0,0)
   : PRINT TAB(22);"MODES AVAILABLE"
   : PRINT ,"1 - ALL","4 - RENAME"
   : PRINT ,"2 - PART","5 - INDIRECT PART"
   : PRINT ,"3 - REPLACE","6 - INDIRECT REPLACE"
0850 GOSUB '245("ENTER THE NUMBER OF THE DESIRED MODE.",1,0)
   : IF INT(Q9)<>Q9THEN 880
   : ON Q9GOTO 900,920,940,960,980,1000
0880 GOSUB 2560
   : GOTO 850
0900 M$="ALL"
   : RETURN
0920 M$="PART"
   : RETURN
0940 M$="REPLACE"
   : RETURN
0960 M$="RENAME"
   : RETURN
0980 M$="INDIRECT PART"
   : RETURN
1000 M$="INDIRECT REPLACE"
   : RETURN
1030 GOSUB '243("ENTER THE INPUT ADDRESS.",3)
   : I$=Q6$
1050 IF I$=O$THEN 1110
   : IF STR(I$,1,1)="B"THEN 1080
   : IF STR(I$,1,1)<>"3"THEN 1110
1080 GOSUB '97(I$)
   : IF Q6$="N"THEN 1110
   : RETURN
1110 GOSUB 2560
   : GOTO 1030
1140 GOSUB '243("ENTER THE OUTPUT ADDRESS.",3)
   : O$=Q6$
1160 IF I$=O$THEN 1220
   : IF STR(O$,1,1)="B"THEN 1190
   : IF STR(O$,1,1)<>"3"THEN 1220
1190 GOSUB '97(O$)
   : IF Q6$="N"THEN 1220
   : RETURN
1220 GOSUB 2560
   : GOTO 1140
1260 IF F$=" "THEN 1370
   : GOSUB '243("DO YOU WISH TO SAVE THESE VALUES AS THE SYSTEM DEFAULTS?   Y/
     N",1)
   : IF Q6$="N"THEN 1370
   : IF Q6$="Y"THEN 1320
   : GOSUB 2560
   : GOTO 1260
1320 DATA LOAD DC OPEN T#0,"COPYF010"
   : DATA SAVE DC #0,I$,O$,F,M$,E
   : DATA SAVE DC END
1370 GOSUB '248(0,0,4)
   : GOSUB '98(1400,2,I$)
   : LOAD DC T#0,"SELECT"1400,1400
1400 % SELECT #2 GOES HERE
1410 GOSUB '98(1430,3,O$)
   : LOAD DC T#0,"SELECT"1430,1430
1430 % SELECT #3 GOES HERE
1440 COM CLEAR I$
   : IF M$="ALL"THEN 2100
   : PRINT HEX(010A);"MOUNT INPUT PLATTER";TAB(64)
   : GOSUB '254
   : C=0
   : IF STR(M$,1,8)<>"INDIRECT"THEN 1610
1530 GOSUB '243("ENTER THE NAME OF THE REFERENCE FILE.",8)
   : GOSUB '229(2,Q6$)
   : IF R2$=HEX(10)THEN 1580
   : GOSUB 2560
   : GOTO 1530
1580 N$(1,1),N$(2,1)=Q6$
   : GOTO 2070
1610 PRINT HEX(010A);"ENTER THE NAME OF FILE #";C+1,"  (0 = END)";TAB(64)
   : GOSUB '244(8)
   : IF Q6$=" "THEN 1610
   : N$=Q6$
   : MAT SEARCHN$()<1,800>,=STR(N$,1,8)TO B$()STEP 8
   : IF B$(1)=HEX(0000)THEN 1740
   : GOSUB '248(3,0,1)
1710 PRINT "FILE - ";N$;" - IS A DUPLICATE FILE NAME"
   : GOTO 1610
1740 IF N$="0"THEN 2000
   : GOSUB '229(2,N$)
   : IF R2$=HEX(10)THEN 1820
   : GOSUB '248(3,0,1)
   : PRINT "FILE - ";N$;" - DOES NOT EXIST"
   : GOTO 1610
1820 C=C+1
   : N$(1,C),N$(2,C)=N$
   : PRINT HEX(01);"INPUT FILE = ";N$;TAB(63)
   : IF M$="PART"THEN 1960
1870 GOSUB '243("ENTER THE NAME OF THE OUTPUT FILE.  (EXEC = SAME AS INPUT)",8
     )
   : N1$=Q6$
   : IF N1$=" "THEN 1960
   : MAT SEARCHN$()<801,800>,=STR(N1$,1,8)TO B$()STEP 8
   : IF B$(1)=HEX(0000)THEN 1950
   : GOSUB '248(3,0,1)
1930 PRINT "FILE - ";N1$;" - IS A DUPLICATE FILE NAME"
   : GOTO 1870
1950 N$(2,C)=N1$
1960 PRINT HEX(01);"INPUT FILE = ";N$;TAB(32);"OUTPUT FILE = ";N$(2,C);TAB(63)
   : IF C<100THEN 1610
2000 IF C>0THEN 2070
   : PRINT HEX(030A);"NUMBER OF FILES = 0"
   : GOSUB '254
2030 DEFFN'15
   : COM CLEAR N$()
   : LOAD DC T#0,"START040"
2070 PRINT HEX(01);TAB(64)
   : PRINT "REMOUNT ISS PLATTER IF REMOVED.";TAB(64)
   : GOSUB '254
2100 LOAD DC T#0,"COPY020A"
2130 GOSUB '248(5,0,0)
   : PRINT ,"ISS COPY/VERIFY UTILITY"
   : PRINT
   : PRINT " 1. FUNCTION = ";
   : ON F-1GOTO 2200,2220
   : PRINT "COPY";
   : GOTO 2230
2200 PRINT "VERIFY";
   : GOTO 2230
2220 PRINT "COPY/VERIFY";
2230 PRINT TAB(32);"4. INPUT ADDRESS = ";I$
   : PRINT " 2. EXTRA SECTORS =";
   : IF E=-1THEN 2280
   : PRINT E;
   : GOTO 2290
2280 PRINT " UNCHANGED";
2290 PRINT TAB(32);"5. OUTPUT ADDRESS = ";O$
   : PRINT " 3. MODE = ";M$;TAB(64)
   : GOSUB '248(11,0,4)
   : RETURN
2330 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$)
2340 ADD(STR(R3$,1,1),STR(R3$,2,1))
   : R3=VAL(R3$)
   : R3=R3-INT(R3/R4)*R4
   : R5=R3
2350 DATA LOAD BA T#R9,(R3,R)R9$()
   : R6=0
   : FOR R7=1TO 16
   : IF R3<>0THEN 2360
   : IF R7<>1THEN 2360
   : R7=2
2360 R2$=STR(R9$(R7),1,1)
   : IF R2$=HEX(00)THEN 2380
   : IF R2$=HEX(10)THEN 2370
   : IF R2$<>HEX(11)THEN 2390
2370 IF STR(R9$(R7),9,8)<>R9$THEN 2390
   : R6=R7
2380 R7=16
2390 NEXT R7
   : IF R2$=HEX(00)THEN 2400
   : IF R6<>0THEN 2400
   : R2$=HEX(00)
   : R3=R3-1
   : IF R3=R5THEN 2400
   : IF R3>=0THEN 2350
   : R3=R4-1
   : GOTO 2350
2400 RETURN
2410 DEFFN'242(W0,Q6$)
   : IF W0<=0THEN 2430
   : IF W0=1THEN 2420
   : STR(Q6$,2)=STR(Q6$,1,W0-1)
2420 PRINT Q6$;
2430 RETURN
2440 DEFFN'254
   : GOSUB '248(2,0,1)
   : INPUT "KEY RETURN(EXEC) TO RESUME ",Q6$
   : W4$=Q6$
   : GOSUB '248(1,0,3)
   : Q6$=W4$
   : RETURN
2450 DEFFN'243(Q6$,Q0)
   : GOSUB 2570
2460 SELECT CO 205
   : Q6$=" "
   : INPUT Q6$
   : IF Q0=0THEN 2600
   : IF LEN(Q6$)<=Q0THEN 2600
   : GOSUB 2560
2470 DEFFN'244(Q0)
   : GOSUB 2590
   : GOSUB 2580
   : GOTO 2460
2480 DEFFN'245(Q6$,Q2,Q3)
   : Q0=ABS(Q2)+Q3+1
   : GOSUB 2570
2490 IF ABS(Q2)+ABS(Q3)=0THEN 2500
   : GOSUB '242(ABS(Q2)+2,HEX(09))
   : PRINT "/"
   : GOTO 2510
2500 PRINT ,," "
2510 GOSUB 2590
   : SELECT CO 205
   : Q9,W0=-1E-99
   : INPUT Q9
   : IF W0=Q9THEN 2520
   : IF ABS(Q2)+Q3=0THEN 2550
   : IF Q9>=0THEN 2540
   : IF Q2<=0THEN 2540
2520 GOSUB 2560
2530 DEFFN'246(Q2,Q3)
   : Q0=ABS(Q2)+Q3+1
   : GOSUB 2590
   : GOSUB 2580
   : GOTO 2490
2540 IF ABS(Q9)>=10^ABS(Q2)THEN 2520
   : W0=ABS(Q9*10^Q3)
   : IF INT(W0)<>W0THEN 2520
2550 GOSUB '248(3,0,1)
   : RETURN
2560 GOSUB '248(3,0,1)
   : PRINT "RE-ENTER"
   : RETURN
2570 SELECT PRINT 005(64),CO 005
   : PRINT HEX(010A);STR(Q6$,1);
2580 SELECT PRINT 005(64),CO 005
   : GOSUB '242(Q0+2,"-")
   : PRINT TAB(64)
2590 PRINT HEX(010A0A)
   : RETURN
2600 PRINT HEX(0A);TAB(64)
   : SELECT PRINT 005(64),CO 005
   : RETURN
2610 DEFFN'248(Q6,Q7,Q8)
   : GOSUB 2630
   : IF Q8<1THEN 2620
   : GOSUB 2620
   : SELECT PRINT 205
   : Q6$=" "
   : PRINT STR(Q6$,Q7+1)
   : IF Q8<2THEN 2620
   : FOR W0=2TO Q8
   : PRINT HEX(0A);STR(Q6$,1)
   : NEXT W0
2620 PRINT HEX(01)
   : GOSUB '242(Q7,HEX(09))
   : GOSUB '242(Q6,HEX(0A))
2630 SELECT PRINT 005(64),CO 005
   : RETURN
2660 DEFFN'97(Q6$)
   : STR(Q6$,4)=HEX(00300131023203330434053506360737083809390A410B420C430D440E
     450F462020)
   : $TRAN(Q6$<2,2>,Q6$<4>)R
   : IF STR(Q6$,2,1)>HEX(0F)THEN 2800
   : IF STR(Q6$,3,1)>HEX(0F)THEN 2800
   : ROTATE(STR(Q6$,2,1),4)
2730 STR(Q6$,4,1)=STR(Q6$,2,1)
   : OR (STR(Q6$,4,1),STR(Q6$,3,1))
   : $GIO(02000316122273404400,Q6$)
   : IF STR(Q6$,8,1)<>HEX(00)THEN 2800
   : Q6$="Y"
   : RETURN
2800 Q6$="N"
   : F$="N"
   : RETURN
2850 DEFFN'98(Q8,Q9,Q6$)
   : R9$(1)=HEX(20FF0000A5D7313331300D0000FE)
   : PACK(####)STR(R9$(1),3,2)FROMQ8
   : CONVERT Q9TO STR(R9$(1),7,1),(#)
   : STR(R9$(1),8,3)=Q6$
   : LIMITS T#0,"SELECT",Q8,Q9,Q9
   : DATA SAVE BA T#0,(Q8+1,Q9)R9$()
   : RETURN