Listing of file='ISS.061U' on disk='vmedia/701-2423D.wvd.zip'
# Sector 471, program filename = 'ISS.061U'
0010 REM ISS.061U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC.
0070 DIM A$(8)32,C$(8)32,D$(2)70,D1$2,H1$1,H$40,A3$16,E$1,F1$6,F2$5
0120 % THIS MUST BE LINE 120
0160 %### - ###
0170 S1$="ISS.254SISS.200S"
: LOAD DC T#0,<LEN(S1$)/8>S1$10,1BEG 190
0190 IF S$(1)<>" "THEN SELECT #4<S$(1)>
: IF D$<>"DATA STRUCTURE"THEN MAT REDIM D$(1)64
: C$()=ALL(40)
: C$(1)=ALL(2E)
: C$(2)=HEX(202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3
F)
: C$(3)=HEX(404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5
F)
0280 C$(4)=HEX(606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E4
0)
: C1$=HEX(30313233343536373839414243444546)
: STR(H$,8,11)="FILE NAME -"
: M=100
: P1=1
0370 IF I$="FILE"THEN 420
: ELSE DATA LOAD BA T#1,(0)A$()
: ERRORGOTO 3660
0380 INIT(20)A$()
: IF O$="CRT"THEN 990
: ELSE GOTO 490
0420 LIMITS T#1,F$,Y,Y,Y,Y
: ERRORGOTO 3660
0430 IF Y<1THEN 3660
: IF O$="CRT"THEN 990
0490 G1,E=0
: IF Y=1THEN F1,F2=F1-2
: ELSE F1,F2=F1-3
: IF N$="ALL"THEN 590
: I=POS(N$="-")
: CONVERT STR(N$,1,I-1)TO G1
: CONVERT STR(N$,I+1)TO F1
: IF D$="DATA STRUCTURE"THEN 840
: IF F1>=F2THEN F1=F2
0590 F=G2+F1
: G=G2+G1
0620 O=G
0640 GOSUB '94
: SELECT PRINT <S$(1)>(128)
0670 DATA LOAD BA T#1,(O,O)A$()
: O1=O-1
: IF D$="DATA STRUCTURE"AND STR(A$(),,1)<>HEX(81)AND STR(A$(),,1)<>HEX(82)T
HEN 930
: IF D$="HORIZONTAL"THEN GOSUB 1870
: IF D$="VERTICAL"THEN GOSUB 2140
: IF D$="DATA STRUCTURE"THEN GOSUB 2580
: IF O>FTHEN 1730
: KEYIN H1$,800,790
0790 GOTO 670
0800 IF H1$<>"H"THEN 670
: GOSUB '254
: GOTO 640
0840 DATA LOAD DC OPEN T#1,F$
: DSKIP #1,G1
: LIMITS T#1,G,G,G
: DSKIP #1,F1-G1+1
: LIMITS T#1,F,F,F
: E=G1
: F=F-1
: GOTO 620
0930 PRINT HEX(0E0A);"NEXT SECTOR NOT WRITTEN IN DC MODE"
: GOSUB '31
0990 O=G2
: CONVERT -G2TO F1$,(-#####)
: CONVERT F5-G2-1TO F2$,(#####)
1050 DATA LOAD BA T#1,(O)A$()
: O1=O
: GOSUB 2140
: O$="CRT"
: SELECT PRINT 005(S0)
: $CLOSE#4
: IF VAL(A$)<>2AND VAL(A$)<>3THEN 1180
: KEYIN A$,1180,1180
: ON VAL(A$)-1GOTO 1560,1590
1180 PRINT AT(0,0);
1190 KEYIN A$,,1210
: GOTO 1190
1210 IF VAL(A$)=31THEN 1730
: ON VAL(A$)-1GOTO 1560,1590,1410,1440,,1490,1660,1050,1270,1530,1560,1590,
1620
: GOTO 1190
1270 GOSUB '44
: IF P$="P"THEN 1350
: O$="PRINTER"
: GOSUB '94
: SELECT PRINT <S$(1)>(128)
: GOTO 1050
1350 PRINT HEX(07010A);"PRINTER REQUIRED";TAB(S0)
: GOSUB '254
: GOTO 1050
1410 O=F3
: GOTO 1690
1440 IF I$="RANGE"THEN 1190
: IF Y=1THEN O=G2+F1-2
: ELSE O=G2+F1-3
: IF O<G2THEN O=G2
: GOTO 1690
1490 O=G2
: GOTO 1690
1530 O=O+5
: GOTO 1690
1560 O=O+1
: GOTO 1690
1590 O=O-1
: GOTO 1690
1620 O=O-5
: GOTO 1690
1660 PRINT AT(1,0,15*S0)
: GOSUB '200(F1$,F2$,5,0,"ENTER DESIRED RELATIVE SECTOR",1)
: O=G2+Q9
1690 IF O$="CRT"AND O>F5-1THEN O=F5-1
: IF O$="CRT"AND O<0THEN O=0
: GOTO 1050
1730 DEFFN'31
: COM CLEAR F$
: SELECT PRINT 005(S0)
: PRINT HEX(03)
: $CLOSE#4
1780 LOAD DC T#0,"ISS.100M"
: ERRORGOTO 1790
1790 PRINT HEX(010A);"MOUNT ISS DISK AT ADDRESS ";S$
: GOSUB '254
: GOTO 1780
1870 M=M+10
: GOSUB 3510
: IF M=3THEN M=13
: PRINT " BYTES","SECTOR: ABSOLUTE :";O1;" RELATIVE :";O1-G2
: FOR I=0TO 7
: PRINTUSING 160,I*32,(I+1)*32-1;
: FOR J=1TO 32STEP 8
: HEXPRINT STR(A$(I+1),J,4);
: PRINT " ";
: HEXPRINT STR(A$(I+1),J+4,4);
: PRINT " ";
: NEXT J
: $TRAN(A$()<I*32+1,32>,C$())
: PRINT " ";A$(I+1)
: NEXT I
: PRINT " "
: RETURN
2140 IF O$="PRINTER"THEN M=M+20
: GOSUB 3510
: IF O$="CRT"AND S0<80THEN 2190
: ELSE PRINT " BYTES ";
2190 IF O$="CRT"AND I$="FILE"THEN PRINT "FILE NAME - ";F$;" ";
: ELSE GOTO 2210
: GOTO 2220
2210 IF O$="CRT"THEN PRINT "LIMITS: ";G2;"-";F3;" ";
2220 PRINT "SECTOR: ABSOLUTE :";O1;" RELATIVE :";O1-G2
: FOR I=0TO 3
: MAT COPY A$()<I*64+1,64>TO D$()
: $TRAN(D$(),C$())
: GOSUB 2460
: MAT COPY A$()<I*64+1,64>TO D$()
: ROTATE(D$(),4)
: $TRAN(D$(),C1$)0F
: IF O$="CRT"AND S0<80THEN 2340
: ELSE PRINTUSING 160,I*64,(I+1)*64-1;
2340 GOSUB 2460
: MAT COPY A$()<I*64+1,64>TO D$()
: $TRAN(D$(),C1$)0F
: F2=1
: GOSUB 2460
: F2=0
: IF I<3OR O$="PRINTER"THEN PRINT " "
: NEXT I
: IF O$="PRINTER"THEN PRINT " "
: RETURN
2460 IF O$="CRT"AND S0<80THEN 2490
: PRINT TAB(14);D$()
: RETURN
2490 SELECT PRINT 005(65)
: IF I=3AND F2=1THEN PRINT D$();
: ELSE PRINT D$()
: SELECT PRINT 005(64)
: RETURN
2580 I,B=0
: M=M+5
: IF M<45THEN 2670
: GOSUB 3510
: M=M+5
2670 PRINT HEX(0A),"SECTOR: ABSOLUTE :";O1;" RELATIVE :";O1-G2
: D=VAL(A$(1))-128
: PRINT "LOGICAL RECORD -";E
: PRINT "PHYSICAL RECORD WITHIN LOGICAL RECORD -";VAL(STR(A$(1),2,1))
: PRINT
2720 PRINT " FIELD TYPE LENGTH VALUE * . * . * .
* . * . * . *"
: IF STR(A$(1),2,1)=HEX(01)THEN L=0
: K=3
2780 GOSUB 3510
: IF M<>3THEN 2830
: PRINT " FIELD TYPE LENGTH VALUE * . * . * .
* . * . * . *"
: M=M+1
2830 I=I+1
: D1$=HEX(A001)
: $UNPACK(F=D1$)A$()<K,1>TO E$
: IF E$<>HEX(FD)THEN 3050
: PRINT "BYTES USED -";B
: M=M+1
: IF D<>1THEN RETURN
: PRINT "LOGICAL RECORD LENGTH -";L
: M=M+1
: L=0
: E=E+1
: RETURN
3050 PRINT TAB(4);I;
: M=M+1
: IF E$<HEX(80)THEN 3350
: PRINT TAB(13);"ALPHA";
: J=VAL(E$)-127
: PRINT TAB(25);J-1;
: L=L+J
: B=B+J
: PRINT TAB(31);
: D$()=" "
: D$()=STR(A$(),K+1,J-1)
: $TRAN(D$(),C$())
: PRINT STR(D$(1),1,LEN(D$(1)))
: IF J<66THEN 3310
: PRINT TAB(31);STR(D$(2),1,LEN(D$(2)))
: M=M+1
3310 K=K+J
: GOTO 2780
3350 PRINT TAB(13);"NUMERIC 8";
: L=L+9
: B=B+9
: PRINT TAB(30);
: $UNPACKA$()<K-2>TO A1
: PRINT A1
: K=K+9
: GOTO 2780
3510 IF O$="CRT"THEN 3610
: IF M<55THEN RETURN
: M=3
: STR(H$,20,8)=F$
: IF P1<10THEN CONVERT P1TO STR(H$,38,1),(#)
: ELSE CONVERT P1TO STR(H$,38,2),(##)
: $GIO#4(400D400C400EA000400D,A3$)H$
: P1=P1+1
: PRINT
: RETURN
3610 PRINT HEX(03)
: RETURN
3660 PRINT HEX(07010A);"MOUNT INPUT PLATTER"
: GOSUB '254
: GOTO 370
3720 DEFFN'94
3740 $OPEN 3810,#4
3750 $GIO#4(010A02001212400040004000,A$)
: IF STR(A$,8,1)=HEX(00)THEN RETURN
: PRINT AT(1,0,S0);"SELECT PRINTER"
: GOSUB '254
: GOTO 3750
3810 PRINT AT(1,0,S0);"PRINTER HOGGED"
: GOSUB '254
: GOTO 3740
3870 DEFFN'44
: P$=" 000005"
: MAT SEARCHP$,=S$(1)TO P$
: IF STR(P$,1,2)=HEX(0000)THEN P$=" "
: ELSE P$="P"
: RETURN