image of READY prompt

Wang2200.org

Listing of file='2229FS' on disk='vmedia/2229_diagnostics.wvd.zip'

# Sector 268, program filename = '2229FS'
0010 REM %  "2229FS"  - COMMENTS STRIPPED TO FIT IN MEMORY
0015 REM ST 02/23/1986
0020 REM % COPYRIGHT WANG LABORATORIES, INC., 1986
0025 REM Changes ---> version 2.0
0026 REM CHANGED LINE 100 TO 'FOR A = 0 TO C-1' FOR CORRECT INDEX SECTORS
0027 REM CHANGED LINE 510 TO SAVE CORRECT MAXIMUM NUMBER OF FILES (2048)
0030 COM F$8
   : DIM D$3,N$(2048)8,N1$(2048)3,S(2048),L$(2048)2,W$(2048)4,I$(16),J8$1,J9$1
     ,K$1,F1$8,D1$3,Y$1,J$8,L$2,I$8,K1$2
0040 J8$=HEX(80)
   : J9$=HEX(96)
   : PRINT HEX(03020402040E);AT(0,21);"CREATE REFERENCE FILE"
   : L$()=ALL(00)
   : N1$()=ALL(J8$)
   : PRINT HEX(0202020E)
   : PRINT HEX(0F)
   : I$=HEX(1080100011801100)
0060 IF D$=" "THEN D$="D11"
   : PRINT AT(2,0);HEX(020402000F);
   : LINPUT "Source disk address ",D$
   : IF VER(D$,"HHH")=3THEN 65
   : PRINT AT(2,25,40);"Illegal Address";HEX(07)
   : GOTO 60
0065 SELECT #2<D$>
   : ERRORA=1
   : GOTO 80
0070 VERIFY T#2,(0,0)A
   : ERRORA=1
0080 IF A=0THEN 90
   : PRINT AT(2,25,40);"Error ";ERR;HEX(07)
   : GOTO 60
0090 PRINT AT(2,25,40);AT(3,0);HEX(06);"Sorting disk catalog - please wait ...
     "
0100 N$()=ALL(FF)
   : J=1
   : DATA LOAD BA T#2,(0)I$()
   : C=VAL(STR(I$(),2))
   : FOR A=0TO C-1
   : DATA LOAD BA T#2,(A)I$()
   : FOR B=1TO 16
   : IF A=0AND B=1THEN NEXT B
0105 MAT SEARCHI$,=STR(I$(B),1,2)TO L$STEP 2
   : IF VAL(L$,2)=0THEN 170
   : RESTORE LINE730,1+(VAL(L$,2)/2)
   : READ STR(N1$(J),2,2)
0160 STR(N1$(J),1,1)=J8$
   : STR(N$(J),1,8)=STR(I$(B),9,8)
   : S(J)=VAL(STR(I$(B),5,2),2)-VAL(STR(I$(B),3,2),2)+1
   : J=J+1
   : IF J<=2048THEN 170
   : PRINT AT(02,0); "Cannot handle more than 2048 entries in index"
   : PRINT "Use Backup Platter to Tape"
   : STOP
   : GOTO 10
0170 NEXT B,A
   : J=J-1
   : IF J=0THEN 800
   :  P=INT(J/16)
   : IF P=J/16THEN 180
   : ELSE P=P+1
0180 MAT SORTN$()TO W$(),L$()
   : PRINT HEX(06),AT(1,0,)
0190 PRINT AT(06,58);HEX(020402000E);"ACTIVE KEYS";HEX(0F)
   : PRINT AT(08,55);"Cursor Up/Down"
   : PRINT AT(09,55);"Space/Backspace"
   : PRINT AT(10,55);"Insert/Delete"
   : PRINT AT(11,55);"A / Select all files"
0195 PRINT AT(12,55);"N / Next Screen";AT(13,55);"P / Previous Screen";AT(14,5
     5);"SF '00 - All P";AT(15,55);"SF '01 - All D";AT(16,55);"SF '02 - All SP
     ";AT(17,55);"SF '03 - All SD";AT(21,55);HEX(0E);"Press RUN when done";HEX
     (0F)
