File: ARRDIR.FC of Tape: Sources/Focal/s8
(.FC,.FO Focal format converted to 'WRITE' listing) 

C ACU-FOCAL12,1973

01.10 C 'ARRDIR' 1/4/74 BY W.V.D.MARK OF ACU
01.20 C PROGRAM FOR MODIFICATION OF HELP ARRAY DIRECTORY
01.25 E
01.30 A !!"IF MODIFICATION NEEDED ANSWER YES ",IF
01.40 I (-FABS(IF-0YES))1.5;S IF=8.1;G 2.1
01.50 S IF=2.1

02.05 T " ^U"
02.10 T !!"WHAT ";F I=0,30;S G(I)=0
02.13 T "KEYWORD?";S I=0
02.20 S Z=FIN()-128;I (FABS(Z-21)),2.05;I (FABS(Z-13)),1.1;I (FABS(Z-127)),2.55
02.23 I [FABS(Z-32)],2.2,2.3
02.25 S Z=FIN()-128
02.30 I (FABS(Z-21)),2.05;I (FABS(Z-13)),3.1;I (FABS(Z-127)),2.6;I (30-I)2.25
02.40 S I=I+1;S G(I)=Z
02.50 G 2.25
02.55 S I=1
02.60 T "\";S I=I-1;I (I),2.7,2.25
02.70 S Z=FOUT(223);T "DELETED";G 2.1

03.10 O A DIREC
03.20 F I=0,2;D 3.3;S D(I+1)=Z
03.25 G 3.35
03.30 S Z=G(I*3+1)+G(I*3+2)/128+G(I*3+3)/16384
03.35 S NU=FX();S N1=FITR(NU/2);S TA=0;S SW=0
03.50 I (1+SW)3.9;S TA=TA+N1;S SW=0;G 3.56
03.55 S TA=TA-N1;S SW=-1
03.56 S N1=FITR(N1/2);I (N1),3.57,3.58
03.57 S N1=1;S SW=SW-1
03.58 S T1=TA*4
03.60 I (D(1)-FX(T1+1))3.55,3.65,3.5
03.65 I (D(2)-FX(T1+2))3.55,3.7,3.5
03.70 I (D(3)-FX(T1+3))3.55,3.75,3.5
03.75 T "FOUND IT TA=",TA,!
03.80 G IF
03.90 S TA=TA+1;D 3.58;S NU=NU+1;I (1024-NU)2.1,2.1;
03.95 T "NOT THERE TA=",TA;A ?   Y ?,?    Z ?;S VA=Y*100+Z/100

04.10 F I=-(NU*4+3),-(T1+4);S Z=FX(-I,FX(-I-4))
04.30 S Z=FX(T1,VA);S Z=FX(T1+1,D(1));S Z=FX(T1+2,D(2));S Z=FX(T1+3,D(3))
04.40 S Z=FX(0,NU)
04.50 O T;G 2.1

05.01 C SUB FOR LISTING DIRECTORY
05.10 D 3.1
05.15 S NU=FX();T !,:2,"-I-",:10,"LINE",:20,"SUBLINE",:30,"KEYWORD",!!
05.20 F I=0,NU;D 5.3;D 5.4
05.25 Q
05.30 T !,%4,I,:10,%4.02,FITR(FX(I*4))/100,:20,.001+100*(FX(I*4)-FITR(FX(I*4))),:30
05.40 F J=I*4+1,I*4+3;D 5.5;D 5.6
05.50 S Z(1)=FITR(FX(J));S Z(2)=FITR((FX(J)-Z(1))*128)
05.60 S Z(3)=FITR((FX(J)*128-Z(1)*128-Z(2))*128);F K=1,3;D 6

06.05 I (-Z(K))6.1;R
06.10 I (Z(K)-32)6.5,6.15,6.15
06.15 S Z=FOUT(Z(K)+128)
06.20 R
06.50 T "^";S Z(K)=Z(K)+64;G 6.1

07.01 C SUB FOR ASSIGNING UNDEFINED KEYWORDS
07.05 S LI=7.5
07.10 D 3.1
07.15 A !"LIST ONLY UNDEFINED?",LI;I (FABS(LI-0YES))7.2;S LI=7.27
07.20 S NU=FX();T !,:2,"-I-",:10,"KEYWORD",:20,"LINE",:30,"SUBLINE"
07.25 S I=0
07.27 I (I-NU)7.3;O T;Q
07.30 S I=I+1;I (FX(I*4))7.27,7.4,7.27
07.40 T !,%4,I,:10;D 5.4
07.45 G LI
07.50 T :20;A ?Y?;T :30;A ?Z?
07.60 S Z1=FX(I*4,Y*100+Z/100)
07.70 G 7.27

08.01 C SUB (CALLED AUTOMATICALLY) FOR MODIFYING VALUES;IF Y,Z=0 THEN DELETE
08.10 S I=TA
08.20 D 7.2;T :40,"NEW LINE",:50,"NEW SUBLINE"
08.30 D 7.4
08.40 T :20,%4.02,FITR(FX(I*4))/100,:30,.001+100*(FX(I*4)-FITR(FX(I*4)))
08.50 A :40,?Y?,:50,?Z?
08.55 I (Y+Z),8.8,8.6
08.60 D 7.6
08.70 G 4.5
08.80 S NU=NU-1
08.85 F I=T1,NU*4+3;S Z=FX(I,FX(1+4))
08.90 S Z=FX(0,NU)
08.95 G 4.5