Listing of file='ISS.041U' on disk='vmedia/701-2423D.wvd.zip'
# Sector 399, program filename = 'ISS.041U' 0010 REM ISS.041U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC. 0068 DIM Z5$60,Z6$4,E$64 : DIM N1$8,N2$8 : DIM M$(8)1,I$(256)1,R9$(16)16,P$10,O$(256)1,W$(252)1,G$8,H$2,H1$64 0120 % THIS MUST BE STATEMENT 120 0270 S1$="ISS.254SISS.226SISS.227SISS.229SISS.217S" : LOAD DC T#0,<LEN(S1$)/8>S1$10,0BEG 290 0290 IF S$(1)<>" "THEN SELECT #4<S$(1)> : IF F9$=" "THEN 350 0310 PRINT AT(1,0,S0);"MOUNT PLATTERS AT INDICATED ADDRESSES" : GOSUB '254 : DATA LOAD BA T#1,(0)I$() : ERRORGOTO 310 0340 DATA LOAD BA T#2,(0)I$() : ERRORGOTO 310 0350 D=0 0370 GOSUB '91 : IF N1$=HEX(0000000000000000)THEN GOSUB '31 : D=D+1 : PRINT AT(0,0);"DECOMPRESSING FILE #";D : PRINT "INPUT - ";N1$;" OUTPUT - ";N2$;TAB(64) : LIMITS T#1,N1$,A1,A2,A3,A4 : IF A4<>1THEN 2820 : DATA LOAD BA T#1,(A1)I$() : AND (I$(1),F0) : IF I$(1)<>HEX(50)THEN 550 : E$="FILE "&N1$&" IS PROTECTED" : GOSUB '92(E$) : GOTO 370 0550 E1=3*A3 : DATA SAVE DC OPEN T#2,(E1)N2$ : ERRORGOTO 2820 0580 LIMITS T#2,N2$,B1,B2,B3 : DATA LOAD BA T#1,(A1)O$() : STR(O$(),2,8)=N2$ : DATA SAVE BA T#2,(B1)O$() : GOSUB 890 : DATA LOAD DC OPEN T#2,N2$ : DSKIP #2,ES : DATA SAVE DC #2,END : $OPEN #2 : IF N<1THEN N=1 : GOSUB '227(2,N2$,N-1) : LIMITS T#2,N2$,B1,B2,B3 : DATA LOAD BA T#2,(B2)O$() : O$(1)=HEX(20) : STR(O$(),2,2)=SUBCHEX(0001) : DATA SAVE BA T#2,(B2)O$() : GOSUB '229(2,N2$) : STR(R9$(R6),2,1)=HEX(80) 0820 DATA SAVE BA T#2,(R3)R9$() : $CLOSE#2 : GOTO 370 0890 I=A1+1 : G=B1+1 : O9=0 : I9=4 : E=1 : L1=0 : GOSUB 1230 1000 UNPACK(####)STR(I$(),3,2)TO L : P=POS(I$()=HEX(0D))+1 : IF P=1THEN 1170 : W$()=STR(I$(),5,P-5) : I$()=STR(I$(),P+1) : IF STR(I$(),1,2)<>HEX(00FF)THEN GOSUB 1230 : IF L1<10000THEN UNPACK(####)STR(I$(),3,2)TO L1 : GOSUB 2090 : IF L1<10000THEN 1000 1170 GOSUB 2620 : RETURN 1230 IF I>A1+A3-2THEN 2030 : DATA LOAD BA T#1,(I,I)I$() : P$=HEX(FC22FD27FE3A2020) : IF I-1<A1+A3-2THEN STR(I$(),POS(I$()=HEX(FD)))=" " : ELSE STR(I$(),POS(I$()=HEX(FE)))=" " : I$(1)=HEX(00) : P=0 1340 P1=POS(STR(I$(),P+1)=HEX(FF)) : IF P1=0THEN 1400 : P=P+P1 : $TRAN(STR(I$(),P+1,2),P$)R : GOTO 1340 1400 P=0 1410 P1=POS(STR(I$(),P+1)=HEX(D8)) : IF P1=0THEN 1490 : P=P+P1 : P1=POS(STR(I$(),P+1)=HEX(0D)) : $TRAN(STR(I$(),P,P1),P$)R : P=P+1 : GOTO 1410 1490 P=0 1500 P1=POS(STR(I$(),P+1)=HEX(A2)) : IF P1=0THEN 1610 : P=P+P1 : P1=POS(-STR(I$(),1,P)=":") : IF P1=0OR P1+POS(STR(I$(),P1+1)<>" ")<>PTHEN P1=P : P2=POS(STR(I$(),P1+1)=HEX(0D)) : P3=POS(STR(I$(),P1+1)=HEX(3A)) : IF P2*P3=0THEN P4=MAX(P2,P3) : ELSE P4=MIN(P2,P3) : $TRAN(STR(I$(),P1,P4),P$)R : GOTO 1500 1610 P=0 1620 P1=POS(STR(I$(),P+1)=HEX(27)) : IF P1=0THEN 1700 : P=P+P1 : P2=POS(-STR(I$(),1,P-1)<>" ") : IF STR(I$(),P2,1)=HEX(CE)OR STR(I$(),P2,1)=HEX(9A)OR STR(I$(),P2,1)=HEX(8 0)THEN $TRAN(STR(I$(),P,1),P$)R : GOTO 1620 1700 P=0 1710 P2=POS(STR(I$(),P+1)=HEX(27)) : P3=POS(STR(I$(),P+1)=HEX(22)) : IF P2*P3=0THEN P1=MAX(P2,P3) : ELSE P1=MIN(P2,P3) : IF P1=0THEN 1810 : P=P+P1 : P1=POS(STR(I$(),P+1)=I$(P)) : $TRAN(STR(I$(),P,P1),P$)R : P=P+P1 : GOTO 1710 1810 P=0 1820 P1=POS(STR(I$(),P+1)=HEX(F2)) : IF P1=0THEN 1880 : P=P+P1 : $TRAN(I$(POS(-STR(I$(),1,P)=":")),HEX(FE3A2020))R : GOTO 1820 1880 P=0 1890 P1=POS(STR(I$(),P+1)=HEX(EB)) : IF P1=0THEN 1980 : P=P+P1 : P1=POS(-STR(I$(),1,P)=":") : IF P1=0THEN 1890 : P2=POS(STR(I$(),P1+1)=HEX(0D)) : $TRAN(STR(I$(),P1,P2),HEX(FE3A2020))R : GOTO 1890 1980 $TRAN(I$(),HEX(22FC27FD2020))R : RETURN 2030 L1=10000 : RETURN 2090 W$()=STR(W$(),POS(W$()<>" ")) 2110 IF L=L1-1THEN 2260 : P2=POS(W$()=HEX(3A)) : P3=POS(W$()=HEX(0D)) : IF P2*P3=0THEN P1=MAX(P2,P3) : ELSE P1=MIN(P2,P3) : GOSUB 2350 : W$()=STR(W$(),P1+1) : IF W$()=" "THEN RETURN : L=L+1 : GOTO 2110 2260 IF POS(W$()=":")<>0THEN GOSUB 2710 : P1=POS(W$()=HEX(0D)) : GOSUB 2350 : RETURN 2350 $TRAN(STR(W$(),1,P1),HEX(3AFE2020))R : IF W$(1)=HEX(9D)THEN I9=I9-2 : IF I9<4THEN I9=4 : IF W$(1)=HEX(A2)THEN I8=0 : ELSE I8=I9 : IF O9+P1+I8+7<257THEN 2520 : STR(O$(),O9+1)=HEX(00FD) : DATA SAVE BA T#2,(G,G)O$() : E=E+1 : IF E>E1-3THEN 2760 : O$()=" " : O9=0 2520 PACK(####)STR(H1$,1,2)FROML : STR(O$(),O9+1)=HEX(00FF)&STR(H1$,1,I8+2)&STR(W$(),1,P1-1)&HEX(0D00) : O9=O9+P1+I8+5 : IF W$(1)=HEX(9E)THEN I9=I9+2 : RETURN 2620 STR(O$(),O9+1)=HEX(00FE) : O$(1)=HEX(20) : DATA SAVE BA T#2,(G,G)O$() : E=E+1 : RETURN 2710 CONVERT LTO Z6$,(####) : Z5$=STR(N1$,1)&" - LINE "&Z6$&" NOT FULLY DECOMPRESSED" : GOSUB '92(Z5$) : RETURN 2760 Z5$=STR(N1$,1)&" CANNOT BE DECOMPRESSED - FILE LENGTH ERROR" : GOSUB '92(Z5$) : RETURN CLEAR ALL 2790 GOSUB '99(N2$,2) : GOTO 370 2820 Z5$=STR(N1$,1)&" CANNOT BE DECOMPRESSED - ERROR IN OPEN" : GOSUB '92(Z5$) : GOTO 370 2880 DEFFN'91 : IF Z9$="INDIRECT"THEN 3190 : IF Z9$="PART"THEN 3080 : IF Z9=0THEN N1$=ALL(HEX(00)) : IF Z9=0THEN Z9=1 : N=VAL(Z3$(1))-1 2980 GOSUB '226(1,N1$) : N1$,N2$=R9$ : IF N1$=HEX(0000000000000000)THEN RETURN : IF R<>1THEN 2980 : IF N1$<Z1$(1)THEN 2980 : IF N1$>Z2$(1)THEN 2980 : RETURN 3080 Z8=Z8+1 : IF Z8>Z9THEN 3160 : N1$=Z1$(Z8) : N2$=Z2$(Z8) : N=VAL(Z3$(Z8))-1 : RETURN 3160 N1$=ALL(HEX(00)) : RETURN 3190 MAT REDIM Z1$(14)8,Z2$(14)8,Z3$(14)1 : IF Z9=0THEN Z8=0 3220 IF Z9=0THEN GOSUB '217(Z8$,3,S2,-2,2,"ISS 4.0 REF"," ",0) : IF Q$<>" "THEN 3410 : IF Z9=0THEN Z9=1 3260 IF Z8=0THEN DATA LOAD DC #3,STR(Z1$(),1),STR(Z2$(),1),STR(Z3$(),1) : IF END THEN 3370 : Z8=Z8+1 : N1$=Z1$(Z8) : N2$=Z2$(Z8) : N=VAL(Z3$(Z8))-1 : IF Z8=14THEN Z8=0 : IF N1$=" "THEN 3260 : RETURN 3370 N1$=ALL(HEX(00)) : GOSUB '219(Z8$,3,S2," ",0) : RETURN 3410 PRINT AT(1,0);"ERROR IN REFERENCE FILE OPEN = ";Q$ : GOSUB '254 : GOTO 3220 3470 DEFFN'92(Z5$) : IF S$(1)=" "THEN 3590 : GOSUB '94 : SELECT PRINT <S$(1)> : IF N3$=" "THEN PRINT HEX(0C0E);"DECOMPRESSION ERRORS" : IF N3$<>N2$THEN PRINT : N3$=N2$ : PRINT Z5$ : SELECT PRINT 005 : RETURN 3590 PRINT AT(1,0);Z5$;TAB(S0) : GOSUB '254 : RETURN 3650 DEFFN'94 3670 $OPEN 3750,#4 : $CLOSE#4 3690 $GIO#4(010A02001212400040004000,A$) : IF STR(A$,8,1)=HEX(00)THEN RETURN : PRINT AT(1,0,S0);"SELECT PRINTER" : GOSUB '254 : GOTO 3690 3750 PRINT AT(1,0,S0);"PRINTER HOGGED" : GOSUB '254 : GOTO 3670 3810 DEFFN'99(G$,G9) : LIMITS T#G9,G$,G6,G7,G8 : GOSUB '229(G9,G$) : $OPEN #G9 : STR(R9$(R6),1,1)=HEX(21) : DATA SAVE BA T#G9,(R3)R9$() : DATA LOAD BA T#G9,(0)R9$() : SELECT PRINT 005 : STR(R9$(),3,1)=AND HEX(7F) : IF G7+1<>VAL(STR(R9$(),3,2),2)THEN 3950 : STR(R9$(),3,2)=BIN(G6,2) : DATA SAVE BA T#G9,(0)R9$() 3950 $CLOSE#G9 : RETURN 4000 DEFFN'31 : SELECT PRINT 005 : $CLOSE#4 : PRINT HEX(03) : IF Z8$<>" "THEN GOSUB '219(Z8$,3,S2," ",0) : COM CLEAR Z9$ 4060 LOAD DC T#0,"ISS.100M" : ERRORGOTO 4070 4070 PRINT HEX(010A);"MOUNT ISS DISK AT ADDRESS ";S$ : GOSUB '254 : GOTO 4060