image of READY prompt

Wang2200.org

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