Listing of file='KFAM5000' on disk='vmedia/701-2049C.wvd.zip'
# Sector 335, program filename = 'KFAM5000' 0001 REM KFAM5000,VER.09/26/75 0002 GOTO 3688 0012 COM Q6$64 0200 DIM T(20) 3688 LOAD DC T#0,"KFAM0000"3688,3688 7165 DIM A$(4)64,K0$3,K1$8,K2$12,K3$12,L$2,U0$3,U1$8 : DIM X$64,D8$21,K9$12,Y$1,K4$12 : D8$="310320330350B10B20B30" 7174 PRINT HEX(03) 7178 GOSUB '243("ENTER USER FILE NAME (SSSSFJNN)",8) : U1$=Q6$ : IF STR(U1$,5,1)<>"F"THEN 7198 : IF STR(U1$,6,1)<"0"THEN 7198 : IF STR(U1$,6,1)<="9"THEN 7210 7198 GOSUB '60("NOT KFAM FILE NAME") : GOTO 7178 7210 GOSUB '125("ENTER THE NO. OF THE USER FILE DEVICE ADDRESS") : D2=X : U0$=STR(D8$,X*3-2,3) : ON D2-1GOTO 7233,7234,7235,7236,7237,7238 : SELECT #2310 : GOTO 7250 7233 SELECT #2320 : GOTO 7250 7234 SELECT #2330 : GOTO 7250 7235 SELECT #2350 : GOTO 7250 7236 SELECT #2B10 : GOTO 7250 7237 SELECT #2B20 : GOTO 7250 7238 SELECT #2B30 7250 GOSUB '245("ENTER KEY FILE NUMBER (NORMAL=1)",1,0) : K9=Q9 : IF K9>0THEN 7270 : GOSUB '60("INVALID") : GOTO 7250 7270 K1$=U1$ : STR(K1$,5,1)="K" : CONVERT K9TO STR(K1$,6,1),(#) : GOSUB '125("ENTER THE NO. OF THE KEY FILE DEVICE ADDRESS") : D1=X : K0$=STR(D8$,X*3-2,3) : ON D1-1GOTO 7309,7310,7311,7312,7313,7314 : SELECT #1310 : GOTO 7360 7309 SELECT #1320 : GOTO 7360 7310 SELECT #1330 : GOTO 7360 7311 SELECT #1350 : GOTO 7360 7312 SELECT #1B10 : GOTO 7360 7313 SELECT #1B20 : GOTO 7360 7314 SELECT #1B30 7360 GOSUB '230(1,2,1,K9,U1$) : IF Q$=" "THEN 7375 : STOP "ERROR OPENING FILES" 7375 K1=T(12) : INIT(00)K4$ : B=T(15) : C1,C2=1 : IF B=0THEN 7410 : C2=T(14) : GOTO 7420 7410 C1=T(14) 7420 X=T(13)+1 : C5=INT((X-1)/256) : C4=X-256*C5 : D=0 : I=0 : X=T(11)-1 : IF B=0THEN 7470 : R1=INT(X*B+.5) : GOTO 7495 7470 R1=X/C1 : IF R1=INT(R1)THEN 7495 : GOSUB '248(0,0,4) : STOP "NOT EVEN MULTIPLE" 7495 PRINT HEX(030A0A0A0A) : PRINT "KFAM FILE CONVERSION (KFAM5000)" : PRINT HEX(0A) : PRINT "UF NAME = ";U1$;TAB(26);"UF DEVICE = ";U0$ : PRINT "KF NAME = ";K1$;TAB(26);"KF DEVICE = ";K0$ : LIMITS T#1,U1$,S9,X,Y : C=0 : C3=B 7540 GOSUB '248(0,0,4) 7545 PRINT "TURN ON PRINTER" : GOSUB '243("KEY RETURN(EXEC) TO RESUME",2) : GOSUB '248(0,0,4) : SELECT PRINT 215 : PRINT HEX(0A0A) : PRINT "KFAM FILE CONVERSION (KFAM5000)" : PRINT HEX(0A0A) 7575 L=0 : FOR R2=1TO R1 : C3=C3+1 : IF C3<=BTHEN 7635 : A=S9+C+C5 : DATA LOAD BA T#1,(A,X)A$() : C3=1 : C=C+C1 7635 Z=C4+C2*(C3-1) : P1=INT((Z-1)/64)+1 : P2=Z-64*(P1-1) : K3$=STR(A$(P1),P2) : Z=65-P2 : IF Z>=K1THEN 7675 : STR(K3$,Z+1)=STR(A$(P1+1),1) 7675 IF K1>=12THEN 7690 : INIT(20)STR(K3$,K1+1) 7690 GOSUB '232(1,0,K3$) : IF Q$=" "THEN 7715 : IF Q$="X"THEN 8020 : GOTO 7755 7715 IF T2-1<>C-C1THEN 7755 : IF B<2THEN 7725 : IF Q<>C3THEN 7755 7725 K2$=K3$ : IF STR(K3$,1,K1)=STR(K4$,1,K1)THEN 7785 : IF STR(K3$,1,1)=HEX(FF)THEN 7785 : GOTO 7795 7755 STR(A$(P1),P2,1)=HEX(FF) : DATA SAVE BA T$#1,(A,X)A$() 7765 GOSUB '50("DELETED") : D=D+1 : GOTO 7795 7785 GOSUB '50("INVALID KEY") : I=I+1 7795 NEXT R2 7815 PRINT HEX(0A0A) : IF L<45THEN 7830 : PRINT HEX(0C) 7830 PRINTUSING 7832,R1-D-I 7832 %ACTIVE RECORDS ###### 7834 PRINTUSING 7836,D 7836 %DELETED RECORDS ###### 7838 PRINTUSING 7840,I 7840 %INVALID RECORDS ###### 7842 PRINTUSING 7843,R1 7843 %TOTAL INPUT ###### 7845 PRINT HEX(0A0A) : PRINTUSING 7855,K2$; 7855 %LAST KEY = ############ 7860 PRINT " HEX = "; : HEXPRINT K2$ : PRINT HEX(0C) : SELECT PRINT 005 : GOSUB '239(1) : Q6$="DO YOU WISH TO DO ANOTHER FILE? (Y OR N)" : GOSUB '243(Q6$,1) : IF Q6$="Y"THEN 7174 : GOSUB '248(0,0,4) : COM CLEAR Q6$ : LOAD DC T#0,"START050" 7930 DEFFN'50(Q6$) 7935 IF L>0THEN 7955 : L=5 7945 PRINT "HEX KEY";TAB(26);"KEY SECTOR REC MESSAGE" : PRINT HEX(0A) 7955 IF L<50THEN 7980 : PRINT HEX(0C) : L=1 : GOTO 7945 7980 L=L+1 : INIT(2D)K9$ : FOR X=1TO 12 : Y$=STR(K3$,X,1) : IF Y$<HEX(20)THEN 7994 : IF Y$>HEX(7F)THEN 7994 : STR(K9$,X,1)=STR(Y$,1) 7994 NEXT X : HEXPRINT K3$; : PRINT TAB(26);K9$;TAB(40); : PRINTUSING 8002,C-C1,C3,STR(Q6$,1,11) 8002 %##### ### ########### 8005 RETURN 8020 GOSUB '50("ERROR X") : PRINT HEX(0C) : SELECT PRINT 005 : STOP "ERROR X" 8055 DEFFN'60(Q6$) : PRINT HEX(010A0A0A) : PRINT Q6$ : RETURN 8095 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" 8125 GOSUB '245(X$,1,0) : X=Q9 : IF X<1THEN 8155 : IF X>7THEN 8155 : GOSUB '248(5,0,5) : RETURN 8155 PRINT HEX(010A0A0A) : PRINT "INVALID DEVICE ADDRESS" : GOTO 8125 8710 Q6=3 : GOTO 9289 8975 DEFFN'242(W0,Q6$) : IF W0<=0THEN 9405 : IF W0=1THEN 8990 : STR(Q6$,2)=STR(Q6$,1,W0-1) 8990 PRINT Q6$; : RETURN 9010 DEFFN'243(Q6$,Q0) : GOSUB 9200 9022 SELECT CO 205 : Q6$=" " : INPUT Q6$ : IF Q0=0THEN 9231 : IF Q0>1THEN 9025 : IF Q6$="Y"THEN 9025 : IF Q6$<>"N"THEN 9027 9025 IF LEN(Q6$)<=Q0THEN 9231 9027 GOSUB 9150 9032 DEFFN'244(Q0) : GOSUB 9220 : GOSUB 9210 : GOTO 9022 9038 DEFFN'245(Q6$,Q2,Q3) : Q0=ABS(Q2)+Q3+1 : GOSUB 9200 9044 GOSUB '242(ABS(Q2)+2,HEX(09)) : PRINT "/" : GOSUB 9220 : SELECT CO 205 : Q9,W0=-1E-99 : INPUT Q9 : IF W0=Q9THEN 9058 : IF Q9>=0THEN 9070 : IF Q2<=0THEN 9070 9058 GOSUB 9150 9060 DEFFN'246(Q2,Q3) : Q0=ABS(Q2)+Q3+1 : GOSUB 9220 : GOSUB 9210 : GOTO 9044 9070 IF ABS(Q9)>=10^ABS(Q2)THEN 9058 : W0=ABS(Q9*10^Q3) : IF INT(W0)<>W0THEN 9058 : GOTO 8710 9150 GOSUB 8710 : PRINT "RE-ENTER" : RETURN 9200 GOSUB 9405 : PRINT HEX(010A);STR(Q6$,1); 9210 GOSUB 9405 : GOSUB '242(Q0+2,"-") : PRINT TAB(64) 9220 PRINT HEX(010A0A) : RETURN 9231 PRINT HEX(0A);TAB(64) : GOTO 9405 : Q6=0 9289 Q7=0 : Q8=1 9290 DEFFN'248(Q6,Q7,Q8) : GOSUB 9405 : IF Q8<1THEN 9350 : GOSUB 9350 : SELECT PRINT 205 : Q6$=" " : PRINT STR(Q6$,Q7+1) : IF Q8<2THEN 9350 : FOR W0=2TO Q8 : PRINT HEX(0A);STR(Q6$,1) : NEXT W0 9350 PRINT HEX(01) : GOSUB '242(Q7,HEX(09)) : GOSUB '242(Q6,HEX(0A)) 9405 SELECT PRINT 005(64),CO 005 : RETURN