[comp.sys.amiga] Small Window Hack

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (12/20/88)

	Here's a simple window hack I wrote to pass the time away.  It's kinda
neat.


#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	split.doc
#	split.uue
# This archive created: Mon Dec 19 12:45:56 1988
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'split.doc'" '(895 characters)'
if test -f 'split.doc'
then
	echo shar: "will not over-write existing file 'split.doc'"
else
cat << \!Funky!Stuff! > 'split.doc'

				SPLIT.DOC

			      Matthew Dillon

    A cute window hack.  You start with one vector going in a random
    direction.	After a random interval you fork off another vector.
    (a fork ends when it reaches the window edge or hits another vector).

    Hit the RESIZE gadget to clear & restart the window

    The maximum number of vectors being drawn at the same time is 50.
    This can be changed by the enviroment variable SPLIT_LIMIT.

    The program is written using light weight processes (LWPs), and although
    the memory usage for each vector is quite large verses a more efficient
    implementation, the actual semantics of the program source are
    incredibly simple.	Memory usage is on the order of 512 bytes per
    active vector.

    This program is thus neither optimized for memory usage or speed, and
    one can easily get a 5x improvement in both by rewriting it.


!Funky!Stuff!
fi  # end of overwriting check
echo shar: "extracting 'split.uue'" '(7822 characters)'
if test -f 'split.uue'
then
	echo shar: "will not over-write existing file 'split.uue'"
else
cat << \!Funky!Stuff! > 'split.uue'
begin 644 split
M```#\P`````````#``````````(```2[````@0````$```/I```$NT[Z"7Q3
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
M[O^^3OH``B(O``0L;('(3N[_ID[Z``),[P`.``0L;('(3N[_T$CG`01,[R"`
M``PL;('$3J[_E$S?((!.=4[Z``(B;P`$+&R!Q$[N_F).^@`"3.\``P`$+&R!
MQ$[N_SHB;P`$+&R!Q$[N_MHL;('$3N[_?$[Z``(B;P`$("\`""QL@<1.[O\N
M3OH``B!O``0L;('$3N[^C$[Z``(L;('$(F\`!"`O``A.[OW83OH``B)O``0L
M;('$3N[^AB`O``0L;('$3N[^PB!O``0L;('$3N[^@")O``1,[P`#``@L;(`Z
M3N[^PB)O``0@+P`(+&R`.D[N_Q8B;P`$3.\``P`(+&R`.D[N_KQ,[P,```0L
M;(!.3N[_H"!O``0L;(!.3N[_IB!O``0L;(!.3N[_LB!O``0L;(`^3N[_N"!O
M``0L;(`^3N[_-"!O``0L;(`^3N[^.``````#[````!H````````#Z@```_H`
M``00```$J```!-X```3X```%&```!2@```4X```%4@``!60```6````%F```
M!:X```72```%Y@``!@0```86```&,@``!DX```9>```&;@``!HP```:J```&
MO@``!Z0````&`````0```\@```0^```$;@``!)H```3````)\@````````/R
M```#Z@```&H``````````/__```"`@`"``\```````````````0`````````
M```@`"#_____``$``0`R````````````````````````````````````````
M``````````````````````````````````````````````````````,H````
M.````S$````\```#.P```$````-%````1````TX```!(```#60```$P```->
M````4````V8```!4```#<````%@```.`````7````Y````!@```#EP```&0`
M``.=````:````Z,```!L```#J0```'````.N````=```#R0```\T````````
M``````!G`````````10````````!$``@("`@("`@("`P,#`P,"`@("`@("`@
M("`@("`@("`@()!`0$!`0$!`0$!`0$!`0$`,#`P,#`P,#`P,0$!`0$!`0`D)
M"0D)"0$!`0$!`0$!`0$!`0$!`0$!`0$!0$!`0$!`"@H*"@H*`@("`@("`@("
M`@("`@("`@("`@)`0$!`(```%``````````````#[````!,`````````&@``
M`'@```"`````B````)````"8````H````*@```"P````N````,````#(````
MT````-@```#@````Z````/````#X````_````!(````!````?````(0```",
M````E````)P```"D````K````+0```"\````Q````,P```#4````W````.0`
C``#L````]````1````$8`````````_(```/K`````0```_+4
`
end
!Funky!Stuff!
fi  # end of overwriting check
exit 0
#	End of shell archive