larryh@tekcbi.UUCP (Larry Hutchinson) (02/05/85)
This posting represents several firsts for me. It is the first time I
have ever posted something to the net, it is my first Macintosh program
and it is my first non-trivial c program (so be gentle, please!). It was
written in Aztec C and assembler during the last month or so of weekends.
This version of LIFE differs from Bill Atkinson's version in two ways: 1)
it wraps around & 2) it allows 3 different densities [128x72, 256x144 &
512x288]. If anyone thinks they have an algorithm that is faster, I would
enjoy hearing about it (but first prove that it is faster than my 246,000
cells/sec!).
There are a number of obvious improvements that need to be made (cut, paste,
fat bits for hi-res mode, not blasting the cursor or DAs [I go directly to the
screen, thus will not run on a Mac XL]) and I hope to get to them some day.
Larry Hutchinson, Tektronix, Inc. PO Box 500, MS Y6-546, Beaverton, OR 97077
{ decvax,allegra }!tektronix!tekcbi!larryh
----------------cut here--------------------
(This file must be converted with BinHex.Hex)
#APPLLAZH$2000
***COMPRESSED
***RESOURCE FORK
( 0 !>1 6D0 ,(
(
(
(
(
(
(
(
( !@ H #+ @ @#,P_/ !J? !+X
( %!^A!X*TC^S$/M_7@K2?[00J="9TZZ B)<3T)G
($ZZ#XH@;P $(F\ ""1O PP+P 02.<? #X ,A#0P-+
(.1 XU%@ ((B#CD2,!4<C_^# P</[D1^)08 +B 8
("( XI D&28 QH'&@B@ B(&(@K&"LX(B T:!PH)&@L2$
($:$),0DP23"),-1S__23-\ ^$YU(&\ !"(O @P+P ,
($CG#P@H02)4)&P !"9L @HBBE+ 0I20 (Y$ _ "(9
("0:)AL@ 8""@(.U@;>!1H'"@"89*!HJ&R0#+@.$A(2%
(,Z$SH4O![F#NX-&@\:"*ADL&BX;* 6(AHB'O86_A4:%
(,J$+!F,FHR;PH;*@,""S(# A,B#B(6(ALB0B(&(@(B?
("#$4U=FF%2/3-\0\$YU(&\ !$) -CP "$)",@#B2>12
(%-#9OCC2C#"4D"P? $ 9N1"0#8\ A"@C( XDE Y^*2
($3?YI)30V;RXXH@PE) L'P! &;>3G5(YPD0(&\ $")O
( 4)&\ &# O !PR+P >/CP 0$IO ")G 6- ?$P38O
( @YZK5PL+ T<$R/ !#&\ @ @9P 4 QO $ (&<
( @GD#D2& ! T & 0DV%'*__S4QU')__!@ !8
()Y XT=@ 8- !@ ,0D,6&-9#-/$P %'*__34QU')
(/_H8 ,M+\ @ F2M;'GD#E1V !XT & !!"0Q88
(.5#*#$P "3$)L11RO_PU,?6QU')_^),WPB03G5.5O_Z
($CG _/%4 3KH,/E1/*T#_T#\\ 0!.N@PP5$\K0/_4
(#\\ 0!.N@PB5$\K0/_8/SP! $ZZ#!143RM _]P_/ $
($ZZ# 943RM _^ _/ ! 3KH+^%1/*T#_Y#\\!@!.N@OJ
(%1/*T#_Z$AM_-1.NA .6$](;?S93KH0!%A/(?S_____
( IX2&W^PJANJ/X_//__0F=.NA &J1).N@3B0J>I>ZA0
($7M_NA#[?Y.)-DDV4AM_O _/ $/SP M_NY92C\*
(#1M_NQ92C\*J*<[? R_P [?/___P(V+?[L64,[0_\$
(#8M_NY20SM#_P9%[?[X0^W_ "39)-E"ITAM_PA(;?[X
($AM_-Q.N@]T6$\O #\\ 0!"9R\\_____T)G0J>I$R ?
("M _Z0O+?^DJ'-%[?[X(FW^PM/\ $"39)-E(;?[X
(#\\ $_/ !J*DO+?_H3KK]GEA//SP DZZ!]A43S8M
(/\ 4D/M0TC#-"W_ E)"2,*%_ (2,+6@M:\ >G "M#
(/^\3KH(0$)G/RW_QC\M_\(_+?_ +RW_O"\M_^@O+?_0
($ZZ_93>_ 40FW_Q$)M_\A"IZEU(!\K0/_,2FW_Q&<
( !,0J>I=2 ?-BW_R$A#0D-(0]:M_\RP@V, #).N@3*
($)G/RW_QC\M_\(_+?_ +RW_O"\M_^@O+?_03KK].M[\
( 40J>I=2 ?*T#_S*FT0F<_//__2&W_K*EP,!\=0/__
(# M_ZQ@ #,0F<O+?^V2&W_J*DL,!\]0/_\,"[__&
( !@0J<O+?^VJ3T@'R\ 3KH P%A/8 7$AM_ZPO+?^H
(*FS8 3D*GJ20@'R1M_ZBUP&< PO+?^HJ1]@ (
($AM_[:H<2\M_[9.N@406$]@ @ +_DO^H_[8 O^V
(+!\ 9D ,XT P.P#H3OL & %!@ !,-BW_NL9\
( !9P F #PO+?^DJ',O+?^DJ2(O+?^DJ2-@ F
( "_R8 O^T +_M/_( +_N+!\ ED ,XT P.P#B
($[[ !@ /ZT3-\ $Y>3G5.5O_82.< "8N AT$.2K
(#U#_]P];@ *_]HP+O_<8 "( QN '_VF\ !XO+?[4
(#\N_]I(;O_BJ49"9TAN_^*IMC ?8 +$*G/SPB/4*G
("\\_____ZE\(!\M0/_>+R[_WJAS0J=(;O_8J9$O+O_>
(*F#8 !ZDZZ#,!"9S1N_]I32C\*J<(P'TI 9@ *"\M
(/^DJ',P+O_:8 #F !9@ 28 #E- 9_!30&?P
(%- 9_!@ &H,"[_VF 1A*;?_$9@ ##M\ '_Q&
( &0FW_Q$IM_\1G 4+RW^X#\\ %(;?S4J4=@ 0
("\M_N _/ !2&W\V:E'8 Z$)G-BW_PL;M_\ _ R\M
(/_03KH']E!/J%)"9S\M_\8_+?_"/RW_P"\M_[PO+?_H
("\M_]!.NOKPWOP %$)M_\0O+?[@/SP 4AM_-FI1ZA3
(& )8V+?_"QNW_P#\#+RW_T"\\ ! $ZZ"'+>_ *
(*A20F<_+?_&/RW_PC\M_\ O+?^\+RW_Z"\M_]!.NOJ8
(-[\ !2H4V %!"9TZZ!(143V $0_/ !3KH$=E1/
(& #8_/ "3KH$:%1/8 * "_MK_'/]N ( @ "
(/^T_\#_SK!\ ID ,XT P.P#@3OL & '0P+O_:
(& !Y";?_(8 (CM\ ![_R& !@[? !X_\A@ .
(%- 9^!30&?D4T!GZB\M_N0_+?_*0F>I13MN_]K_RB\M
(/[D/RW_RC\\_P"I16 "!30&< _=Z0? #_9P#^*E-
(&< _BA30&< _F!30&>.0F>I.$S? !.7DYU3E;__DCG
( J3!"IS\\ %(;?SD3KH*ZEA/+P"I,2 ?*T#^U"\M
(/[42&W\YDZZ"M)83R\ J3,O+?[4+SQ$4E92J4U"IS\\
( $ 2&W\_$ZZ"K)83R\ J3$@'RM _M@O+?[82&W] 4ZZ
( J:6$\O *DS0J<_/ $!2&W]!DZZ"H983R\ J3$@'RM
(/[<+RW^W$AM_0M.N@IN6$\O *DS0J<_/ $"2&W]'4ZZ
( I:6$\O *DQ(!\K0/[@+RW^X$AM_25.N@I"6$\O *DS
($*G/SP! TAM_5I.N@HN6$\O *DQ(!\K0/[D+RW^Y$AM
(/U@3KH*%EA/+P"I,SM\ '_RD)N__Y@ &4F[__@QN
( %__YL 8-B[__DC#Y8-%[?[4+S(X $)GJ35@W*DW
($S? !.7DYU3E;_^DCG M;?_0__HK;?_4_^PK;?_8
(/_P*VW_W/_T/RW_P"\M_]0O+?_D-BW_PE-#QNW_P$C#
(-:N__HO TZZ]OS>_ ./RW_P"\M_]@O+?_D+R[_^DZZ
(/;DWOP #C8M_\#E0S\#+RW_X"\M_]A.N@74WOP "D)N
(/_^8 !E)N__XT;?_"4THR;O_^LLIL !"/RW_P"\M
(/_T+RW_Y#8M_\!(P]:N__HO TZZ]I#>_ ./RW_P$AM
(/_L+R[_^DZZ]NS>_ *-BW_P$C#UZ[_^F"L*VW_X/_T
(#\M_\!(;?_L+R[_^DZZ]L;>_ *3-\ $Y>3G5.5O_R
($CG M;@ (__PF+@ (=!#DJU.#-"W_QN1K/4/_\B8N
( (4X,T+?_&Y&L]0__T/R[_]#\N__).N@$D6$\]0/_V
($IN__9F *-'P 6 25RC\*/R[_]#\N__).N@",
(%Q/0F>I<S ?2D!G !V2&[_^*ER)&[_^+7N__QG !B
($)G+R[_^$AM_OBHK3 ?2D!G !.+6[_^/_\)B[_^'00
(.2C4X,T+?_&Y&L]0__R)B[_^%.#-"W_QN1K/4/_]$IN
(/_V9@ "C1\ %@ $E<H_"C\N__0_+O_R3KH #EQ/
(&" 3-\ $Y>3G5.5O_X2.< *A2-BX ",;M_\!(P]:M
(/_0+4/__$IN QG 4+R[__#8N I(PR\#J%Y@ 0
("\N__PV+@ *2,,O ZA?/SP 3\M_\8_+@ (/RW_P"\M
(/^\+RW_Z"\M_]!.NO9*WOP %*A33-\ $Y>3G5.5O_\
($CG M;?_0__PV+@ (QNW_P$C#UZ[__$)G+R[__#8N
( *2,,O ZA=,!],WP 3EY.=4Y6 !(YP +RW^X#1M
(/_&7DH_"D)GJ44[;@ (_\8O+?[@-&W_QEY*/PH_//\
(*E%=@$T+?_&Y6-T0$C"A<,[0O_ -BW_!)9M_P!50W0!
(#(M_\;C8DC#A\([0__"0F<V+?_"QNW_P#\#+RW_T$ZZ
( )Z4$](;?[XJ*-";?_$+RW^X#\\ %(;?S9J4=,WP
($Y>3G5.5O_\2.< $)G-BW_PL;M_\ _ R\M_]!.N@(\
(%!/-BW_PL;M_\!(PX?\ )(P]:M_] M0__\+R[__#8M
(/_ 2,.'_ "5$-(PR\#J%XV+?_ 2,/6KO_\+P,V+?_
($C#A_P DC#+P.H7C8M_\!(P]:N__PO S8M_\!(PX?\
( "4D-(PR\#J%XV+?_ 2,/6KO_\+P,V+?_ 2,.'_ "
(%1#2,,O ZA>-BW_P.-#2,/6KO_\+P,V+?_ 2,.'_ "
(%)#2,,O ZA>3-\ $Y>3G4@3Y'\ @ * M64^I=5A/
($Y6_\H@/ 4-K"D'M_7A"6%'(__Q93R0\0T]$12\"
(#\\ &IH"1?+!+,O #___]8AD'N_\HQ> D !A#[O_\
(#(\ 0!A9F<.(5$ )$7M_-0A2@ @H (R/ $!85!G)"1-
(&$F)$9A(D?M 36^ DTH (B$6L.H (D$=2*)H)0BU')
(/_T3EY.^O*>H (F$6L$* UA#* ")A%K!"@&80).=: "
("H1V;)8 %'+__9.=21X"E D4M3J !@P$D?J *TFV<&
($J;4<C_^# ;-E/7RK)39PS6_ ,4<C_]D* 3G4@*P $
(,"\ /___R1X"E D4M"2(4D ("%\ ! D,7P 0 L
("% "Z@ D)H "Q*D4YU2&W^PJAN< <!^ %= ?@"'T(X
( CR(?S_____"=993S\\ !"IN"!?(% AV H\(=@*0$AM
(/V,(=<)WJAO68^HV"'7">X@> G>2&@ $*C?+S@)[JAY
($*X"=99CZC8(=\)\D*X"H1"N ID0K@*:$YU(&\ !# O
( (,B\ "E- :P80P5'(__Q.=4Y6 !"K?[&+RX "$ZZ
( #^6$].7DYU3E8 $*M_L8V+@ (2$-"0TA#+P-.N@#@
(%A/3EY.=4Y6 K;@ (_L8O+@ (3KH L%A/.T#^RB\N
( (3KH F%A/3KH KDY>3G5.5@ 2.< $"1M_L:U[@ (
(&<(+RX "&&^6$\_+@ ,89A43R9 2H!G*K?N AG)#1N
( ,M.W^RF,&-BW^RF $-BX ##\#+PLO+@ (3KH $-[\
( *( M,WP@ 3EY.=2!O 0B;P (,"\ #+/(9@).=6,0
(-# TL!30&L&$R!1R/_\3G530&OZ$MA1R/_\3G4@;P $
(* ?3OH ."!O 2@(4J :@1.^@ 63OH +C M__A.=2 O
( $H1Y.^@ ,0^W_^#* 0D!.=4/M__@R@" (3G5#[?_X
(#* 3G5#[?_X0E%.=4Y6 !(YP@ 2JW]=&<&)&W]=$Z2
($)$8 )21+A\ IL"C\$3KH &%1/8.X_+@ (3KH"K%1/
($S? !!.7DYU3E;_L$CG#! X+@ ()FW^T+A\ !M!KA\
( );Q [?/_]__IP_TS?"#!.7DYU2,0F!..#.C,X $IS
(#@ 9S"Z;?_\9RJZ?/_W;0:Z?/_Z;QY(Q"8$XX,]<S@
(/_(0F=(;O^P0F=.N@ @,!\[0/_Z2,0F!..#0G,X $IM
(/_Z9P1P_V"D0D!@H")?,!\@7V8$H %@ J0!/H!.T4Y6
(/]P2.<($"1N Q"$C\\ #HO+@ (3KH!?%Q/)D!*@&8@
($7N_\ M2O^"0F=(;O]P0F=.N@%.,!\X+O^&)FX "& B
($(3+RX "&$J6$\X "1+4HL4O Z2D1F"D) 3-\($$Y>
($YU+PLO+@ ,3KH!0E!/, 1@Z$Y6_W!(YP@0)FX "!8K
( !2(-*0V96%A-(@[9\ #%M3!832(.V? Y;D(6$TB#
()9\ # ]0__&1>[_<"U*_\)"+O]P0F[_S$)G2&[_L$)G
($ZZ 2XP'SM __I*0&<*0D!,WP@03EY.=3 N_\9@\G@!
(& "4D0]1/_,1>[_<"U*_\)"+O]P0F=(;O^P0F=.N@#R
(# ?2D!F'B\+2&[_<$ZZ 5)83R\ 81A03TI 9@8P+O_&
(&"N8+X[?/_=__I"0&"B3E8 $CG"!@F;@ (*&X #!83
($B#/P-.N@"05$\_ !842(,_ TZZ ()43S8?. .80$I$
(&<*, 1,WQ@03EY.=21+4HM*$F<()$Q2C$H29L)"0&#D
(")?,!\@7V8$H!1@ J04/H!.T2!O 0P+P ($AAG"K(
(&;X( A3@$YU0H!.=2!O 0@"")O @0V6;\3G4P+P $
(,!\ /^P/ !@8PJP/ !Z8@20/ @3G4P+P $P'P _[ \
( ! 8PJP/ !:8@30/ @3G4B7S ?(%]F!* '8 *D!SZ
($[1!7-H96QL,"W__F<J3E;_P$'N_\!#^O_J(4D $C%
( 60F@ &D*H !R@ * !('@*?#%N @ &*GT(&\ !")(
(! \ 2$!# $ %F^%-(D<D@"!* ( E.=2!?(!^@,D[0
("!O 0B2" (0D$2&6 "$-E1R?_\0A!.=0 *13=&]P
( !';P!,05IL:69E !0 86)O=70@3$%:;&EF93LM+2TM
("TM* !&:6QE %%U:70 161I= !#=70H.T-O<'DH.U!A
('-T92@ 0V]N=')O; !';SM#;&5A<CM286YD;VT[("@[
("TM+2TM+2@[("@[2&D@4F5S.TUE9"!297,[3&]W(%)E
(', 4W!E960 1F%S="$2.TUE9&EU;3M3;&]W
( "( 0 ! 1H!X@ 0 B/0UA8F]U="!,
($%:;&EF90 0 &P !L PP ,,
( & !@ , # P , P P , ,
( !ML ;;
( , !@ # 8 -AML-C8;;#8 , !@ #
( & #_P _\ /_ #_Q__X_\?_^/_'
(/_X_\?_^/_'__C_Q__X_\?_^ '__@ !__X ?_^ '
(/_X ?_^ '__@ !__X ?____W__
(/__?____W____]_____?____W____]_____?____W__
(/__?____W____\ '05!03 !Q,05I(
( %)0TXC " 1E)%1@ @ %T (
( * $8 +P&%"$M*;VAN($-O;G=A>2=S(&=A;64@
(&]F($Q)1D4@*'EE<RQA9V%I;B$I#79E<B P+C L(*D@
(#$Y.#4@8GD@3&%R<GD@2'5T8VAI;G-O;@ #,
( \ KP&8"/%0;&5A<V4@<&%S<R!T:&ES('!R;V=R86T@
(&%L;VYG('1O('EO=7(@9G)I96YD<RX-268@>6]U(&QI
(&ME(&ET+"!P;&5A<V4@<V5N9"!A(&9E=R!B=6-K<R!T
(&\Z#2 @("!,87)R>2!(=71C:&EN<V]N#2 @(" V.34P
("!35R!*=6YI<&5R(%1E<G(-(" @($)E879E<G1O;BP@
($]2(" Y-S P-0U0;&5A<V4@:6YC;'5D92!A;GD@<W5G
(&=E<W1I;VYS(&9O<B!I;7!R;W9E;65N=',@*&-U="QC
(&]P>28@<&%S=&4@87)E('!L86YN960I+@ +T
(*P T0#U! EO:VEE+69I;F4 ! %Y$ !:1
(,( 1R< %P < ,( !D-/1$4 @ Z1$Q/1P %Y)
($-.(P &I&4D5& =D).1$P ""3$%:2 (Y$
($E43 )H /__( ?__, ' !
( #__P $Q@ (CW__P $\ (#__P $^8
( " __\ !3J " __\ !3U __\
$P 5%0 B/?__ 5&0
***END OF DATA
***CRC:49B5