0210 PRINT AT(2,55);"Disk address    ";D$; AT(3,55);"Files selected"; AT(4,5);
     HEX(020402000E); "   Name        Type     Sectors";HEX(0F0D)
   : J1=1
   : P1=0
0230 FOR A=6TO 22
   : PRINT HEX(06);AT(A,0,35);
   : NEXT A
0240 C=1
0250 %##############  ###.##%
0260 PRINT AT(J1+5,C);
   : X=VAL(L$(J1+P1*16),2)
   : PRINTUSING 270,STR(N1$(X),1,1),N$(X),STR(N1$(X),2,2),S(X);
0270 % #     ########     ##      #####
0280 J1=J1+1
   : IF J1+P1*16>JTHEN 290
   : IF J1<17THEN 260
0290 J1=1
   : C=2
0300 X=VAL(L$(J1+P1*16),2)
   : PRINT AT(J1+5,C);HEX(02050F);
   : KEYIN K$,,330
   : PRINT HEX(06);
   : ON POS(HEX(504E200841824944)=K$) GOTO 340,350,370,390,440,490,460,480
   : PRINT HEX(07)
   : GOTO 300
0330 PRINT HEX(06);
   : ON POS(HEX(064605450A4A0949424300010203)=K$)GOTO 390,390,370,370,460,460,
     480,480,340,350,440,440,440,440
   : PRINT HEX(07)
   : GOTO 300
0340 IF P1=0THEN 290
   : REM ON FIRST SCREEN
   : P1=P1-1
   : J1=1
   : GOTO 230
0350 IF P1+1 <PTHEN 360
   : J1=1
   : GOTO 240
0360 P1=P1+1
   : J1=1
   : GOTO 230
0370 J1=J1+1
   : IF J1+P1*16>JTHEN 380
   : IF J1<17THEN 300
   : J1=1
   : GOTO 300
0380 J1=1
   : GOTO 300
0390 IF J1=1THEN 400
   : J1=J1-1
   : GOTO 300
0400 IF P1+1=PTHEN 410
   : J1=16
   : GOTO 300
0410 J1=MOD(J,16)
   : GOTO 300
0440 FOR J2=1TO J
   : IF K$="A"THEN 445
   : RESTORE LINE730,VAL(K$)+1
   : READ K1$
   : IF K1$<>STR(N1$(J2),2,2)THEN 446
0445 IF STR(N1$(J2),1,1)=J8$THEN F=F+1
   : STR(N1$(J2),1,1)=J9$
0446 NEXT J2
0450 PRINT AT(3,70);
   : PRINTUSING 470,F
   : GOTO 210
   : R1=16
   : IF MOD(J,16)<>0AND P1=INT(J/16)THEN R1=MOD(J,16)
   : FOR J2=1TO R1
   : PRINT AT(J2+5,2);J9$
   : NEXT J2
   : GOTO 300
0460 X=VAL(L$(J1+P1*16),2)
   : IF STR(N1$(X),1,1)=J8$THEN F=F+1
   : STR(N1$(X),1,1)=J9$
   : PRINT AT(J1+5,C);J9$
   : PRINT AT(3,70);
   : PRINTUSING 470,F
   : GOTO 370
0470 %####
0480 X=VAL(L$(J1+P1*16),2)
   : IF STR(N1$(X),1,1)=J9$THEN F=F-1
   : STR(N1$(X),1,1)=J8$
   : PRINT AT(J1+5,C);J8$
   : PRINT AT(3,70);
   : PRINTUSING 470,F
   : GOTO 370
0490 PRINT HEX(06);AT(1,0,)
   : G,G1=1
0500 IF STR(N1$(G1),1,1)=J8$THEN 510
   : N$(G)=N$(G1)
   : G=G+1
0510 G1=G1+1
   : IF G1<=2048THEN 500
   : G=G-1
   : IF G=0THEN 720
   : G1=INT(G/32)*2+3
