Listing of file='KFAM617U' on disk='vmedia/701-2427C.wvd.zip'
# Sector 720, program filename = 'KFAM617U'
0010 REM KFAM617U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC.
0120 % THIS MUST BE LINE 120
0340 DIM Y$1,Y1$30,X1$2,X2$5,H$6,L$5
: S1$="ISS.254SISS.200S"
: LOAD T<LEN(S1$)/8>S1$10,0BEG 380
0380 IF S$(1)<>" "THEN SELECT #4<S$(1)>
: IF F9$=" "THEN 460
0410 PRINT AT(1,0,S0);"MOUNT PLATTERS AT THE INDICATED ADDRESSES"
: GOSUB '254
: DATA LOAD BA T#1,(0)R9$()
: ERRORGOTO 410
0440 DATA LOAD BA T#2,(0)R9$()
: ERRORGOTO 410
0460 IF T4>12THEN L2=T4
: ELSE L2=12
: IF O$="CRT"THEN 680
: L9=A1+1
: GOSUB '94
: PRINT AT(1,0,S0);"PRINTING ...";
: SELECT PRINT <S$(1)>(132)
: PRINT HEX(0C0E);"KEYFILE ";K1$
: PRINT HEX(0A0A)
: GOSUB 1710
: GOSUB 2280
: PRINT HEX(0C0E);"KEY INDEX SECTORS"
: PRINT HEX(0A0A)
: F=1
: GOSUB 2610
0620 $CLOSE#4
0630 SELECT PRINT 005(S0)
: PRINT HEX(03)
: LOAD T"KFAM997U"
0680 P0=16+8*INT(S0/80)
: F1=0
: P=-1
: GOTO 1330
0730 SELECT PRINT 005(S0)
: IF S0<27+3*L2THEN F=0
: ELSE F=1
: PRINT AT(P0-1,0,S0);"KEY S.F.";
0760 KEYIN Y$,,775
: GOTO 760
0775 PRINT HEX(06);
: ON VAL(Y$)GOTO ,,1590,850,,890,930,970,1280,1030,1190,1210,1230,1250
: ON VAL(Y$)-19GOTO 1410,,,1450,,1620,,1490,1510,1530,1550,630
: GOTO 760
0850 P=L-A1
: GOTO 1280
0890 P=-1
: GOTO 1280
0930 P=1
: GOTO 1280
0970 GOSUB '200("-1",L$,5,0,"ENTER DESIRED KIR",1)
: P=Q9
: GOTO 1280
1030 GOSUB '44
: IF P$="P"THEN 1140
: GOSUB '94
: PRINT AT(P0-1,0,S0);"PRINTING ...";
: SELECT PRINT <S$(1)>(132)
: F=1
: P2=L6
: Y$="P"
: GOTO 1290
1140 PRINT HEX(07);AT(1,0,S0);"PRINTER REQUIRED"
: GOSUB '254
: GOTO 1280
1190 P=P+5
: GOTO 1280
1210 P=P+1
: GOTO 1280
1230 P=P-1
: GOTO 1280
1250 P=P-5
1280 P2=MIN(P0-8,L6)
1290 P1=1
: IF P<-1THEN P=-1
: IF P>L-A1THEN P=L-A1
1320 L9=A1+P
1330 IF P<1THEN PRINT HEX(03)
: IF Y$<>"P"THEN PRINT AT(0,0);
: PRINT "KEY FILE - ";K1$;" - ";
: ON P+2GOSUB 1710,2280
: ELSE GOSUB 2610
: $CLOSE#4
: GOTO 730
1410 P1=L6
: GOTO 1620
1450 P1=1
: GOTO 1620
1490 P1=P1+5
: GOTO 1620
1510 P1=P1+1
: GOTO 1620
1530 P1=P1-1
: GOTO 1620
1550 P1=P1-5
: GOTO 1620
1590 IF F1=1THEN F1=0
: ELSE F1=1
1620 IF L6<P0-6THEN 1660
: IF P1<1THEN P1=1
: IF P1>L6-P0+9THEN P1=L6-P0+9
: P2=P1+P0-9
: GOTO 1320
1660 P1=1
: P2=L6
: GOTO 1320
1710 $UNPACK(F=H1$)T$(2)TO T0,T2$,Q2$,V2$,T8,V6$,V3$,Q3$,V8$
: V1$=STR(T$(2),18)
: H$=HEX(2D002DFF)
: IF O$="PRINTER"THEN 1780
: PRINT "KDR"
: IF S0=64THEN 1800
: PRINT AT(4,0,S0);
1780 PRINT "KDR FIELD";TAB(30);"VALUE HEX VARIABLE"
: PRINT
1800 PRINT "LAST DATA SECTOR";TAB(30);
: GOSUB '50(Q2$,2)
: PRINT "Q2$2"
: PRINT "DATA SECTOR LIMIT";TAB(30);
: GOSUB '50(Q3$,2)
: PRINT "Q3$2"
: PRINT "RECORDS PER BLOCK";TAB(30);
: GOSUB '50(V8$,1)
: PRINT "V8$1"
: PRINT "TYPE OF BLOCKING";TAB(34);STR(V1$,1,1);TAB(50);"STR(V1$,1,1)"
: PRINT "RECORD LENGTH";TAB(30);
: GOSUB '50(STR(V1$,2,1),1)
1920 PRINT "STR(V1$,2,1)"
: PRINT "STARTING POSITION OF KEY";TAB(30);
: GOSUB '50(STR(V1$,3,2),2)
: PRINT "STR(V1$,3,2)"
: PRINT "KEY LENGTH";TAB(30);
: GOSUB '50(STR(V1$,5,1),1)
: PRINT "STR(V1$,5,1)"
: PRINT "NUMBER OF ENTRIES IN KIR";TAB(30);
: GOSUB '50(STR(V1$,6,1),1)
: L6=X
: PRINT "STR(V1$,6,1)"
: PRINT "KEY FILE, LAST SECTOR USED";TAB(30);
2040 GOSUB '50(V2$,2)
: L=A1+X
: CONVERT XTO L$,(#####)
: PRINT "V2$2"
: PRINT "KEY FILE, LAST SECTOR AVAIL.";TAB(30);
: GOSUB '50(V3$,2)
: PRINT "V3$2"
: PRINT "SECTORS PER LOGICAL RECORD";TAB(30);
: GOSUB '50(V6$,1)
: PRINT "V6$1"
: PRINT "HIGHEST LEVEL INDEX SECTOR";TAB(30);
: GOSUB '50(T2$,2)
: PRINT "T2$2"
: PRINT "NUMBER OF INDEX LEVELS";TAB(30);
2180 PRINTUSING 2530,T0;
: PRINT TAB(50);"T0"
: PRINT "RECORD COUNT";TAB(27);
: PRINTUSING 2220,T8;
2220 %########
2230 PRINT TAB(50);"T8"
: IF O$<>"CRT"THEN PRINT HEX(0A)
: RETURN
2280 PRINT "PER STATION ACCESS TABLE --"
: IF O$<>"CRT"THEN PRINT
: ELSE PRINT AT(4,0,S0);
: PRINT "STA- ACCESS COMPLETION PROTECTED FINDNEW FINDNEW"
: PRINT "TION TYPE CODE SECTOR(HEX) SECTOR(HEX) RECORD (HEX)"
: IF O$<>"CRT"THEN PRINT
: DATA LOAD BA T#2,(E2)R9$()
: FOR X=1TO 16
2350 IF X=9AND O$="CRT"AND S0=64THEN GOSUB 2560
: PRINTUSING 2930,X;
: X2$=STR(R9$(3),X,1)
: IF X2$>" "THEN 2400
: X2$="NONE"
2400 PRINT TAB(7);X2$;TAB(18);
: Y$=STR(T$(1),X)
: IF Y$=" "THEN 2450
: PRINT Y$;
: GOTO 2460
2450 PRINT "BLANK";
2460 PRINT TAB(29);
: HEXPRINT STR(T$(1),2*X+15,2);
: PRINT TAB(42);
: HEXPRINT STR(T$(3),3*X-2,2);
: PRINT TAB(56);
: HEXPRINT STR(T$(3),3*X,1)
: NEXT X
2530 %#####
2540 RETURN
2560 GOSUB '254
: PRINT AT(6,0);
: RETURN
2610 DATA LOAD DA T#1,(L9,L9)T9$,T0$()
: X=VAL(T9$,2)
: PRINT "SECTOR ";
: PRINTUSING 2530,X;
: PRINT TAB(16);" HEX(";
: HEXPRINT T9$;
: PRINT ")";TAB(S0)
: IF O$="PRINTER"OR Y$="P"THEN 2710
: PRINT AT(1,0,3*S0);AT(4,0);
: SELECT PRINT 005(S0+1)
2710 PRINT " # ";
: IF O$="CRT"AND F=0AND F1=1THEN 2750
: PRINT "HEX KEY";TAB(4+2*L2);
: IF O$="CRT"AND F=0AND F1=0THEN 2760
2750 PRINT "POINTER ( KEY";TAB(10+L2+(2*L2+1)*F);") SECTOR REC#";
2760 PRINT TAB(S0)
: T=(P1-1)*T5+1
: IF O$="CRT"THEN 2820
: T=1
: P1=1
: P2=L6
2820 FOR Z=P1TO P2
: $UNPACK(F=V4$)T0$()<T>TO T1$,T4$
: Y1$=T1$
: $TRAN(Y1$,H$)R
2870 X=POS(Y1$<20)
: IF X=0THEN 2910
2890 STR(Y1$,X,1)="-"
: GOTO 2870
2910 X=POS(Y1$>7A)
: IF X>0THEN 2890
2930 %##
2940 PRINTUSING 2930,Z;
: PRINT " ";
: IF O$="CRT"AND F=0AND F1=1THEN 3000
: HEXPRINT STR(T1$,1,T4);
: PRINT TAB(4+2*L2);
: IF O$="CRT"AND F=0AND F1=0THEN 3050
3000 HEXPRINT T4$;
: PRINT " ";STR(Y1$,1,T4);TAB(13+L2+(2*L2+1)*F);
: X=VAL(T4$,2)
: Y=VAL(STR(T4$,3))
: PRINTUSING 2530,X;Y;
3050 PRINT TAB(S0)
: T=T+T5
: NEXT Z
: IF O$="CRT"THEN 3120
: PRINT HEX(0A0A)
: IF L9<=LTHEN 2610
: RETURN
3120 IF Y$<>"P"THEN PRINT AT(6+P2-P1,0,)
: ELSE PRINT HEX(0A0A)
: RETURN
3160 DEFFN'50(X1$,C)
: IF C=1THEN 3200
: X=VAL(X1$,2)
: GOTO 3210
3200 X=VAL(X1$)
3210 PRINTUSING 2530,X;
: PRINT TAB(40);
: HEXPRINT STR(X1$,1,C);
: PRINT TAB(50);
: RETURN
3270 DEFFN'31
: PRINT
: GOTO 620
3330 DEFFN'94
3350 $OPEN 3420,#4
3360 $GIO#4(010102001212400040004000,A$)
: IF STR(A$,8,1)=HEX(00)THEN RETURN
: PRINT AT(1,0,S0);"SELECT PRINTER"
: GOSUB '254
: GOTO 3360
3420 PRINT AT(1,0,S0);"PRINTER HOGGED"
: GOSUB '254
: GOTO 3350
3480 DEFFN'44
: P$=" 000005"
: MAT SEARCHP$,=S$(1)TO P$
: IF STR(P$,1,2)=HEX(0000)THEN P$=" "
: ELSE P$="P"
: RETURN