image of READY prompt

Wang2200.org

Listing of file='ISS.012U' on disk='vmedia/701-2423D.wvd.zip'

# Sector 192, program filename = 'ISS.012U'
0010 REM  ISS.012U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC.
0070 DIM F1$(10)11,A$4,P$32,A1$4,K$1,E$(16)16,F9$1
0120 %   THIS MUST BE STATEMENT 120
0170 S1$="ISS.254S"
   : LOAD DC T#0,<LEN(S1$)/8>S1$10,0BEG 210
0210 IF F9$=" "THEN 274
0230 PRINT AT(1,0,S0);"MOUNT INPUT DISK"
   : GOSUB '254
0260 LIMITS T#1,N$,A1,A1,A1,A2
   : ERRORGOTO 230
0270 IF A2<>2THEN 230
0274 PRINT HEX(0306);"BUILDING INDEX DISPLAY"
0290 F1$()=ALL(HEX(00))
   : DATA LOAD BA T#1,(0)E$()
   : I9=VAL(STR(E$(),2,1))*16
   : FOR J=1TO 10
   : GOSUB '55(10)
   : NEXT J
   : FOR J=1TO 5
   : GOSUB '55(1)
   : NEXT J
   : IF K$=HEX(07)THEN GOSUB 2850
   : ELSE GOTO 430
   : GOTO 630
0430 PRINT HEX(03);AT(1,0);"FN'0 - INDEX CONTROL    FN'16 - END   DISK ADDRESS
      = ";I1$
   : PRINT "FN'1 - FILE CONTROL                   FILE NAME = ";N$
   : PRINT AT(4,0);"  INDEX                      INPUT     OUTPUT    X-SEC"
0460 PRINT AT(5,0);"----------            --------------------------------"
   : PRINT AT(11,11);"<========>"
   : GOSUB 2850
   : I=1
   : GOSUB 2630
   : GOTO 630
0580 DEFFN'0
   : RETURN CLEAR ALL
0610 PRINT AT(0,0);TAB(S0)
0630 PRINT AT(11,0);
0640 KEYIN K$,640,640
   : KEYIN K$,,790
   : IF K$<>HEX(0D)OR STR(F1$(6),10)=HEX(0000)OR F2$(I)<>" "THEN 630
   : F2$(I)=F1$(6)
   : IF I<E1THEN I=I+1
   : GOSUB 2630
   : GOSUB '55(10)
   : GOSUB 2850
   : GOTO 630
0790 IF K$=HEX(01)THEN 1120
   : IF K$=HEX(10)THEN GOSUB '16
   : IF K$=HEX(1F)THEN GOSUB '31
   : IF K$=HEX(07)THEN 290
   : IF K$<HEX(0B)OR K$>HEX(0E)THEN 630
   : ON VAL(K$)-10GOTO 880,930,1040,990
0880 GOSUB '55(10)
   : GOSUB '55(10)
   : GOSUB '55(10)
   : GOSUB '55(10)
0930 GOSUB '55(10)
   : GOSUB 2850
   : GOTO 630
0990 GOSUB '55(1)
   : GOSUB '55(1)
   : GOSUB '55(1)
   : GOSUB '55(1)
1040 GOSUB '55(1)
   : GOSUB 2850
   : GOTO 630
1120 PRINT AT(11,27);
   : LINPUT ?F2$(I)
   : GOSUB 2110
   : PRINT AT(0,0,40)
   : PRINT AT(11,37);
   : IF F3$(I)<>" "THEN 1210
   : F3$(I)=F2$(I)
   : F4$(I)=BIN(E+1)
1210 LINPUT F3$(I)
   : GOSUB 2150
   : PRINT AT(0,0,40)
   : IF STR(M$,5,3)="OLD"THEN 1330
