Listing of file='KFAM6003' on disk='vmedia/701-2049C.wvd.zip'
# Sector 405, program filename = 'KFAM6003' 0010 REM KFAM6003,VER.11/08/76 0060 COM Q6$64 0070 DIM X$64,N$8,K0$3,Y$1,Y1$30,X1$2,X2$5 : DIM Q2$2,Q3$2,V5$1,V8$1,V0$2,V1$8,V2$2,V3$2,V6$1,T2$2,T4$3 : DIM T5$30,T7$30,T2$(8)2,T(8),T8$1,Q9$2,Q0$(4)60,T3$(1)33 : PRINT HEX(03) 0100 GOSUB '243("ENTER FILE NAME",8) : N$=Q6$ : IF Q6$<>" "THEN 110 : GOSUB '248(3,0,1) : PRINT "INVALID. RE-ENTER" : GOTO 100 0110 GOSUB '245("ENTER KEY FILE #",1,0) : K=Q9 : IF Q9>0THEN 120 : GOSUB '248(3,0,1) : PRINT "INVALID. RE-ENTER" : GOTO 110 0120 GOSUB '125("ENTER THE NO. OF THE KEY FILE DEVICE ADDRESS") : D1=X : ON D1-1GOTO 131,133,135,137,139,141 : SELECT #1310 : GOTO 200 0131 SELECT #1320 : GOTO 200 0133 SELECT #1330 : GOTO 200 0135 SELECT #1350 : GOTO 200 0137 SELECT #1B10 : GOTO 200 0139 SELECT #1B20 : GOTO 200 0141 SELECT #1B30 0200 PRINT HEX(03) : STR(N$,5,1)="K" : CONVERT KTO STR(N$,6,1),(#) : LIMITS T#1,N$,A,F,U : S9=A : DATA LOAD DA T#1,(S9,S9)Q2$,Q3$,V5$,V8$,V0$,V1$,V2$,V3$,V6$,T2$,T0,T1,T2, V8,T4$,T5$,T7$,T2$(),T(),T8$ 0240 SELECT PRINT 215(132) 0250 PRINT HEX(0E);"KEY FILE ";N$ : PRINT HEX(0A0A) : PRINT "KDR FIELD";TAB(30);"VALUE HEX VARIABLE" : PRINT HEX(0A) : PRINT "LAST DATA SECTOR";TAB(30); : GOSUB '50(Q2$,2) : PRINT "Q2$2" : PRINT "DATA SECTOR LIMIT";TAB(30); : GOSUB '50(Q3$,2) 0340 PRINT "Q3$2" : PRINT "LAST DATA RECORD, REC #";TAB(30); : GOSUB '50(V5$,1) : PRINT "V5$1" : PRINT "RECORDS PER BLOCK";TAB(30); : GOSUB '50(V8$,1) : PRINT "V8$1" : PRINT "KEY FILE, STARTING SECTOR";TAB(30); : GOSUB '50(V0$,2) : PRINT "V0$2" 0440 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) : PRINT "STR(V1$,2,1)" : PRINT "STARTING POSITION OF KEY";TAB(30); : GOSUB '50(STR(V1$,3,2),2) 0500 PRINT "STR(V1$,3,2)" : PRINT "KEY LENGTH";TAB(30); : GOSUB '50(STR(V1$,5,1),1) : T4=X : T5=T4+3 : PRINT "STR(V1$,5,1)" : PRINT "NUMBER OF ENTRIES IN KIR";TAB(30); : GOSUB '50(STR(V1$,6,1),1) : PRINT "STR(V1$,6,1)" : V6=X 0540 PRINT "KEY FILE, LAST SECTOR USED";TAB(30); : GOSUB '50(V2$,2) : L=A+X : 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) 0630 PRINT "V6$1" : PRINT "HIGHEST LEVEL INDEX SECTOR";TAB(30); : GOSUB '50(T2$,2) : PRINT "T2$2" : PRINT "NUMBER OF INDEX LEVELS";TAB(30); : PRINTUSING 990,T0; : PRINT TAB(50);"T0" : PRINT "CURRENT KEY FILE #";TAB(30); : PRINTUSING 990,T1; : PRINT TAB(50);"T1" 0730 PRINT "CURRENT DATA FILE #";TAB(30); : PRINTUSING 990,T2; : PRINT TAB(50);"T2" : PRINT "BIAS FOR SPLITTING KIR";TAB(33); : PRINTUSING 780,V8; 0780 %##.## 0790 PRINT TAB(50);"V8" : PRINT "LAST KEY ADDED";TAB(36-INT(T4/2));T5$;TAB(49);" T5$30" : PRINT "LAST RECORD ACCESSED ---" : PRINT TAB(5);"KEY";TAB(36-INT(T4/2));T7$;TAB(49);" T7$30" : PRINT TAB(5);"SECTOR";TAB(30); : GOSUB '50(STR(T4$,1,2),2) 0840 PRINT "STR(T4$,1,2)" : PRINT TAB(5);"REC #";TAB(30); : GOSUB '50(STR(T4$,3,1),1) : PRINT "STR(T4$,3,1)" : X2$=" " : IF T8$<>" "THEN 878 : X2$="BLANK" : GOTO 880 0878 STR(X2$,5,1)=T8$ 0880 PRINT "COMPLETION CODE";TAB(30);X2$;TAB(40); : HEXPRINT T8$; : PRINT TAB(50);"T8$" : PRINT HEX(0A) : PRINT "L A S T P A T H . . . . . . . . . . . . . . . . . ." : PRINT HEX(0A) : PRINT "LEVEL "; : FOR X=1TO T0 : PRINTUSING 980,X; : NEXT X : PRINT TAB(48);" T3" 0980 % ##### 0990 %##### 1000 PRINT "KIE # "; : FOR X=1TO T0 : Y=((T(X)-1)/T5)+1 : PRINTUSING 980,Y; : NEXT X : PRINT TAB(48);" T(T3)" : PRINT "SECTOR"; : FOR X=1TO T0 : Y=VAL(T2$(X))*256+VAL(STR(T2$(X),2)) : PRINTUSING 980,Y; : NEXT X : PRINT TAB(48);" T2$(T3)2" : PRINT "HEX"; : FOR X=1TO T0 : PRINT TAB(2+7*X); 1140 HEXPRINT T2$(X); : NEXT X : PRINT " " : PRINT HEX(0C) : PRINT HEX(0E);"KEY INDEX SECTORS" : S2=12 : IF T4<12THEN 1210 : S2=T4 1210 PRINT HEX(0A0A) : DATA LOAD DA T#1,(S9,S9)Q9$,Q0$() : GOSUB '51(Q9$) : PRINT "SECTOR "; : PRINTUSING 990,X; : PRINT TAB(16);"HEX("; : HEXPRINT Q9$; : PRINT ")" : PRINT " # HEX KEY";TAB(4+2*S2);"POINTER ( KEY";TAB(13+3*S2);") SECT OR REC#" : T=1 : FOR Z=1TO V6 1305 MAT COPY Q0$()<T,T5>TO T3$() : GOSUB '51(STR(T3$(1),T4+1,2)) : Y=VAL(STR(T3$(1),T5,1)) : Y1$=STR(T3$(1),1,T4) : FOR Z1=1TO T4 : Y$=STR(Y1$,Z1,1) : IF Y$<HEX(20)THEN 1375 : IF Y$>HEX(7A)THEN 1375 : GOTO 1380 1375 STR(Y1$,Z1,1)="-" 1380 NEXT Z1 1390 %## 1400 PRINTUSING 1390,Z; : PRINT " "; : HEXPRINT STR(T3$(1),1,T4); : PRINT TAB(5+2*S2); : HEXPRINT STR(T3$(1),T4+1,3); : PRINT " ";STR(Y1$,1,T4);TAB(16+3*S2); : PRINTUSING 990,X;Y : T=T+T5 : NEXT Z : IF S9<=LTHEN 1210 : PRINT HEX(0C) : SELECT PRINT 005(64) : COM CLEAR Q6$ : LOAD DC T#0,"START050" 1620 DEFFN'50(X1$,C) : IF C=1THEN 1660 : GOSUB '51(X1$) : GOTO 1670 1660 X=VAL(X1$) 1670 PRINTUSING 990,X; : PRINT TAB(40); : HEXPRINT STR(X1$,1,C); : PRINT TAB(50); : RETURN 1740 DEFFN'51(X1$) : X=VAL(X1$)*256+VAL(STR(X1$,2)) : RETURN 2040 DEFFN'125(X$) : GOSUB '248(5,0,5) : PRINT ,"1. 310 5. B10" : PRINT ,"2. 320 6. B20" : PRINT ,"3. 330 7. B30" : PRINT ,"4. 350" 2100 GOSUB '245(X$,1,0) : X=Q9 : IF X<1THEN 2160 : IF X>7THEN 2160 : GOSUB '248(5,0,5) : RETURN 2160 PRINT HEX(010A0A0A) : PRINT "INVALID DEVICE ADDRESS" : GOTO 2100 8795 DEFFN'242(W0,Q6$) : IF W0<=0THEN 9105 : IF W0=1THEN 8815 : STR(Q6$,2)=STR(Q6$,1,W0-1) 8815 PRINT Q6$; : RETURN 8825 DEFFN'243(Q6$,Q0) : GOSUB 8990 8835 SELECT CO 205 : Q6$=" " : INPUT Q6$ : IF Q0=0THEN 9010 : IF LEN(Q6$)<=Q0THEN 9010 : GOSUB 8985 8865 DEFFN'244(Q0) : GOSUB 9000 : GOSUB 8995 : GOTO 8835 8885 DEFFN'245(Q6$,Q2,Q3) : Q0=ABS(Q2)+Q3+1 : GOSUB 8990 8900 GOSUB '242(ABS(Q2)+2,HEX(09)) : PRINT "/" : GOSUB 9000 : SELECT CO 205 : Q9,W0=-1E-99 : INPUT Q9 : IF W0=Q9THEN 8935 : IF Q9>=0THEN 8965 : IF Q2<=0THEN 8965 8935 GOSUB 8985 8940 DEFFN'246(Q2,Q3) : Q0=ABS(Q2)+Q3+1 : GOSUB 9000 : GOSUB 8995 : GOTO 8900 8965 IF ABS(Q9)>=10^ABS(Q2)THEN 8935 : W0=ABS(Q9*10^Q3) : IF INT(W0)<>W0THEN 8935 : GOSUB '248(3,0,1) : RETURN 8985 GOSUB '248(3,0,1) : PRINT "RE-ENTER" : RETURN 8990 SELECT PRINT 005(64),CO 005 : PRINT HEX(010A);STR(Q6$,1); 8995 SELECT PRINT 005(64),CO 005 : GOSUB '242(Q0+2,"-") : PRINT TAB(64) 9000 PRINT HEX(010A0A) : RETURN 9010 PRINT HEX(0A);TAB(64) : SELECT PRINT 005(64),CO 005 : RETURN 9035 DEFFN'248(Q6,Q7,Q8) : GOSUB 9105 : IF Q8<1THEN 9090 : GOSUB 9090 : SELECT PRINT 205 : Q6$=" " : PRINT STR(Q6$,Q7+1) : IF Q8<2THEN 9090 : FOR W0=2TO Q8 : PRINT HEX(0A);STR(Q6$,1) : NEXT W0 9090 PRINT HEX(01) : GOSUB '242(Q7,HEX(09)) : GOSUB '242(Q6,HEX(0A)) 9105 SELECT PRINT 005(64),CO 005 : RETURN