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