Listing of file='ISS.081U' on disk='vmedia/701-2423D.wvd.zip'
# Sector 557, program filename = 'ISS.081U'
0010 REM ISS.081U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC.
0068 DIM Z5$60,Z6$4,E$64
: DIM N1$8,N2$8,M1$2,M2$2,M$4
: DIM I1$(256)1,I2$(256)1,L1$(256)1,L2$(256)1,C$(256)1,L$(256)2,F$3,F0$3,L1
$2,L2$2,E1$1,E2$1,B9$1
0120 % THIS MUST BE STATEMENT 120
0230 S1$="ISS.254SISS.226SISS.229SISS.217SISS.200S"
: LOAD DC T#0,<LEN(S1$)/8>S1$10,0BEG 250
0250 IF S$(1)<>" "THEN SELECT #4<S$(1)>
: IF F9$=" "THEN 310
0280 PRINT AT(1,0);"MOUNT PLATTERS AT INDICATED ADDRESSES"
: GOSUB '254
: DATA LOAD BA T#1,(0)C$()
: ERRORGOTO 280
0310 D=0
: A5=0
: A9=0
: IF O$="PRINTER"THEN GOSUB '94
: F$=" "
0390 IF A8<>0THEN A9=A8+1
: INIT(20)B9$
: F0$="NEW"
: IF O$="CRT"THEN PRINT AT(1,0,2*S0);"SCANNING INDEX FOR FILE NAME"
: GOSUB '91
: IF N1$=HEX(0000000000000000)THEN 4220
: IF D=0OR O$<>"CRT"THEN 550
: PRINT AT(1,0,2*S0)
: PRINT AT(1,0,S0);"READY TO COMPARE NEXT PAIR OF FILES"
: GOSUB '254
: A5=0
0550 D=D+1
: PRINT HEX(03);"COMPARING PAIR #";D
: GOSUB 3950
: LIMITS T#1,N1$,A1,A2,A3,A4
: ERRORGOTO 2590
0610 IF A4<>1THEN 2590
: DATA LOAD BA T#1,(A1)C$()
: AND (C$(1),F0)
: IF C$(1)=HEX(50)THEN 2510
: LIMITS T#2,N2$,B1,B2,B3,B4
: ERRORGOTO 2590
0690 IF B4<>1THEN 2590
: DATA LOAD BA T#2,(B1)C$()
: AND (C$(1),F0)
: IF C$(1)=HEX(50)THEN 2550
: GOSUB 820
: GOTO 390
0820 I1=A1+1
: I2=B1+1
: L1$,L2$=HEX(0000)
: I1$(),I2$()=HEX(00FD)
0870 IF E1$=" "THEN GOSUB 1090
: IF E2$=" "THEN GOSUB 1310
: E1$,E2$=" "
: IF L1$=HEX(FFFF)AND L2$=HEX(FFFF)THEN 2440
: IF L1$>L2$AND L1$<>HEX(FFFF)THEN GOSUB 2630
: IF L2$>L1$AND L2$<>HEX(FFFF)THEN GOSUB 2690
: IF L1$=HEX(FFFF)AND L2$<>HEX(FFFF)THEN 2750
: IF L2$=HEX(FFFF)AND L1$<>HEX(FFFF)THEN 2810
: IF L1$=L2$AND STR(L1$(),1,L1)<>STR(L2$(),1,L2)THEN GOSUB 2870
: KEYIN B9$,1030,1030
1030 IF B9$=HEX(00)THEN 390
: GOTO 870
1090 IF I1$(2)=HEX(FD)THEN 1530
: IF I1$(2)=HEX(FE)THEN 1240
: L1=POS(I1$()=0D)+1
: L1$=STR(I1$(),3,2)
: L1$()=STR(I1$(),5,L1-6)
: I1$()=STR(I1$(),L1+1)
: L1=L1-6
: RETURN
1240 M1$=L1$
: L1$=ALL(FF)
: RETURN
1310 IF I2$(2)=HEX(FD)THEN 1620
: IF I2$(2)=HEX(FE)THEN 1460
: L2=POS(I2$()=0D)+1
: L2$=STR(I2$(),3,2)
: L2$()=STR(I2$(),5,L2-6)
: I2$()=STR(I2$(),L2+1)
: L2=L2-6
: RETURN
1460 M2$=L2$
: L2$=ALL(FF)
: RETURN
1530 DATA LOAD BA T#1,(I1,I1)C$()
: GOSUB 1710
: I1$()=C$()
: GOTO 1090
1620 DATA LOAD BA T#2,(I2,I2)C$()
: GOSUB 1710
: I2$()=C$()
: GOTO 1310
1710 P$=HEX(FB20FC22FD27FE3A2020)
: P1$=HEX(20FB22FC27FD3AFE2020)
: C$(1)=HEX(00)
: P1=POS(C$()=FD)
: P2=POS(C$()=FE)
: IF P1*P2=0THEN P3=MAX(P1,P2)
: ELSE P3=MIN(P1,P2)
: IF P3<256THEN STR(C$(),P3+1)=" "
: P=0
1820 P1=POS(STR(C$(),P+1)=HEX(FF))
: IF P1=0THEN 1880
: P=P+P1
: $TRAN(STR(C$(),P+1,2),P$)R
: GOTO 1820
1880 P=0
1890 P1=POS(STR(C$(),P+1)=HEX(D8))
: IF P1=0THEN 1970
: P=P+P1
: P1=POS(STR(C$(),P+1)=HEX(0D))
: $TRAN(STR(C$(),P,P1),P$)R
: P=P+1
: GOTO 1890
1970 P=POS(C$()=HEX(A2))
: IF P=0THEN 2120
: P3=MAX(POS(-STR(C$(),1,P)=":"),POS(-STR(C$(),1,P)=HEX(FF)))
: P1=POS(STR(C$(),P3+1)=":")
: P2=POS(STR(C$(),P3+1)=HEX(0D))
: IF P1*P2=0THEN P4=MAX(P1,P2)+P3
: ELSE P4=MIN(P1,P2)+P3
: IF C$(P3)=HEX(FF)AND C$(P4)=":"THEN 2070
: IF C$(P3)=HEX(FF)AND C$(P4)=HEX(0D)THEN 2090
: STR(C$(),P3)=STR(C$(),P4)
: GOTO 1970
2070 STR(C$(),P3+3)=STR(C$(),P4+1)
: GOTO 1970
2090 STR(C$(),P3-1)=STR(C$(),P4+2)
: GOTO 1970
2120 P=0
2130 P1=POS(STR(C$(),P+1)=HEX(27))
: IF P1=0THEN 2210
: P=P+P1
: P2=POS(-STR(C$(),1,P-1)<>" ")
: IF STR(C$(),P2,1)=HEX(CE)OR STR(C$(),P2,1)=HEX(9A)OR STR(C$(),P2,1)=HEX(8
0)THEN $TRAN(STR(C$(),P,1),P$)R
: GOTO 2130
2210 P=0
2220 P2=POS(STR(C$(),P+1)=HEX(27))
: P3=POS(STR(C$(),P+1)=HEX(22))
: IF P2*P3=0THEN P1=MAX(P2,P3)
: ELSE P1=MIN(P2,P3)
: IF P1=0THEN 2320
: P=P+P1
: P1=POS(STR(C$(),P+1)=C$(P))
: $TRAN(STR(C$(),P,P1),P$)R
: P=P+P1
: GOTO 2220
2320 MAT SEARCHC$(),<>" "TO L$()
: P=256
: MAT MOVE C$(),L$(),PTO C$()
: IF P<256THEN STR(C$(),P+1)=" "
: $TRAN(STR(C$(),1,P-1),P1$)R
: RETURN
2440 RETURN CLEAR ALL
2460 GOTO 390
2510 Z5$="FILE "&N1$&" IS PROTECTED"
: GOSUB '100(Z5$)
: GOTO 390
2550 Z5$="FILE "&N2$&" IS PROTECTED"
: GOSUB '100(Z5$)
: GOTO 390
2590 Z5$="ERROR IN OPEN"
: GOSUB '100(Z5$)
: GOTO 390
2630 HEXUNPACKL2$TO M$
: Z5$="LINE "&M$&" MISSING IN INPUT ONE"
: GOSUB '100(Z5$)
: E1$="W"
: RETURN
2690 HEXUNPACKL1$TO M$
: Z5$="LINE "&M$&" MISSING IN INPUT TWO"
: GOSUB '100(Z5$)
: E2$="W"
: RETURN
2750 RETURN CLEAR ALL
2760 HEXUNPACKM1$TO M$
: Z5$="INPUT ONE ENDS ON LINE "&M$&" BUT INPUT TWO CONTINUES"
: GOSUB '100(Z5$)
: GOTO 390
2810 RETURN CLEAR ALL
2820 HEXUNPACKM2$TO M$
: Z5$="INPUT TWO ENDS ON LINE "&M$&" BUT INPUT ONE CONTINUES"
: GOSUB '100(Z5$)
: GOTO 390
2870 HEXUNPACKL1$TO M$
: Z5$="TEXT DOES NOT MATCH ON LINES "&M$
: GOSUB '100(Z5$)
: RETURN
2940 DEFFN'91
: IF Z9$="INDIRECT"THEN 3230
: IF Z9$="PART"THEN 3120
: IF Z9=0THEN N1$=ALL(HEX(00))
: IF Z9=0THEN Z9=1
3020 GOSUB '226(1,N1$)
: N1$,N2$=R9$
: IF N1$=HEX(0000000000000000)THEN RETURN
: IF R<>1THEN 3020
: IF N1$<Z1$(1)THEN 3020
: IF N1$>Z2$(1)THEN 3020
: RETURN
3120 Z8=Z8+1
: IF Z8>Z9THEN 3200
: N1$=Z1$(Z8)
: N2$=Z2$(Z8)
: N=VAL(Z3$(Z8))-1
: RETURN
3200 N1$=ALL(HEX(00))
: RETURN
3230 MAT REDIM Z1$(14)8,Z2$(14)8,Z3$(14)1
: IF Z9=1THEN 3310
3260 GOSUB '217(Z8$,3,S2,-2,2,"ISS 4.0 REF"," ",0)
: IF Q$<>" "THEN 3460
: Z9=1
: Z8=0
3310 IF Z8=0THEN DATA LOAD DC #3,STR(Z1$(),1),STR(Z2$(),1),STR(Z3$(),1)
: IF END THEN 3420
: Z8=Z8+1
: N1$=Z1$(Z8)
: N2$=Z2$(Z8)
: N=VAL(Z3$(Z8))-1
: IF Z8=14THEN Z8=0
: IF N1$=" "THEN 3310
: RETURN
3420 N1$=ALL(HEX(00))
: GOSUB '219(Z8$,3,S2," ",0)
: RETURN
3460 PRINT AT(1,0);"ERROR IN REFERENCE FILE OPEN = ";Q$
: GOSUB '254
: GOTO 3260
3520 DEFFN'100(Z5$)
: IF A9=1THEN RETURN CLEAR
: ELSE GOTO 3560
: GOTO 390
3560 IF O$="PRINTER"THEN GOSUB 3770
: ELSE GOSUB 3630
: A9=A9-1
: SELECT PRINT 005
: RETURN
3630 IF A5=MAX(S0-61,11)THEN GOSUB 3690
: A5=A5+1
: PRINT AT(A5+4,0);Z5$;
: RETURN
3690 PRINT AT(1,0,2*S0);"READY FOR NEXT DISPLAY"
: INPUT "KEY RETURN(EXEC) TO RESUME",A6
: PRINT AT(1,0,2*S0)
: PRINT AT(5,0,);
: A5=0
: RETURN
3770 SELECT PRINT <S$(1)>
: IF F$=" "THEN 3840
: IF F0$="NEW"THEN 3880
: GOTO 3910
3840 F$="ERR"
: PRINT HEX(0C0D0E);"PROGRAM COMPARE ERRORS"
: PRINT HEX(0D0E);"INPUT ONE";" (";I1$;")";TAB(25);"INPUT TWO";" (";I2$;")"
3880 F0$="OLD"
: PRINT HEX(0D0E);N1$;TAB(25);N2$;HEX(0D);" "
3910 PRINT Z5$
: RETURN
3950 IF O$="CRT"THEN 4000
: PRINT "INPUT ONE - ";N1$;" INPUT TWO - ";N2$;TAB(64)
: RETURN
4000 PRINT AT(3,0,S0);"INPUT ONE - ";N1$;" (";I1$;")";TAB(S0-30);"INPUT TWO -
";N2$;" (";I2$;")"
: PRINT AT(4,0,S0);"-----------------------";TAB(S0-30);"------------------
--------";
: RETURN
4060 DEFFN'94
4080 $OPEN 4150,#4
4090 $GIO#4(010A02001212400040004000,A$)
: IF STR(A$,8,1)=HEX(00)THEN RETURN
: PRINT AT(1,0,S0);"SELECT PRINTER"
: GOSUB '254
: GOTO 4090
4150 PRINT AT(1,0,S0);"PRINTER HOGGED"
: GOSUB '254
: GOTO 4080
4220 IF D<>0THEN 4270
: SELECT PRINT 005
: PRINT AT(1,0,2*S0);"NO PROGRAMS FOUND"
: GOSUB '254
: GOSUB '31
4270 IF O$="PRINTER"THEN 4310
: PRINT AT(1,0,2*S0);"ALL SPECIFIED PROGRAMS PROCESSED"
: GOSUB '254
: GOTO 4360
4310 SELECT PRINT <S$(1)>
: IF F$<>"ERR"THEN PRINT HEX(0D0C0E);"INPUT ONE";" (";I1$;")";TAB(25);"INPU
T TWO";" (";I2$;")"
: PRINT HEX(0D0A);"ALL SPECIFIED PROGRAMS PROCESSED"
4360 SELECT PRINT 005(S0)
: $CLOSE#4
: IF Z9$<>"PART"THEN Z9=0
: Z8=0
: PRINT HEX(03);AT(MAX(6,S0-70),S0/2-20);"1. RERUN WITH PRINTER OUTPUT";HEX
(0D0A);TAB(MAX(S0/2-20));"2. RERUN WITH CRT OUTPUT";HEX(0D0A);TAB(S0/2-20
);"3. RETURN TO MENU";
4410 GOSUB '200("1","3",1,0,"ENTER THE NUMBER OF THE DESIRED OPTION",1)
: IF Q9=1THEN 4460
: IF Q9=3THEN GOSUB '31
: ELSE O$="CRT"
: GOTO 310
4460 O$="PRINTER"
: GOSUB '44
: IF P$=" "THEN 310
: PRINT HEX(070D010D0A);"PRINTER REQUIRED";
: GOSUB '254
: GOTO 4410
4550 DEFFN'31
: SELECT PRINT 005
: PRINT HEX(03)
: $CLOSE#4
: IF Z8$<>" "THEN GOSUB '219(Z8$,3,S2," ",0)
: COM CLEAR Z9$
4610 LOAD DC T#0,"ISS.100M"
: ERRORGOTO 4620
4620 PRINT HEX(010A);"MOUNT ISS DISK AT ADDRESS ";S$
: GOSUB '254
: GOTO 4610
4680 DEFFN'44
: P$=" 000005"
: MAT SEARCHP$,=S$(1)TO P$
: IF STR(P$,1,2)=HEX(0000)THEN P$=" "
: ELSE P$="P"
: RETURN