Listing of file='ISS.022U' on disk='vmedia/701-2423D.wvd.zip'
# Sector 267, program filename = 'ISS.022U'
0010 REM ISS.022U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC. (ERRAT
A #1092)
0069 DIM N1$8,N2$8,Z5$40,E$40,E$(L4)1,Y$1
0120 % THIS MUST BE STATEMENT 120
0140 %####
0145 %<####> --
0150 %DEFFN'###
0155 %GOSUB'###
0165 S1$="ISS.254SISS.226SISS.229SISS.217S"
: LOAD DC T#0,<LEN(S1$)/8>S1$10,0BEG 175
0175 SELECT #4<S$(1)>
: L4=SPACE-100
: LOAD DC T#0,"ISS.000E"10,0BEG 195
0195 IF F9$=" "THEN 225
0205 PRINT AT(1,0,3*S0);"MOUNT INPUT PLATTER"
: GOSUB '254
: DATA LOAD BA T#1,(0)B$()
: ERRORGOTO 205
0225 N1$=ALL(00)
0235 SELECT PRINT 005(S0)
: GOSUB '91
: IF N1$=HEX(0000000000000000)THEN 455
: P=P+1
0265 DEFFN'0
: RETURN CLEAR ALL
0280 LIMITS T#1,N1$,G,I,I
: DATA LOAD BA T#1,(G,G)B$()
: AND (B$(1,1),F0)
: IF B$(1,1)<>HEX(50)THEN 325
: E$="FILE "&N1$&" IS PROTECTED"
: GOSUB '92(E$)
: GOTO 235
0325 PRINT AT(1,0,3*S0);"PROCESSING FILE NUMBER ";P,"NAME = ";N1$;TAB(S0)
: GOSUB '94
: SELECT PRINT <S$(1)>(140)
: INIT(FF)E$()
: D,H,L,F(1),F(2),F(3)=0
: H$="PROGRAM LISTING"
: A,E(1),E(2)=1
: E=P3
: C=P4
: GOSUB 535
: KEYIN H1$,405,405
0405 IF H1$<>"H"THEN 235
: H1$=" "
0415 SELECT PRINT 005(S0)
: GOSUB '254
: GOTO 235
0435 PRINT AT(1,0);"PRINTER IS HOGGED"
: GOSUB '254
: GOTO 225
0455 DEFFN'31
: SELECT PRINT 005(S0)
: PRINT HEX(03)
: $CLOSE#4
: IF Z8$<>" "THEN GOSUB '219(Z8$,3,S2," ",0)
: COM CLEAR Z9$
0485 LOAD DC T#0,"ISS.100M"
: ERRORGOTO 490
0490 PRINT HEX(010A);"MOUNT ISS DISK AT ADDRESS ";S$
: GOSUB '254
: GOTO 485
0535 B$=HEX(00)
: N$=HEX(0000)
: M=1
: DATA LOAD BA T#1,(G,G)B$()
: GOTO 630
0580 M=M-1
: F$=STR(B$(),M,1)
: B$,C$=F$
: $TRAN(C$,D$())
: AND (C$,0F)
0610 GOSUB 1965
0630 D$,B0$=B$
: C0$=C$
: $TRAN(D$,D$())
: AND (D$,F0)
: IF B$=HEX(E7)THEN GOSUB 1395
: GOSUB 1910
: IF B$=HEX(3A)THEN 1250
: IF B$=HEX(00)THEN 630
: ON VAL(B$)-252GOTO 535,2185,1230
0705 IF C$=HEX(06)THEN 1125
: IF C$=HEX(08)THEN 1140
: IF F1$="FORMAT"AND B$="="THEN 1125
: IF C$<>HEX(01)THEN 815
: A3$=STR(B$(),M,257-M)
: J=0
: FOR I=6TO 3STEP -1
: MAT SEARCHA1$(),=STR(A3$,1,I)TO F$STEP 7
: IF F$=HEX(0000)THEN 810
: J=(VAL(F$,2)+6)/7
: B$=HEX(FC)
: A$,F1$=STR(A1$(J),1,POS(A1$(J)=FC)-1)
: STR(A$,LEN(A$)+1,1)=HEX(00)
: M=M-1
: IF N$=HEX(0000)THEN M=M+I
: I=3
0810 NEXT I
0815 IF N$<>HEX(0000)THEN 610
0820 GOSUB 1620
: IF B$>HEX(80)OR D$=HEX(00)THEN 630
: IF B$="@"THEN 1010
0855 IF C$<>HEX(01)THEN 630
: I=VAL(B$)-65
: N$=OR HEX(D000)OR BIN(I*16,2)
: GOSUB 1910
: IF C$=HEX(08)OR B$=HEX(23)THEN 1075
: ON VAL(C$)GOTO 1050,935,970,990
: IF D$=HEX(20)THEN 1075
: GOTO 580
0935 BIN(A1$)=VAL(B$)-47
: OR (STR(N$,2,1),A1$)
: GOSUB 1900
: ON VAL(C$)GOTO 1075,1075,970,990
: GOTO 580
0970 OR (STR(N$,1,1),04)
: GOSUB 1900
0990 IF B$="("THEN OR (STR(N$,1,1),02)
: GOTO 580
1010 OR (STR(N$,1,1),08)
: GOSUB 1910
: GOSUB 1620
: GOTO 855
1050 IF D$<>HEX(20)THEN 1075
: N$=ALL(00)
: GOTO 820
1075 IF N$<HEX(D800)THEN N$=HEX(0000)
: M=M-1
: F$=STR(B$(),M,1)
: B$,C$=F$
: $TRAN(C$,D$())
: AND (C$,0F)
: GOTO 630
1125 IF B$=HEX(D8)THEN C1$=HEX(0D)
: ELSE C1$=HEX(3A)
: GOTO 1160
1140 IF B$=HEX(27)AND C0$=HEX(05)THEN 1310
: C1$=B$
1160 GOSUB 1900
: IF B$=HEX(0D)THEN 1200
: IF B$=C1$THEN 1185
: GOTO 1160
1185 IF C1$<>HEX(3A)THEN 1200
: C=P4
: H=H+1
1200 GOSUB 1620
: F1$=" "
: IF C$=HEX(08)THEN B$=HEX(FC)
: GOTO 630
1230 GOSUB 1440
: GOTO 630
1250 F1$=" "
: Y=POS(STR(B$(),M)<>" ")
: Y$=STR(B$(),M+Y)
: IF Y$=HEX(A2)THEN 705
: C=P4
: H=H+1
: GOTO 705
1310 GOSUB 1620
: I=0
1320 GOSUB 1910
: IF C$<>HEX(02)THEN 1355
: I=I*10+VAL(B$)-48
: GOSUB 1620
: GOTO 1320
1355 N$=BIN(I,2)
: ROTATEC(N$,1)
: IF B0$=HEX(CE)THEN A2$=HEX(F000)
: ELSE A2$=HEX(F001)
: OR (N$,A2$)
: GOTO 580
1395 GOSUB 1910
: GOSUB 1620
: RETURN
1440 F$=STR(B$(),M+1,2)
: M=M+2
: UNPACK(####)F$TO X
: IF M1$="CROSS-REFERENCE"THEN 1500
: IF C+4>P4THEN 1580
1475 PRINT TAB(C);
: PRINTUSING 140,X;
: C=C+5-SGN(VAL(B0$))
1500 IF B0$<>HEX(00)THEN 1550
: B0$=HEX(FF)
: D=D+1
: L$=F$
: RETURN
1550 N$=BIN(X,2)
: N$=ADDCHEX(A000)
: GOSUB 1965
: RETURN
1580 PRINT " "
: C=P2+5*SGN(VAL(B0$))
: E=E+1
: IF E>=P3THEN GOSUB 3065
: GOTO 1475
1620 IF B$=HEX(0D)THEN 1855
: IF B$=HEX(FC)THEN 1680
: ON FGOSUB 1735,1755
: IF STR(A$,1,3)="REM"AND B$="%"THEN F=1
: A$=B$
: IF B$<HEX(80)THEN 1680
: MAT SEARCHA$(),=B$TO F$
: X=VAL(F$,2)
: A3$=STR(A$(),X+1,12)
: A$=STR(A3$,1,POS(A3$>7F)-1)
1680 IF M1$="CROSS-REFERENCE"THEN RETURN
: IF C+LEN(A$)>P4THEN GOSUB 1815
: IF F=3THEN GOSUB 1780
: IF A$>HEX(20)AND A$<HEX(7F)THEN PRINT TAB(C);A$;
: C=C+LEN(A$)
: RETURN
1735 IF B$<>"^"THEN 1760
: F=2
: RETURN
1755 E=P3
1760 C=P4
: F=3
: RETURN
1780 GOSUB 1815
: C=P2
: PRINT HEX(0E);
: F=4
: RETURN
1815 C=P2+6
1820 E=E+1
: PRINT " "
: IF E>=P3THEN GOSUB 3065
: RETURN
1855 F1$=" "
: C=P4
: H=H+1
: IF F=0THEN RETURN
: IF M1$<>"CROSS-REFERENCE"THEN GOSUB 1820
: F=0
: RETURN
1900 GOSUB 1620
1910 M=M+1
: B$,C$=STR(B$(),M,1)
: $TRAN(C$,D$())
: AND (C$,0F)
: IF B$=" "THEN 1900
: RETURN
1965 IF L>L4-6THEN GOSUB 2095
: MAT SEARCHE$()<1,L+2>,=STR(N$,1,2)TO F$STEP 2
: IF F$=HEX(0000)THEN 2035
: X=VAL(F$,2)
: MAT SEARCHE$()<X,L-X+3>,>STR(N$,1,2)TO F$STEP 2
: X=X+VAL(F$,2)-1
: MAT COPY -E$()<X,L-X+1>TO -E$()<X,L-X+3>
2005 STR(E$(),X,2)=L$
: L=L+2
: N$=HEX(0000)
: RETURN
2035 MAT SEARCHE$()<1,L+2>,>STR(N$,1,2)TO F$STEP 2
: X=VAL(F$,2)
: MAT COPY -E$()<X,L-X+1>TO -E$()<X,L-X+5>
: L=L+2
: STR(E$(),X,2)=N$
: X=X+2
: GOTO 2005
2095 PRINT " "
: E=P3
: GOSUB 2185
: H$="PROGRAM LISTING"
: INIT(FF)E$()
: D,H,L,F(1),F(2),F(3)=0
: E=P3
: C=P4
: A=1
: PRINT " "
: RETURN
2185 A=2
: H$="LINE NUMBER CROSS-REFERENCE"
: E=P3
: I=1
: F$=STR(E$(),I,2)
2230 IF F$>HEX(CFFF)THEN 2300
: IF E>=P3THEN GOSUB 3065
: A2$=F$
: A2$=SUBCHEX(A000)
: PRINT HEX(0A);TAB(P2);
: PRINTUSING 140,(VAL(A2$,2));
: PRINT " - ";
: E=E+2
: GOSUB 2900
: F(1)=F(1)+1
: GOTO 2230
2300 H$="VARIABLE CROSS-REFERENCE"
: A$=F$
: AND (A$,0E)
: E=P3
2335 IF F$>HEX(EFFF)THEN 2660
: IF E>=P3THEN GOSUB 3065
: A1$=F$
: AND (A1$,0E)
: IF STR(A$,1,1)=A1$THEN 2415
: IF E+2>=P3THEN GOSUB 3065
: PRINT HEX(0A);TAB(P2);
: FOR K=P2TO P4-2STEP 2
: PRINT "* ";
: NEXT K
: PRINT
: E=E+2
: A$=A1$
2415 PRINT HEX(0A);TAB(P2);
: A2$=HEX(0800)
: AND (A2$,F$)
: IF A2$=HEX(0800)THEN PRINT "@";
: A2$=HEX(01F0)
: AND (A2$,F$)
: BIN(A1$)=VAL(A2$)*16+VAL(STR(A2$,2))/16+65
: PRINT A1$;
: A2$=HEX(060F)
: AND (A2$,F$)
: IF STR(A2$,2)=HEX(00)THEN 2535
: BIN(A1$)=VAL(STR(A2$,2))+47
: PRINT A1$;
2535 ON VAL(A2$)/2GOTO 2585,2565,2605
: GOTO 2610
2565 PRINT "$";
: GOTO 2610
2585 PRINT "()";
: GOTO 2610
2605 PRINT "$()";
2610 PRINT TAB(P2+6);" - ";
: E=E+2
: GOSUB 2900
: F(2)=F(2)+1
: GOTO 2335
2660 H$="MARKED SUBROUTINE CROSS-REFERENCE"
: A2=-1
: E=P3
2695 IF F$>HEX(F1FF)THEN 2855
: A1=A2
: A1$=A2$
: A2$=F$
: ROTATEC(A2$,-1)
: A2=VAL(STR(A2$,2,1))
: E=E+1
: IF A1$=HEX(78)AND STR(A2$,,1)=HEX(78)THEN E=E+1
: IF E>=P3THEN GOSUB 3065
: IF STR(A2$,1,1)=HEX(78)OR A2>A1THEN 2810
: PRINT TAB(P2);
: PRINTUSING 155,A2;
: GOSUB 2900
: E=E+1
: GOTO 2695
2810 PRINT HEX(0A);TAB(P2);
: PRINTUSING 150,A2;
: IF STR(A2$,1,1)=HEX(78)THEN GOSUB 2900
: ELSE PRINT "<????>"
: F(3)=F(3)+1
: GOTO 2695
2855 H$="SUMMARY"
: GOSUB 3065
: PRINT TAB(P2);"TEXT LINES =";D;TAB(P2+30);"TEXT STATEMENTS =";H
: PRINT
: PRINT TAB(P2);"LINE NUMBERS =";F(1);TAB(P2+30);"VARIABLES =";F(2)
: PRINT TAB(P2);"MARKED SUBROUTINES =";F(3)
: RETURN
2900 U=P2+14
: F$=HEX(9999)
: MAT SEARCHE$()<I+2,L-I+1>,>F$TO F$
: X=INT(VAL(F$,2)/2)
: PRINTUSING 145,X;
2935 I=I+2
: F$=STR(E$(),I,2)
: IF F$>HEX(9999)THEN 3000
: U=U+5
: IF U+5>P4THEN 3025
2970 UNPACK(####)F$TO X
: PRINT TAB(U);
: PRINTUSING 140,X;
: GOTO 2935
3000 PRINT " "
: U=P2
: RETURN
3025 PRINT " "
: E=E+1
: U=P2+19
: IF E>=P3THEN GOSUB 3065
: GOTO 2970
3065 PRINT
: KEYIN H1$,3105,3105
3075 PRINT HEX(0C0E);TAB(P2/2);Q1$;TAB(((P4-P2)/2+P2-8)/2);N1$;TAB(P4/2-8);"PA
GE";E(A)
: PRINT TAB(P2);H$
: PRINT " "
: E=3
: E(A)=E(A)+1
: RETURN
3105 IF H1$<>"P"THEN 3075
: H1$=" "
: SELECT PRINT 005(S0)
: GOSUB '254
: PRINT AT(1,0);"PROCESSING FILE";P+1;"NAME ";N1$
: SELECT PRINT <S$(1)>(140)
: GOTO 3075
3150 DEFFN'1
: PRINT AT(2,0,S0*2)
: E(2)=1
: SELECT PRINT <S$(1)>
: GOSUB 2185
: GOTO 415
3200 DEFFN'91
: IF Z9$="INDIRECT"THEN 3335
: IF Z9$="PART"THEN 3290
: IF Z9=0THEN N1$=ALL(HEX(00))
: IF Z9=0THEN Z9=1
3240 GOSUB '226(1,N1$)
: N1$=R9$
: IF N1$=HEX(0000000000000000)THEN RETURN
: IF R<>1THEN 3240
: IF N1$<Z1$(1)THEN 3240
: IF N1$>Z2$(1)THEN 3240
: RETURN
3290 Z8=Z8+1
: IF Z8>Z9THEN 3320
: N1$=Z1$(Z8)
: RETURN
3320 N1$=ALL(00)
: RETURN
3335 MAT REDIM Z1$(14)8,Z2$(14)8,Z3$(14)1
: IF Z9=1THEN 3375
3350 GOSUB '217(Z8$,3,S2,-2,2,"ISS 4.0 REF"," ",0)
: IF Q$<>" "THEN 3445
: Z9=1
: Z8=0
3375 IF Z8=0THEN DATA LOAD DC #3,STR(Z1$(),1),STR(Z2$(),1),STR(Z3$(),1)
: IF END THEN 3425
: Z8=Z8+1
: N1$=Z1$(Z8)
: IF Z8=14THEN Z8=0
: LIMITS T#1,N1$,Z,Z,Z,Z
: IF Z<>1OR N1$=" "THEN 3375
: RETURN
3425 N1$=ALL(HEX(00))
: GOSUB '219(Z8$,3,S2," ",0)
: RETURN
3445 PRINT AT(1,0);"ERROR IN REFERENCE FILE OPEN = ";Q$
: GOSUB '254
: GOTO 3350
3475 DEFFN'92(Z5$)
: IF S$(1)=" "THEN 3515
: GOSUB '94
: SELECT PRINT 215
: PRINT HEX(0C);Z5$
: RETURN
3515 PRINT AT(1,0);Z5$
: GOSUB '254
: RETURN
3545 DEFFN'94
3555 $OPEN 3590,#4
3560 $GIO#4(010A02001212400040004000,A$)
: IF STR(A$,8,1)=HEX(00)THEN RETURN
: PRINT AT(1,0,S0);"SELECT PRINTER"
: GOSUB '254
: GOTO 3560
3590 PRINT AT(1,0,S0);"PRINTER HOGGED"
: GOSUB '254
: GOTO 3555