image of READY prompt

Wang2200.org

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