0520 PRINT HEX(060202000F);AT(1,0,)
0530 PRINT AT(2,0);
   : LINPUT "Reference file name",-F1$
0540 A=0
   : PRINT AT(3,0);
   : LINPUT "Reference file address ",-D1$
   : IF VER(D1$,"HHH")=3THEN 545
   : PRINT AT(3,30,30);"Illegal Address";HEX(07);
   : GOTO 540
0545 SELECT #3<D1$>
   : ERRORA=1
   : GOTO 575
0550 VERIFY T#3,(0,0)A
   : ERRORA=1
   : GOTO 575
0570 LIMITS T#3,F1$,A,B,C,D
   : ERRORA=1
   : GOTO 575
0572 IF ABS(D)<>1THEN 580
   : PRINT AT(2,30,40);"ERROR - NOT DATA FILE"
   : GOTO 530
0575 IF A=0THEN 580
   : PRINT AT(3,30,30);"ERROR ";ERR;HEX(07)
   : GOTO 540
0580 PRINT AT(3,30,40)
   : IF D<>0THEN 610
   : REM JUMP IF ALREADY ON DISK
   : PRINT AT(4,0); F1$;" does not exist - OK to create new file (Y/N)";
   : Y$="Y"
   : LINPUT -Y$
   : IF Y$="Y"OR Y$="y"THEN 600
   : IF Y$="N"OR Y$="n"THEN 520
   : GOTO 580
0600 DATA SAVE DC OPEN T#3,(G1)F1$
   : LIMITS T#3,F1$,A,B,C,D
   : GOTO 670
0610 PRINT AT(6,0,79);"'";F1$;"' already exists "
   : PRINT "Can file be overwritten (Y OR N)";
   : Y$="N"
   : LINPUT -Y$
   : IF Y$="Y"OR Y$="y"THEN 620
   : IF Y$="N"OR Y$="n"THEN 520
   : GOTO 610
0620 IF G1<=B-A+1THEN 660
   : PRINT AT(6,0,79);"Old file is too small.  "
   : J$="@JUNKAAA"
0630 LIMITS T #3,J$,A,A,A,A
   : IF A=0THEN 640
   : A=POS(-J$<"Z")
   : STR(J$,A,1)=ADD HEX(01)
   : IF A<8 THEN STR(J$,A+1)=ALL("A")
   : GOTO 630
0640 PRINT "Can the file be junked (renamed to ";J$;" & scratched)?";
   : Y$="N"
   : LINPUT -Y$
   : IF Y$="Y"OR Y$="y"THEN 650
   : IF Y$="N"OR Y$="n"THEN 520
   : GOTO 640
0650 SCRATCH T #3,F1$
   : DATA SAVE DC OPEN T #3,F1$,J$
   : SCRATCH T #3,J$
   : PRINT AT(6,0,159);
   : GOTO 600
0660 SCRATCH T#3,F1$
   : DATA SAVE DC OPEN T#3,(F1$)F1$
   : ERRORGOTO 10
0670 MAT REDIM N$(G)8
   : DATA LOAD DC OPEN T#3,F1$
   : ERRORGOTO 10
0680 DATA SAVE DC #3,D$,N$()
   : ERRORGOTO 10
0690 DATA SAVE DC #3,END
   : ERRORGOTO 10
0700 DATA SAVE DC CLOSEALL
   : PRINT
   : PRINT HEX(07);"DONE"
0710 $GIO(75FF 75FF 75FF 75FF)
   : F$=".2229"
   : $PSTAT=".2229"
   : LOAD T"@MENU"
0720 PRINT
   : PRINT "No file names selected"
   : GOTO 710
0730 DATA " P"," D","SP","SD"
0800 PRINT
   : PRINT "Index is empty"
   : GOTO 710
9000 $CLOSE
   : PRINT AT(10,0,79);"DISK ERROR ";ERR
   : GOSUB '153
   : STOP
   : GOTO 10