1260 PRINT AT(11,48);
   : CONVERT VAL(F4$(I))-1TO A$,(-###)
   : LINPUT A$
   : GOSUB 2180
   : F4$(I)=BIN(A+1)
   : PRINT AT(0,0,40)
1330 IF I<E1THEN I=I+1
   : GOSUB 2630
   : GOTO 1120
1410 DEFFN'4
   : I=MAX(INT(LEN(F2$())/8+1),LEN(F2$())/8)
   : IF I>E1THEN I=E1
   : GOSUB 2630
   : RETURN CLEAR
1460 GOTO 1120
1480 DEFFN'7
   : I=1
   : GOSUB 2630
   : RETURN CLEAR
1520 GOTO 1120
1540 DEFFN'8
   : F2$(I),F3$(I)=" "
   : F4$(I)=BIN(E+1)
   : GOSUB 2630
   : RETURN CLEAR
1590 GOTO 1120
1610 DEFFN'9
   : IF I=E1THEN 1700
   : STR(F2$(),I*8-7)=STR(F2$(),I*8+1)
   : STR(F3$(),I*8-7)=STR(F3$(),I*8+1)
   : STR(F4$(),I)=STR(F4$(),I+1)
1660 F4$(E1)=BIN(E+1)
   : GOSUB 2630
   : RETURN CLEAR
1690 GOTO 1120
1700 STR(F2$(),I*8-7)=" "
   : STR(F3$(),I*8-7)=" "
   : GOTO 1660
1740 DEFFN'10
   : IF F2$(E1)<>" "THEN 1120
   : MAT COPY -F2$()<I*8-7,(E1-I)*8>TO -F2$()<I*8-7>
   : MAT COPY -F3$()<I*8-7,(E1-I)*8>TO -F3$()<I*8-7>
   : MAT COPY -F4$()<I,E1-I>TO -F4$()<I>
   : F4$(I)=BIN(E+1)
   : GOSUB 2630
   : RETURN CLEAR
1820 GOTO 1120
1840 DEFFN'11
   : I=MIN(I+5,E1)
   : GOSUB 2630
   : RETURN CLEAR
1880 GOTO 1120
1900 DEFFN'12
   : I=MIN(I+1,E1)
   : GOSUB 2630
   : RETURN CLEAR
1940 GOTO 1120
1960 DEFFN'13
   : I=MAX(1,I-1)
   : GOSUB 2630
   : RETURN CLEAR
2000 GOTO 1120
2020 DEFFN'14
   : I=MAX(1,I-5)
   : GOSUB 2630
   : RETURN CLEAR
2060 GOTO 1120
2110 LIMITS T#1,F2$(I),M,M,M,M
   : IF M<1THEN GOSUB '113(1,"NOT AN ACTIVE FILE")
   : RETURN
2150 IF F2$(I)=" "THEN GOSUB '113(1,"INPUT FIELD NOT DEFINED")
   : RETURN
2180 IF NUM(STR(A$,1,LEN(A$)))<>LEN(A$)THEN GOSUB '113(2,"-1 <= EXTRA SECTORS
     <= 250")
   : CONVERT A$TO A
   : IF A<-1OR A>250THEN GOSUB '113(2,"-1 <= EXTRA SECTORS <= 250")
   : IF F2$(I)=" "THEN GOSUB '113(1,"INPUT FIELD NOT DEFINED")
   : IF F3$(I)=" "THEN GOSUB '113(1,"OUTPUT FIELD NOT DEFINED")
   : RETURN
2270 DEFFN'113(F,P$)
   : RETURN CLEAR ALL
2290 PRINT HEX(07010D);P$;TAB(80)
   : ON FGOTO 1120,1260
   : GOSUB '254
   : GOTO 260
2360 DEFFN'55(I5)
   : I8=VAL(STR(F1$(I5),10),2)
   : IF I5=10THEN F1$()=STR(F1$(),12)
   : ELSE MAT COPY -F1$()<1,99>TO -F1$()<12>
   : F1$(I5)=" "
   : STR(F1$(I5),10)=HEX(0000)
2450 I8=MOD(I8+SGN(I5-2),I9)
   : IF I8=0THEN RETURN
   : IF I7<>INT(I8/16)THEN DATA LOAD BA T#1,(INT(I8/16))E$()
   : I7=INT(I8/16)
   : IF STR(E$(MOD(I8,16)+1),1,1)<>HEX(10)THEN 2450
   : F1$(I5)=STR(E$(MOD(I8,16)+1),9)
   : IF STR(E$(MOD(I8,16)+1),2,1)=HEX(80)THEN STR(F1$(I5),9)="P"
   : ELSE STR(F1$(I5),9)="D"
   : STR(F1$(I5),10)=BIN(I8,2)
   : RETURN
2630 PRINT HEX(06);
   : IF I>5THEN 2680
   : FOR J=6TO 11-I
   : PRINT AT(J,22,35);
   : NEXT J
2680 K=MAX(11-I,5)
   : FOR J=MAX(1,I-5)TO MIN(E1,I+4)
   : K=K+1
   : CONVERT JTO A1$,(####)
   : A$=" "
   : IF F3$(J)<>" "AND STR(M$,5,3)="NEW"THEN CONVERT VAL(F4$(J))-1TO A$,(-###)
   : PRINT AT(K,22);A1$;"  ";STR(F2$(J),1);"  ";STR(F3$(J),1);"   ";STR(A$,1);
   : NEXT J
   : IF K>14THEN RETURN
   : FOR J=K+1TO 15
   : PRINT AT(J,22,35);
   : NEXT J
   : RETURN
2850 PRINT HEX(06);
   : FOR J=1TO 10
   : PRINT AT(5+J,0);STR(F1$(J),1,8);" ";STR(F1$(J),9,1);
   : NEXT J
   : RETURN
2920 DEFFN'16
   : RETURN CLEAR ALL
2950 PRINT HEX(06);AT(0,0,S0);"*** FINAL CHECK IN PROGRESS ***"
   : FOR I=1TO E1
   : GOSUB 2630
   : IF F2$(I)=" "AND F3$(I)=" "THEN 3110
   : F=1
   : GOSUB 2110
   : F=2
   : GOSUB 2150
   : IF STR(M$,5,3)="OLD"THEN 3110
   : F=3
   : CONVERT VAL(F4$(I))-1TO A$,(-###)
   : GOSUB 2180
3110 NEXT I
3150 LOAD DC T#0,"ISS.013U"
   : ERRORGOTO 3160
3160 PRINT HEX(010A);"MOUNT ISS DISK AT ADDRESS ";S$;TAB(S0)
   : GOSUB '254
   : GOTO 3150
3220 DEFFN'31
   : PRINT HEX(03)
   : COM CLEAR N$
3250 LOAD DC T#0,"ISS.100M"
   : ERRORGOTO 3260
3260 PRINT HEX(010A);"MOUNT ISS DISK AT ADDRESS ";S$
   : GOSUB '254
   : GOTO 3250