[comp.sys.amiga] AutoFacc

kim@amdahl.UUCP (06/15/87)

[ For all you do ... this line's for you ... ]

I came across this on the First Amiga Users Group (FAUG) BBS earlier today.
My copy of Facc should be here in a couple of days, so I went ahead and
downloaded it.  Of course I can't really try it yet, but the code loads and
does a return, so I know the object file is OK.

Sorry, there wasn't any source with it ...

/kim


P.S.  Beware ... there should be a .signature at the tail end of this ...



# This is a shell archive.  Remove anything before this line, then
# unpack it by saving it in a file and typing "sh file".  (Files
# unpacked will be owned by you and have default permissions.)
#
# This archive contains:
# AutoFacc.doc AutoFacc.uue

echo x - AutoFacc.doc
cat > "AutoFacc.doc" << '//E*O*F AutoFacc.doc//'
			*** AutoFacc ***

AutoFacc will automatically shrink the FACC window and will move that
window to the back. Especially usefull to use on the Startup-Sequence.
I tell you that I am lazy to everytime grab my mouse, click the button
to shrink and put away this window. I just wonder why Perry didn't
implement this on the program. FACC is nice but it is a hassle to shrink
and put away the window everytime. Enjoy....

In addition to that buffer increase and decrease now has been implemented.

Usage: AutoFacc [+/-number]

Example:
  AutoFacc	will shrink and put the Facc window to the back
  AutoFacc +100 will increase buffer by 100, shrink and push back the window
  AutoFacc -50  will decrease buffer by 50, shrink and push back the window

This program is faking the intuition on mouse movement and left mouse button
press. It has NOTHING to do with FACC, so it requires that the FACC window
must be present and at the top left corner (as default). Be sure there is
enough time between invoking FACC and invoking this program, i.e. wait till
the FACC window appears.

Sample Startup-sequence:
	; do whatever you want to start...
	Runback -3 system/FACC
	; invoke FACC from system sub-dir, and have 3 secs wait (experiment
	; with the wait time to make sure the FACC is there when you call
	; AutoFacc), or you can do some other things also here....
	AutoFacc +256
	; increases buffer by 256, shrinks, and deep arrange the FACC window 
	
For INTERLACE users:
	You need to patch the AutoFacc in order to run it properly.
Find your favorite file zapper, load Autofacc into the zapper, and go to
the end of the file. There you will see or search for a string "HERE:".
This string is followed by 2 hex number '00', and hex '02'. Change this
hex '02' to hex '01'. DO NOT change to other numbers!
---------------------------------------------------------------------------
Andry Rachmat
Plink: OJS180
--------------
FACC is copyrighted by ASDG Inc.
AutoFacc is NOT copyrighted by me...
//E*O*F AutoFacc.doc//

echo x - AutoFacc.uue
cat > "AutoFacc.uue" << '//E*O*F AutoFacc.uue//'
begin 755 AutoFacc
M   #\P         #          (   &Z    2P    $   /I   !ND[Z [9.
M5?_\0JW__"!M  S1[0 (0BC__T*G3KH&.EA/($ @* "LY8!F"$)G3KH$*%1/
M0J=(>@'L3KH&=%!/*4" "F8$3KH!_$AL@!).N@:,6$\I0( .9@1.N@'H0J="
MITZZ!#I03RE @ 9F!$ZZ =0O+( &3KH%$%A/*4"  F8$3KH!P$*G+RR  D*G
M2'H!IDZZ!@9/[P 02H!G!$ZZ :0@;( ",7P "P <(&R  D(H !X@;( "(7P 
M   6 "1![($6(FR  B-( "@@;0 ,2A!G  "F(&T # P0 "MF2"!L@ XB:  N
M,"R 3)!I ! _ "QL@ XB;@ N,BR 2I)I !(_ 4ZZ 8I83R!M  Q2B"\(3KH"
M(%A/2, K0/_\+RW__$ZZ >183R!M  P,$  M9D@@;( .(F@ +C L@%"0:0 0
M/P L;( .(FX +C(L@$Z2:0 2/P%.N@$X6$\@;0 ,4H@O"$ZZ <Y83TC *T#_
M_"\M__Q.N@&26$\@;( .(F@ +C L@$20:0 0/P L;( .(FX +C(L@$*2:0 2
M/P%.N@#P6$].N@$D3KH!1B!L@ XB:  N,"R 2)!I ! _ "QL@ XB;@ N,BR 
M1I)I !(_ 4ZZ +Y83TAX  I.N@*:6$].N@#H3KH!"DZZ .!.N@$"(&R #B)H
M "XP*0 01$ _ "QL@ XB;@ N,BD $D1!/P%A?EA/+RR  DZZ FA83V$D3EU.
M=6EN='5I=&EO;BYL:6)R87)Y &EN<'5T+F1E=FEC90  3E4  $JL@ )G"B\L
M@ ).N@-*6$]*K( &9PHO+( &3KH"QEA/2JR #F<*+RR #DZZ!%Q83TJL@ IG
M"B\L@ I.N@(*6$].N@":3EU.=4Y5  !"K($6&7P  H$:.7P _X$<.7R  ($>
M.6T "($@,"R 6,'M  HY0($B+RR  DZZ X!83TY=3G5.50  .7P :($<.7Q 
M ($>0FR!($)L@2(O+( "3KH#6EA/3EU.=4Y5   Y? #H@1PO+( "3KH#0EA/
M3EU.=4Y5  !*K0 (;PYAMB\M  A.N@%<6$]AT$Y=3G5.50  0H N;(#F3G5.
M74YU3E7__$CG"" D;0 (#!( (&<&#!( "68$4HI@\'@ #!( +68&> %2BF (
M#!( *V8"4HI"K?_\8"0@2E**$!!(@$C <@HO " M__Q.N@"T)!_4@)2\    
M,"M"__P0$DB 4D!![(!:"#   @  9LI*1&<(("W__$2 8 0@+?_\3-\$$$Y=
M3G5A<$/L@-Y%[(#>M<EF#C(\ !-K"'0 (L)1R?_\*4^ YBQX  0I3H#J2.> 
M@ @N  0!*6<02_H "$ZN_^)@!D*G\U].<T/Z "!.KOYH*4" [F8,+CP  X '
M3J[_E& $3KK[[%!/3G5D;W,N;&EB<F%R>0!)^0  ?_Y.=4CG<  T <3 )@%(
M0\; 2$-"0]2#2$# P4A 0D#0@DS?  Y.=4Y5  !*K(#R9P8@;(#R3I _+0 (
M3KK^ME1/3EU.=2(O  0L;(#N3N[_.B)O  0L;(#J3N[^/D[Z  (B;P $+&R 
MZD[N_F).50  2.<(($AX__].N@#06$\H +"\_____V8*< !,WP003EU.=4AY
M  $  4AX ").N@%@4$\D0$J 9@PO!$ZZ 9Y83W  8-8E;0 (  H5;0 /  D5
M?  $  A"*@ .%40 #T*G3KH!5%A/)4  $$JM  AG"B\*3KH 6EA/8 I(:@ 4
M3KH!9EA/( I@DDY5   O"B1M  A*J@ *9P@O"DZZ 8983Q5\ /\ ""5\____
M_P 4<  0*@ /+P!.N@$B6$](>  B+PI.N@$"4$\D7TY=3G4B;P $+&R ZD[N
M_IX@+P $+&R ZD[N_K9.50  2'@ ,"\M  A.N@ :4$].74YU3E4  "\M  A.
MN@!,6$].74YU3E4  "\*2JT "&8(<  D7TY=3G5(>0 !  $O+0 ,3KH 8%!/
M)$!*@&8$< !@X!5\  4 "#5M  X $B5M  @ #B *8,I.50  +PHD;0 (( IF
M!B1?3EU.=15\ /\ ""5\_____P 4)7S_____ !AP # J !(O "\*3KH /E!/
M8-).^@ "3.\  P $+&R ZD[N_SI(YP, (F\ #"QL@.I.KOXX3-\ P$YU3OH 
M B)O  0L;(#J3N[^VD[Z  (B;P $("\ ""QL@.I.[O\N("\ !"QL@.I.[OZP
M(&\ !""(6)!"J  $(4@ "$YU(&\ !$SO @$ ""(O ! L;(#J3N[^1$[Z  (L
M;(#J(F\ !" O  A.[OW8(F\ !"QL@.I.[OZ8(&\ !"QL@ I.[O^X(&\ !"QL
M@ I.[O\T      /L     0    $   0L         _(   /J    -P      
M                      H "@ !    &  ""P                      
M                  $ +0 4 %  !0%\ &( ,@!B2$5213H   ( (" @(" @
M(" @,# P,# @(" @(" @(" @(" @(" @(""00$! 0$! 0$! 0$! 0$! # P,
M# P,# P,#$! 0$! 0$ )"0D)"0D! 0$! 0$! 0$! 0$! 0$! 0$! 4! 0$! 
M0 H*"@H*"@(" @(" @(" @(" @(" @(" @("0$! 0"   !0   /R   #ZP  
&  $   /R
 
end
//E*O*F AutoFacc.uue//

echo Possible errors detected by \'wc\' [hopefully none]:
temp=/tmp/shar$$
trap "rm -f $temp; exit" 0 1 2 3 15
cat > $temp <<\!!!
     45    337   1985 AutoFacc.doc
     50    387   2887 AutoFacc.uue
     95    724   4872 total
!!!
wc  AutoFacc.doc AutoFacc.uue | sed 's=[^ ]*/==' | diff -b $temp -
exit 0


-- 
UUCP:  kim@amdahl.amdahl.com
  or:  {sun,decwrl,hplabs,pyramid,ihnp4,seismo,oliveb,cbosgd}!amdahl!kim
DDD:   408-746-8462
USPS:  Amdahl Corp.  M/S 249,  1250 E. Arques Av,  Sunnyvale, CA 94086
CIS:   76535,25

perry@well.UUCP (Perry S. Kivolowitz) (06/15/87)

Boy you guys don't give a fella a chance (:-)

AutoFacc is a  nice idea (haven't  downloaded it  yet  though) but won't be
needed on FaccII.  When that comes out you'll find that Facc has been split
into (sometimes) two processes. The reason the original Facc didn't support
command line  arguments  is that I tore out the usual Manx startup stuff to
save space in Facc (I was  already upset that the Inuition stuff took up 10
of Facc's total 15000 bytes).

But the net is right - it was a mistake not to have command line options for
things like the number of buffers. To have a window or not have one. Etc.  I
thought about  this and about how disappointed I was that Facc's user inter-
face dominated the amount of space in Facc  to such  a large degree and then
also thought  about  how  I could provide a general solution. The answer was
quite simple:

Split Facc into the  two  functions it really is. 1) A Cache control system.
2) A user interface. A program called Facc still exists but it is only about
five kbytes and has no user interface. Instead it listens in on a pre-defin-
message port waiting for SOME program to control its activities. There's now
a program call Facction (Facc Action) which has a complete command  line i/f
as well as a complete windowed interface. 

If you're not interested in watching Facc do it's thing, don't have facction
running at all. Another  nice  point though, is that YOUR program could com-
municate with Facc. This comes for free the way Facc is now designed. I will
publish the complete communication protocol for your programming pleasure.

One thing I can say right now, with all the new features like automatic low
memory handling and block analysis influencing LRU behavior, I am wondering
if I can still effectively explain how the naive user will  use it all (:-)

Perry S Kivolowitz
ASDG Incorporated
(201) 563-0529

---
Someone please pass this note on to PLink with my thanks to Andry Rechmat.

page@ulowell.cs.ulowell.edu (Bob Page) (06/18/87)

perry@well.UUCP (Perry S. Kivolowitz) wrote:
>... Facc ... listens in on a pre-defined message port ...
>... Facction ... has a complete command line i/f ...

Very nice.  May I suggest you go further (if you have not already done so):
Keep 'Facc' the user interface, and have something like 'FaccD' (Facc Daemon)
grab messages/requests.  Also have Facc start up FaccD if it isn't already
running, so all this is transparent to the user, after you tell her to
initially install FaccD in LIBS: or something.

Your idea is really the way to go for ANY Amiga program which does its
thing continuously, like PopCLI, MemWatch, FunKeys, FastFonts, etc...
Have a front end that's 5K or so and does all the command line parsing
and intuition/menu/graphics stuff, then pass a message to a daemon that
is only 1200 bytes or whatever.  That way all your parse code isn't
still hanging around for the life of the program.

I am currently working on two daemons along this principle, both for
the public domain -- I suppose I can post my interface code, and we
can use it as a 'stanard template' for parsing/daemon-starting/messaging
since I have no monetary considerations at stake.  Would it be useful to
the Amiga community at large?

..Bob
-- 
Bob Page, U of Lowell CS Dept.   page@ulowell.{uucp,edu,csnet} 

ralph@mit-atrp.UUCP (06/19/87)

Reply-To: ralph@ATRP.MEDIA.MIT.EDU (Amiga-Man)
Distribution: na
Organization: MIT Amiga Users Group
Keywords: facc autofacc shrink add delete buffers cli executable ASDG daemon

As far as this Facc interface  vs. daemon stuff goes, it's sounds
fantastic ! What a logical division ! I think that we should all get
together and come up with a standard message set or template so that
some measure of compatibility among these things can be determined.
Something as extensible and accepted as IFF. Here we go again, another
Amiga First !
If the rest of the micro market ever gets around to multitasking, they'll
just be playing catch-up all the time.