' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?   1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 ˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx- ( >  Ϡ-@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"L ŵ8ŵH ~(` d ֠z#e original. If they are not identical, then Diversi-COPY beeps and gives a 'Compare Error'. Comparison mode works with 1-drive, 2-drives, formatting and mass production. At the end of a mass production session, we recommend that you compare your originaer 'C' will appear in the lower right corner of the screen. To leave comparison mode, hit 'C' again (the letter 'C' will disappear). While in comparison mode, Diversi-COPY does not write duplicates. Instead it compares an already written duplicate to th12 - Verify error / compressed data NOTE: To copy 40-track disks, hit '*' from the main menu (requires 40-track drives). *** Comparing Disks *** Diversi-Copy can compare 2 disks to see if they are identical. To enter comparison mode, hit 'C'. The lettdrive or motor speed error 2 - Write protected 3 - No address mark (D5 AA 96) 4 - Volume mismatch 5 - Wrong track 6 - Bad address data 7 - No data mark (D5 AA AD) 8 - Data checksum error 9 - No DE trailer 10 - No AA trailer 11 - Verify error / wrong byte 64K Apple II+ with an extra 128K card is just a little short of the 200K needed, but will work for almost all originals if a few sectors are unused. *** Error Numbers *** For the technically oriented, here is a list of possible disk errors: 1 - Empty already have a //e with a 64K extended 80-column card, then buy a 128K card from Titan, Legend, Omega, Prometheus or Abacus. The Abacus 128K card is the most versatile for the hobbyist (313 524-2444), but the other companies are larger and better known. A 192K 'Neptune' extended 80-column card may also be used. If you're buying a new computer for mass production, we suggest that you get a //e without an 80-column card. Then buy the 192K 'Neptune' extended 80-column card from Titan (313 662-8542). If you y full disks, however, you'll need to add extra memory to your computer. You need a total of about 200K to copy any disk. Diversi-COPY automatically recognizes the 64K extended 80-column card in the Apple //e, and all 16K and 128K cards in any slot. Thehe keyboard. While Diversi-COPY is writing to drive #2, put a new disk in drive #1, and vice-versa. *** Extra Memory *** You can mass-produce newly formatted disks on any computer, since Diversi-COPY will compress the unused sectors. To handle completel? @0@4@|@@@@˜ @@@@Ʃ@@z'@7@}Ɯ0LZα˜̜Μ Lz@P`p#ˠ͠ōL?@ALH0L HL,HȽ8HG }FH>ȱH?,+$8}`LIF}>թ}>}F𷍋1˜}@?>>??>Ȋ> ՂЪզժժݻѪ읊ժꀸՊ `3Fd "@I t`c DLܪՀՆժ݃łѻܪЪLAaa> F|`\`3faLQxA  88`ըʪժՔꀀЪիЊՆׁԪժժ݃ԪԪ셪̙C `Cc6Xa@1Xcx`0C 6XՊЪզꀨЪժŪݻծժCAXl0FCOA00f`L163Fca G1\Gs`pp`{xF1DժժՆժػʀբݻաՆתժB0՞ժըժՆЪ՚ЪՂЪӪժyD#p@0FupyD#p@ VC1^>O8cԂթՠ՚ȚЪԪժ𪕘`!dGCcs1Fsp36f`A#@cACC#DՂʙЪժթ툨Ԋ< x0BՁՆݻԪժժոЊЂݻݺЊǪ匘C}`Cxa0|0X|cxG0`0~ 6X?ՊЪզժªʪٻǪݴժժCA0 a a<hACpCY c1L1 F33b"J($ DH ժժՆժݻʀՀѻաՆתժ@0`ժըժ՚Ԋ՚ЪՂتӪժ@ AA )" @ AA` D"""Ԛթՠ՚ՂΚЪաժ@ B$$@1f0ff`66C@ $ D!$$ԪՂݫ™Ԫժժ @$H$ՆՂЊԪժѪ݋ךЪ݋ŪစC 0f C `0`0Xclx`0@ 6XaՂЪզժՊªŪػժꀸՊca`> @`C<<panpF;dp#p'$ ps|DܪժժՆժŻࠕݻՆתܪժ@0 @@ժժժ՚ԊԚЪՀڪӪժ  }@A#  } D""ꀀաՠ՚ժКЪաժ˪@ A`fp7``vw@ $ D!$ւՀԌ`Ԫժ` >@!HՆվՂԊݻѪՂѪՁꀸꀀݫܫػѪᨕC 0f C c0XaF1Yacl?Ll0C 6XaՁЪժըժՆЪ՚ЪաՂЪӪʂՂիա՚ЪժժЪȇԪժѢѪըĊ@`ğժw*U*6F6F0Fwt*U*LjEEEEEEEEE E E E E E E E E E E E EE  e]e](*E*E*E*E*E*E*E*E*EzEzEzEzzxEEw*U*6F6F0vF6F6F6F0wt*U*ww*U*7F6F0vF6F0wt*U*wЪЪЪЪww*U*6F6F0@6F6F6F6F6F0wt*U*wЂЭ܈ЂЂȓժԊԊЂѭĎЂ0033?00?03?0 333>0 ? 3 ? yycy5Oeh'1;EOYm")07>ELSZav,n 333  0? 1Y!Iqq9a)QyAUi} pP0`@ pP0`@ pP0`@ pP0`@ pP0`@p8h@p8hlhd `\P T$X(\,`0d4h8l

"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?30vgcpa>>~<<`fsCas7?OFOffff`66f360 3@Off00660 3@FYf><<`366p 3FY>``vs70 3F_6ff06066 3@FY f~<<`30fs FY(Px@h0X Hpf66ff @Y @<~f~f0f~<<O`f~f><>0>>~<<3O6fffff>f f><<@Y ff~f >``@Y vfff666ff;@Y `f~>``f<ff<~f00f~>0>>~<< O@f f><< @Y >~ >`` @Y 1~q` NcC100~cC1006cC10cqcC1~pcqcC1~pC1cC1pC1cC10C1cCa 01cA~1 ~0c~~13>f~7 f? 3~; #f3>ff~f><>6fffff>fff~fvfff66f~>}{  Yj)B` Z ]TX  a P M^ _ vHi)8ة) W W  W W < VR(i`怩 3QLOةg h X P< Rtye)L@@`` `)Ig"Qg'Yg,ag1 `)?i 6`tye)60 Ł&i` WłƂi WƏ`@@ɨ `0_tye)VR 0MYf8yExA? `)8  Y' N\   Xx Y`(('V7MȈ Xgh) 8 X2 2`LL``p`LG JMp  Bǝ@`hn)A ` Y` 0bwɀ\V@@@ H Xh@)1g9gAg  Y `) NH XhL Nq`@n0L7M}  h}# (}g}-gg gg  jEh hhɨ EL{Lh tC  C0zgг hЭ)g6WȱS(N )) &K X\JJi0H Xh)hgJJgh JLJw`` Jw 3Q Y`@hi)  ) g@tyf```1tyf`@@ɰ) )i@``q h tCp8D=@q oH Jpgqh hi= `)i= I pp&pqq`h` ɜhgLWHHhHgHo)hH8(i(g Jhhghhhh`hn0LJ)x)q0ah  g)@ `)`@@`iyHHH AChhh Jx`hn0 @) &K Y W0)JJJJi# Wk(报)?)JJJJi)i#LW`慥)i  LW`t 0hwb Y `)# `i@# `)- `i@(-X ` E ` jE X `)?i 2w`Hh h tCg h) Jy0&0)C yN @  W@@ JJ  W) R`08L~W%LYi  gLbJLbh  hh$0 b` Fb`k.h$gg)g gJJJJ /Xgg) /Xg`0  eh @ `aJJc`ibd Pe` XdP`ibaJJcdee  cbP b`X&) H8 hJ b`JJ YY)YY))Y))Y))Y)Y)))&&''&&&'%%%$$'##"""""'"""""""'""              HHPHPpPHPu˧جNNNNNNNNDDMDDEEEDDDDDDEEJJJJJJJJJJJJJJJJ               di3L=d12i L=d=i$8fLWhtThtT>>>>>>>>gggggggggggggggggggg\YGGGGGGGGGGGGFGFGFGGGFGFGFGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHKMMaT . W< RJ 5c ZLa a 5cx R aLXcg+ W[J,-LW maV/ c uJJJJ cu) c L[LZ`i3ZL=d aI? =di Ci =d d )d disJJJJ ds)L h`  @Q`Z, @:(JH3hƩZ` @   H & h(jQ` ʆJJJJJ`؈ե轕g!Œ8f``J `)`,W,T,R,P`` @) ȩ&)$ ැթ*((( U(U(D.@/P>PP0( 1j85b8T` P8  |0 t/u/ a P# Q T*U* E(  ( *@W&G*  P @ @1P?T?AE.P*T*" P((P \u*q(0p(@F@~P~|P:T:@*P*TP@"P @2PpjTp(E` A@#q  P `h_j_ @B @@"U U(D(@(A A(( .M:U8 8 AAc ( >(* ] U(U*D (@ Q(P (85j8Tb0P``Q8  } }+(x!t((t"U U (*((  E A 0e `U)`Q @AGb(P@ @ @?P?T?D*@*PPP=@PP0\22u(qp(@~@~EP~U|P88**@"@t@ t |@ @BpJQpHU` E@#A Pxz@zWPpCP`AP`@((U Q P*P(p* @+F@#V(@8  AA "(* >(  UU  : z>  a8e(8dj0Pb`Q ( |}  }+(x!(p (p T T*E(hhx`#`+@A G (pt/u/ a A AQ*P*" T P`T W G,* *q(0p(@F@~P~|PT8A:Q@*@*P"TPP@ @ @SpJUp(E` A@#q z@zWPpCPb@hE**U@ Q@@ P(*P L@+V@#E(P `h_j_@B @ " (U(U*D (@ Q(A(. Y: T88ej8Tb0P``Q8  } }+(x!(q t"U U* E(  ( ( &`+`Q @AGb(0 t/u/ a E Q T*T*" P(T 0W,G*  P @ @1P?T?.D.P*P*TP@"P@P`\2up/@;@@/T+Ux.Ap)p"x&P 0@*tP(P5P**(**(@~U~`(*\ ]( U U (*((  E   A)LLjȱF)p)$L7 @p ) $L7 0F )FLJ F)p<WL p+FLJ 6L @'LJI@LQL')?i,Ji,KiOIIifLfF)F(L" 0F )FL" F )ߪp)=L9 p0JLi @LiJ I@LiQȱF)p)$L p ) $L 0F )FL F )p)=L p0JL @LJ I@LQ,P,L,T,R @_Ѕ'@ )LL $(@֥I`')?)?)JJJJJJ11 1 @]ȱF)p+),$F3)F@L" p)$  .@.P*P*TP@"P p\u\:uX:5p:@.:.AD.ET:U88:@*@*P"TPP@ @ 0@cppjTpjU`jU@ku:h8:PjU@`A`h**U@ Q@@ P(*P@C@+S@+W+W.WhU @`@hU@*W   UArPh(*T T (  .@3:`5j T" Q QU P(u# Q* P @ @*P((@<|7@U*@T*" T @ Xjt!4+ P@ @ P(P(@ @ @P* *(E UF  ^* 8 AAA c( >(**] U(U D (@ Q(P>@ uP(P(UU+ @*0U30U *P*P"P@ @ PT<@ uP(P(UUx> kEj@30Q U *@*P"P@ @ PT@C:`E* Q( |?/x\.> |rh0L ,E(a )_K+G; lD 8~G GU*nP((P.@*P*T*T*`kppspPTTP~@z@:*@*P*UP*U/@@O@@P P@z_jWjU(*U@*U@*U<=~> @*@ j(_(W UU*qj|s|9xPTPP~@~@:@*P*T*D+pOpg`c@P@ T@zzj*@*EP*E. @?@ @ *Pj_h_((U*@*@85~9~< (**( } ] U U (U*(U*@W``g` (( }/u+u*T U*/~@ P z_jW*W(*U@*U@*U<=xp|xP*(A (  ] U(U*UbUxgxsp1 ( * } } uU U"(U"W``O@G (u/t/T T*U  U  \?T T?P?P.P*T*`@s`@(* + } u U U (U*(U*@WN (}/u+U+T U* U* U*^|?8><( t?T/T.P*T*U*U*xzp`yp TUPP>P:@*P*T*T*`k@g@PT@~W@z@j*@*P*UP*U? (t/t/P+T*Q*Q*X:8~p|`x(T P?P?@.P*D*D*`j`y@sc TP@~@~:@***U+GgN P@ TzWzh*@(U@(U,8~0<*@*h (_(] U(U*U *U pu@@P P@*UBGBD(z\@z_@z_|?~> @*@ *U ahsj j pxx9x(@ *Ph_h_ W(U"U"U 0up|`y@qP*(A  ] UU U*@U#@sgF@( *}+} t U T* T*VN?(**(U x H O (+(+@``g` (( U*a#!" =. }/ }/~  U* P0t9u?u?x|?|<UT*<$@BPgTT`ppspPTTP*@p@ @P~WP~W@@O (E#D$4t,u } |?T PaP3T?u?q|s|9xPTPP8@H@@NP~TDpOpg`c@P@ T@b" :@zGP~G~@?@ @ *P GIh0hYj@z@x?~9~< P*@!PsTT`@g@PT@*U@x@H@NP~WP~W~@ P *UbC"B:^@z_@z_|?xp|xP*(A ( $ C g(jbxgxsp1 ( * q  }#(#``O@GbQ @xW@x_|8~0<*@*(U  `Phyj j p`@s`@(* U* < $C g (+(+@N (U*q!! / }/ }/~|?8><( T*DD0(t<u?u?xp`yp TU @a s +@#@sgF@( *q(I M |+ |/~N?? (D#$",4.q/q?x?8~p|`x(T  `0P9D?D``y@sc TP@8@$C@f~~WGgN P@ TPpTz\Lp?`T(P@ *@rPpPp0@pwpaP @ P(UJ@B@j @ @{ @}~~~**@(Q U(1(x*= nOfOxp?N*T@ *PGHD0Xh\b_b pp|`y@qP*(A  ;SC$$23:"HIT TO RUN ";A$149199,0?A92100^ (4);"BLOAD TABLE,A$1C00"A3Ĺ49232,0:49237,0:49239,0(4);"BRUN ";L$;AD$ 4(4);"BLOAD ";PC$H(4);"BLOAD TABLPC2"R49281,0:49281,0: BANK MEM\(4);"ԂԂԂԂЌІʊҊԊԪԂОȪЪЪРЊՊ̪ƪâժժժԪբբתʃ̹̹ԪԪԪѪՊ׊ުਕՂՂłԲԊЪՂՂՊՊՂʁѪШШИМ̃̃ՊՊժժըՈЪԪĪԊЪܺܺ޺ՂǃЪ૕ՌՂłłŁЂԊ ժժժժԚժ$` $`#a#ЪՁՊժաՊԚՊ܆a+ebQ8D"QP*TA*T @(@ E"P(@łтેԂԊЪՂՂŊՂ݂ЊЪԨԨܨǁՊՊըՊêǃЪШЪШШ੕ԊՊłłƂ΂ՂЪЪՂłłłÂЂԊ":PC$"TABLPC1.2"&t:"FPBASIC: NO"Gy:"RATE: ";R$;" sec/screen"Q~2000f:17);"LIFE12"L$"LIFE12.2OBJ":R$"0.73":111020:"LOAD A PICTURE (Y-N): ";A$A$"Y"2050"FILE NAME: ";A$(A$)02050(4);"BLOAD ";A$S: PC1, PC2, PC3":PC$"TABLPC1"4:"FPBASIC: NO"U:"RATE: ";R$;" sec/screen"_2000tL:17);"LIFE11"QL$"LIFE11.OBJ":R$"1.23"V6:"ADDRESS: $1000":AD$",A$1000"`:"INPUT SCRN: HGR":SC$",A$2000"j:"TABLES: PC1.2, PC2, PC32000 :17);"LIFE8"; *L$"LIFE8.OBJ":R$"4.08":710O :17);"LIFE9"q L$"LIFE9.OBJ":R$"3.74":710 :17);"LIFE10" L$"LIFE10.OBJ":R$"2.21" 6:"ADDRESS: $1000":AD$",A$1000" :"INPUT SCRN: HGR":SC$",A$2000":"TABLE17);"LIFE6". bL$"LIFE6.OBJ":R$"12.42":410B :17);"LIFE7"_ L$"LIFE7.OBJ":R$"5.32" 6:"ADDRESS: $1800":AD$",A$1800" :"INPUT SCRN: HGR2":SC$",A$4000" :"TABLES: TABLE" :"FPBASIC: NO" :"RATE: ";R$;" sec/screen" L$"LIFE4.OBJ":R$"26.38"A 6:"ADDRESS: $1800":AD$",A$1800"h :"INPUT SCRN: HGR":SC$",A$2000" :"TABLES: TABLE" :"FPBASIC: YES" :"RATE: ";R$;" sec/screen" 2000 :17);"LIFE5" L$"LIFE5.OBJ":R$"14.10":410 X: :"INPUT SCRN: HGR":SC$",A$2000"9 :"TABLES: NO"O :"FPBASIC: YES"p :"RATE: ";R$;" sec/screen"z 2000 :17);"LIFE2" L$"LIFE2.OBJ":R$"41.35":150 ,:17);"LIFE3" 6L$"LIFE3.OBJ":R$"38.45":150 :17);"LIFE4" LIFE 11" _4 d" 6) LIFE 6";20);"12) LIFE 12"Q n22:"CHOOSE (1-12): ";Aj xA(A):A1A12110 A140,200,300,400,500,600,700,800,900,1000,1100,1200 :17);"LIFE1" L$"LIFE.OBJ" R$"40.31" 6:"ADDRESS: $900":AD$",A$900"%  :18);"Life"+18);"----"2(6X2" 1) LIFE 1";20);" 7) LIFE 7"^7<" 2) LIFE 2";20);" 8) LIFE 8"AF" 3) LIFE 3";20);" 9) LIFE 9"KP" 4) LIFE 4";20);"10) LIFE 10"U Z" 5) LIFE 5";20);"11)       <1 !#$00SET UP MID & NEWBOT BASES MIDLIN YLOW,X MID YHIGH,X MID+1 #$02 NBLIN YLOW,X NEWBOT YHIGH,X NEWBOT+1 ;  #$27SET UP LINE1'S BIT7 !^1 LINE01,YAS THIS NEVER >2GETS UPDATED BY NEWBOT #$7F ECLEAR BIT 0 (MID),YRESTORE #$27NOW RIGHT (MID),YGET RIGHT BYTE #$7FCLEAR BIT 7 (MID),YRESTORE #$00RESTORE Y! MOVE DOWN <1AND LOOP ; ; STARTSCN#$00CLEAR TOP BUFFER #$27 ^1 TOP,Y BOT,YAND BOTTOM BUFR CAT INTENSITY ; ; CLRBOT #$27 #$00CLEAR BOTTOM LINE ^1 LINEBF,Y LINE00,YAND TOP LINE TOO  <1 ; CLRBDR #$00TURN OFF BITS ON #$BELEFT AND RIGHT ^1 YLOW,X MID YHIGH,X MID+1 (MID),YGET LEFT BYTE #$F1 MID+1MOVE BASES UP <1IF NOT 0, LOOP $C082TURN OFF BANK RAM ; LIFE11 #$00SET GEN CNT CNTLOTO 0 CNTHI $C050SET HGR FOR APPLE $C04CSET HGR FOR THE CAT $C054PAGE 1 $C052ALL GRAPHICS $C057APPLE HI-RES $C02FSET 00SET UP PTRS MID NEWBOT SET UP OFFSET #$D0COPY $D000-$FFFF MID+1 #$90TO $9000-$BFFF NEWBOT+1 ^1 (MID),YGET A BYTE SAVE IT (NEWBOT),YCOPY BOT TO MID (MID),Y COPY MID TO BOT (NEWBOT),Y  <1 NEWBOT+#MONNO, MODIFY RESET RSTVCTRVECTOR /MON RSTVCTR+1 #$A5 RSTVCTR+2AND POWER-UP BYTE #MEMOVE2NOW MODIFY DOS PTR DOG+1 /MEMOVE2 DOG+2 #COUT1DISCONNECT DOS CSWL /COUT1 CSWL+1 $C083TURN ON BANK RAM $C083 #$ROUTINE TABV $FB5BDO A VTAB HOME $FC58CLEAR SCRN COUT $FDEDPRINT CHAR COUT1 $FDF0SCREEN ROUTINE MON $FF69MONITOR ; ; ;  $1000  $1000 ; ; $MEMOVE RSTVCTRHAVE WE BEEN HERE #MONALREADY? LIFE11YES, SKIP  $24CURSOR HORZ POSN DOG $3D0DOS WARM PTR RSTVCTR $3F2RESET VECTOR DOSWRM $9DBFDOS WARMSTART "DOSINP $9EBDDOS INPUT ROUTINE KYBD $C000KEYBOARD KBDSTRB $C010KBD STROBE PRNTAX $F941PRINT A & X RESET $FA62RESET ST PART CNT TABLES PC1EVN $1F00 ; PC2ODD $40002ND PC TABLES PC2EVN $4000 KILE $4000KILL MASK TALES KILO $4000 #STATODD $8000FINAL STATE TABLES STATEVN $8000 ; ; ; ;DOS & ROM STUFF ; CSWL $36OUTPUT POINTER CH TABL %TOPBIT $1700XXXXXX## -> 0000##00 %BOTBIT $1800XXXXXX## -> 00##0000 CELLOFF $1900NEW CELL STATE CELLON $1A00 TABLES YLOW $1B00ROW BASE LSB YHIGH $1BC0ROW BASE MSB %BIT6 $1D00X#XXXXXX -> #0000000 $PC1ODD $1E001T BASE ; ; ;ABSOLUTE (BUFFERS ETC) ; TOP $1C80TOP ROW BUFFER BOT $1CA8BOT ROW BUFFER #LINE00 $2000FIRST LINE ADDRESS LINE01 $2400LINE 01 ADDRESS "LINEBF $3FD0LAST LINE ADDRESS ; ; ;TABLES ; !MIDONLY $1600MID ON ONLY MID TMP STORAGE ; MIDLIN $ECMIDDLE ROW LINE NBLIN $EDNEWBOT ROW LINE EKILMSK $EEEVEN KILL MASK OKILMSK $EF ODD KILL MASK "TEMP $FATEMP SIXBIT STORAGE TEMP2 $FBONEBIT COUNT MID $FCMIDDLE ROW BASE NEWBOT $FENEWBOd!********************* * * * MACHINE CODE LIFE * * * * BY W.TOOMEY * * * * AND A.WESLEY * * * ********************* ; ; ; ;ZERO PAGE VARIABLES MIDTMP $EA                 l  :30,0:62454)I019130#0L(I,0I,191:0,I279,I:j2I1922793:I,0I,191: I퍂LκJ)L LJ)Lȱ!'L  0LɃLbɓ,S X$ [    A,RLɿ`I67Ѕȑ99)@ȩ 99)@ȩȱL?L)I[Ie)8jL8j@  @)@J@)%8j%꾀)0U)@ JȰ iLiI67Ѕ퍂  ,P,L,T,R,W,/'? )')''$) $J'' 꾀[[JJ08)RAM DOG ; ; CNTLO 00 CNTHI 00 ; MSG1 "GEN: $"  03END OF MESSAGE ; ; ;  SWL+1 $C083TURN ON BANK RAM $C083 #$00SET UP PTRS MID NEWBOT AND OFFSET #$D0 MID+1 #$90 NEWBOT+1 ^2 (MID),Y  (NEWBOT),Y (MID),Y  (NEWBOT),Y  <2 NEWBOT+1 MID+1 <2 $C082TURN OFF BANK STVCTRSWAP DOS BACK IN? #DOSWRM >1YES! NO, RETURN ^1 #DOSWRM RSTVCTRMODIFY RESET VECTOR DOG+1AND DOS PTR /DOSWRM RSTVCTR+1 DOG+2 #$A5 !RSTVCTR+2FIX UP POWER-UP BYTE #DOSINPRECONNECT DOS CSWL /DOSINP C16 TABVVTAB22 ^3 MSG1,YPRINT MESG >4 COUT  <3 ^4 CNTHIPRINT THE COUNT CNTLO PRNTAXDONE! ^5 KYBDGET A KEYPRESS <5 KBDSTRBTURN IT OFF $C052SHOW ALL GRAPHICS STARTSCNAND LOOP ; ; $MEMOVE2 REYPRESS? GETKEYYES LOOP STARTSCNNO, LOOP GETKEY KBDSTRBTURN OFF KYBD #$83A CTRL-C? >2NO RESETYES, EXIT VIA RESET ^2 #$93A CTRL-S? LOOPNO, LOOP $C053SHOW BOT 4 LINES HOMECLEAR SCREEN #$00 CHHTAB1 #$GET MSB NEWBOT+1 MIDLINNOW MID BASE MIDLIN YLOW,X MID YHIGH,X MID+1 #$27START ON RIGHT %(MID),YUPDATE MIDTMP FOR NEXT ROW MIDTMP SIXBITAND DO SCAN ; ; DONESCRNCNTLOINC GEN COUNT >1 CNTHI ^1 KYBDANY K; ENDROW (MID),YUPDATE BUFFERS TOP,Y (NEWBOT),Y BOT,Y TEMPGET 6 NEW BITS (MID),YAND SAVE ON SCREEN ; NEXTROW NBLININC NEWBOT BASE NBLIN #$C1FINISHED SCREEN? DONESCRNYES, EXIT YLOW,XGET LSB NEWBOT YHIGH,XLL (NEWBOT),Y SIXBITAND LOOP ; ^2 #$80BIT ON ,LIVE (NEWBOT),Y SIXBITAND LOOP ; ; CELLO CELLON,XAS ABOVE TEMP (MID),Y (NEWBOT),Y BOT,Y   (NEWBOT),Y <2 #$7F (NEWBOT),Y SIXBITAND LOOP ! ; ;  CELLOOLD CELL ON ,SKIP "CELLOFF,XGET OFFCELL NEW STATE TEMPGET BACK 6 NEW BITS (MID),YAND STORE ON SCRN ; !(NEWBOT),YNOW UPDATE BOT LIST BOT,Y SHIFT BIT0 INTO CARRY AND PUT IT INTO BIT7 (NEWBOT),Y >2 #$7FBIT OFF, KIE THIS FOR A WHILE (MID),YGET 1 MID NBR !MIDTMPUPDATE MIDTMP FOR LATER #$40KILL EXTRA BITS THING #$00RETRIEVE NBRS SHIFT OLD CELL INTO CARRY BOT,YGET LAST NBR! BIT6,XADD IT TO A-REG USE AS OFFSET MOVE BACK UP TO CURRENTP NBRS AS INDEX "TOP,YBUT FIRST UPDATE TOP BUFR #$03REMOVE EXTRA BITS TOPBIT,XADD TOP NBRS BOT,YSAME WITH BOT NBRS BOTBIT,X NOW GET 3 MORE NBRS ENDROWFELL OFF SCREEN, SKIP TOP,YGET 1 TOP NBR BIT6,XINTO A-REG THING+1SAV TEMPSAVE RESULT MIDTMPGET MID AGAIN CONVERT SO HI-BIT ON  FOR EVEN RESULTS )STATE STATEVN,XGET FINAL EVEN STATE EKILMSKKILL BITS TEMPADD ODD BITS TEMPAND STORE ; ; ; "ONEBIT MIDTMPGET CELL & 1 NBR TOP,YUSE TOR FINAL STATE TABLE BOT,YCONVERT BOT AGAIN TO GET EVEN 2ND PARTIAL COUNT PC2E PC2EVN,X STATE+2 ; ; ; MIDTMPGET MID BYTE #$7FTURN BIT7 OFF FOR ODD RESULTS (STATO STATODD,XGET FINAL ODD STATE OKILMSKKILL SOME BITSO CORRECT MASK EKILMSK &BOT,YGET BOT BYTE & TURN HI-BIT ON #$80  #KILODD KILO,XGET ODD KILL MASK OKILMSK ; GET BOT BYTE WITH HI-BIT OFF !#$7FTO USE AS OFFSET INTO PC2 TABLE &PC2O PC2ODD,XGET 2ND PC AS ADDR STATO+2FOODD+2THESE HAVE 64 VALUES %PC2O+2USED AS ADDRS INTO BOTH THE &PC1EVN,XKILL MASK TABLE & THEN PC2 &KILEVN+2TABLE, BOTH AT $4000-$7FFF PC2E+2 ; BOT,YUSE BOT BYTE WITH HI-BIT ON TO GET EVEN KILL MASK KILEVN KILE,X SHIFT TNSTATE+2 ; MIDTMPGET MID BYTE #$7FGET ODD RESULT  NSTATO STATODD,XFINAL ODD TEMPSAVE MIDTMP GET EVEN RESULT   NSTATE STATEVN,X TEMP TEMP ONEBITAND DO ONEBIT ; ; ; "ALLON PC1ODD,XINTO PC1 LISTS KILTAND JUMP TO ONEBIT ; ; TOPON BOT,YCHECK BOT OFF ALLONNO, BOTH ON, OLD WAY ; X HOLDS ONLY BYTE THAT WAS ON BOTON PC1ODD,XGET PART CNT #$C0CONVT TO PC2 ADDRESS NSTATO+2USE LATER PC1EVN,XGET EVEN PC1 #$C0CONVERT TO PC2 MIDTMP TOP,Y BOT,Y #$40 SIXBITNOT 3, LOOP  #$01SET UP CELL0 ON (MID),Y  SIXBIT ; ; ; NENDROW UPDATE BUFFERS (NEWBOT),Y BOT,Y NEXTROW ; ; ; %MIDON MIDONLY,XNOW GET MID BYTE TEMPSAVE FOR LATER ONEBICHECK IF NEXT NBOT &NENDROWSTILL GOTTA CHECK THIS #$@! (NEWBOT),YHAS BIT7=0 CONTYES, NO CHANGE OOPS, NO, MOVE BACK UP CONT1AND DO AS BEFORE ; ; $^4 #$80AS ABOVE BUT BIT0 ON (NEWBOT),Y (MID),YUPDATE MIDTMP SIXBIT ONT (MID),YSET UP NEW MID SIXBITNOT 3 NBRS, LOOP MIDTMP TOP,YNOW CHECK IF 3 NEXT BOT,YNBRS ARE ON #$40YES? SIXBITNO, DO NEXT STUFF ELSE SET BIT0 ON #$01 (MID),Y RESET Y-REG SIXBITAND LOOP BACK ; ; NBOTOFF SKIP MIDTMPNOW GET MID BYTE MIDONMID IS ON ONLY %MIDOFF (NEWBOT),YCOPY BIT 0 OVER NBOTOFFNEW BOTTOM OFF !CONT1 BOT,YADD IT TO BUFFER  INTO THE NEXT BYTE NENDROWEND OF ROW (NEWBOT),Y >4 #$7F (NEWBOT),YDONE ; !C CDSKIP ORA ^2 #$80 LINE01,Y SHIFT BOT0 INTO CARRY  <1 #$27RESTORE Y $2027GET FIRST MIDTMP MIDTMP ; ; ; 'SIXBIT TOP,YUSE TOP BYTE AS OFFSET TOPONTOP IS ON, SKIP BOT,YNOW IS BOTTOM OFF? BOTONBOTTOM IS ON, <1 !#$00SET UP MID & NEWBOT BASES MIDLIN YLOW,X MID YHIGH,X MID+1 #$02 NBLIN YLOW,X NEWBOT YHIGH,X NEWBOT+1 ;  #$27SET UP LINE1'S BIT7 !^1 LINE01,YAS THIS NEVER >2GETS UPDATED BY NEWBOT #$7F ECLEAR BIT 0 (MID),YRESTORE #$27NOW RIGHT (MID),YGET RIGHT BYTE #$7FCLEAR BIT 7 (MID),YRESTORE #$00RESTORE Y! MOVE DOWN <1AND LOOP ; ; STARTSCN#$00CLEAR TOP BUFFER #$27 ^1 TOP,Y BOT,YAND BOTTOM BUFR CAT INTENSITY ; ; CLRBOT #$27 #$00CLEAR BOTTOM LINE ^1 LINEBF,Y LINE00,YAND TOP LINE TOO  <1 ; CLRBDR #$00TURN OFF BITS ON #$BELEFT AND RIGHT ^1 YLOW,X MID YHIGH,X MID+1 (MID),YGET LEFT BYTE #$F!"ENTER DENSITY (0-100) ";D-D0Ā>D100D100D QX0278^Y0190e#0}((1)1000.5DĒ32X,Y<:F34,0:P:"FINISHED!"z#?  !Š Р ŸʠŹʠ űʠ űʠ űʠ űʠ! űʠ ŮʠŲʠ ųʠŴʠŵʠŶʠ ŷʠ ̠ ñʠ ñàòʠòà óʠóàϠ Š ññ òRó2Šxx|~                                                               @@@@   "000088<>  @@@@@@@B@@@@@@DF```````bpppp @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     ~~}~~@@AAAABBEEFFFFGGDDEEEEFFIIJJJJKKTTUUUUVVYYZZZZ[[XXYYYYZZ]]^^^^__PPQQQQRRUUVVVVWWTTUUUUVVYYZZZZ[[ddeeeeffiijjjjkkhhiiiijjmmnnnnooPPQQQQRRUUVVVVWWTTUUUUVVYYZZZZ[[ddeeeeffiijjjjkkhhiiiijjmmnnnnoo``aaaabbeeffffggddeeeeffiijjjjkkttuuuuvvyyzzzz{{xxyyyyzz}}~~@AABEFFGDEEFIJJKTUUVYZZ[XYYZ]^^_PQQRUVVWTUUVYZZ[deefijjkhiijmnnoPQQRUVVWTUUVYZZ[deefijjkhiijmnno`aabeffgdeefijjktuuvyzz{xyyz}~~@AABEFFGDEEFIJJKTUUVYZZ[XYYZ]^^_PQQRUVVWTUUVYZZ[deefijjkhiijmnnoPQQRUVVWTUUVYZZ[deefijjkhiijmnno`aabeffgdeefijjktuuvyzz{xyyz$FA637;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?P $9EBDDOS INPUT ROUTINE KYBD $C000KEYBOARD KBDSTRB $C010KBD STROBE PRNTAX $F941PRINT A & X RESET ((((((((((((((((((((((((((((((((PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/     4"MASTER DISKETTE CREATED ON 48K SYSTEM"a"BY W.TOOMEY 17/07/87"y(4:"Life Routines"234,7:8<(4);"CATALOG"F34,0:""""*******(*******(*******(****""" *******(*******(*******(****""" *******(*******(*******(****""" *******(*******(*******(****((((****************************""""****************************""""****************************""""*****************************(((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((***(***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(***********(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(****@P****************************************************************************************************************************                         ~~C}~~@@AAAABBEEFFFFGGDDEEEEFFIIJJJJKKTTUUUUVVYYZZZZ[[XXYYYYZZ]]^^^^__PPQQQQRRUUVVVVWWTTUUUUVVYYZZZZ[[ddeeeeffiijjjjkkhhiiiijjmmnnnnooPPQQQQRRUUVVVVWWTTUUUUVVYYZZZZ[[ddeeeeffiijjjjkkhhiiiijjmmnnnnoo``aaaabbeeffffggddeeeeffiijjjjkkttuuuuvvyyzzzz{{xxyyyyzz}}~~@AABEFFGDEEFIJJKTUUVYZZ[XYYZ]^^_PQQRUVVWTUUVYZZ[deefijjkhiijmnnoPQQRUVVWTUUVYZZ[deefijjkhiijmnno`aabeffgdeefijjktuuvyzz{xyyz}~~@AABEFFGDEEFIJJKTUUVYZZ[XYYZ]^^_PQQRUVVWTUUVYZZ[deefijjkhiijmnnoPQQRUVVWTUUVYZZ[deefijjkhiijmnno`aabeffgdeefijjktuuvyzz{xyyz$FA637;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?P $9EBDDOS INPUT ROUTINE KYBD $C000KEYBOARD KBDSTRB $C010KBD STROBE PRNTAX $F941PRINT A & X RESET ((((((((((((((((((((((((((((((((PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/ 0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*******(*******(*******(****""" *******(*******(*******(****""" *******(*******(*******(****""" *******(*******(  ****************************""""****************************""""****************************""""**************** *(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((*(((((((   ***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((    *******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(*******(  **************************************************************************************************************** " *((( " " " *((( " " " *((( " " " *((( " " " """ ***(" """ " """ " """ " ***(" """ " """ " """ " ***(" """ " """ " """ " ***(" """ " """ " """ """"****""" """"""" """"""" """"""" ****""" """"""" """"""" """"""" ****""" """"""" """"""" """"""" ****""" """"""" """"""" """" ****""""""""""""""""""""""""""""****""""""""""""""""""""""""""""****""""""""""""""""""""""""""""****""""""""""""""""""""""""" *(((((((*((( *((( " *(((((((*((( *((( " *(((((((*((( *((( " *(((((((*((( *((( " """ ***(*(((***(" ***(" """ " ***(*(((***(" ***(" """ " ***(*(((***(" ***(" """ " ***(*(((***(" ***(" """ """"*******(****""" ****""" """"""" *******(****""" ****""" """"""" *******(****""" ****""" """"""" *******(****""" ****""" """" ************""""****""""""""""""************""""****""""""""""""************""""****""""""""""""************""""****""""""""" *(((((((*(((((((*(((((((*((( *(((((((*(((((((*(((((((*((( *(((((((*(((((((*(((((((*((( *(((((((*(((((((*(((((((*(((""" ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((***(*(((***(*******(*******(*******(****""" *******(*******(  *******(*******(      ****************************""""**************** ****************  *(((((((*(((((((*(((((((*(((((((*(((((((*(((((((  *(((((((*(((((((       ***(*(((***(*(((***(*(((***(*(((***(*(((***(*(((    ***(*(((***(*(((            *******(*******(*******(*******(*******(*******(  *******(*******(      ************************************************ **************** *((( " " " *((( " " " *((( " " " *((( " ***(" """ " """ " """ " ***(" """ " """ " """ " ***(" """ " """ " """ " ***(" """ " ****""" """"""" """"""" """"""" ****""" """"""" """"""" """"""" ****""" """"""" """"""" """"""" ****""" """"""" ****""""""""""""""""""""""""""""****""""""""""""""""""""""""""""****""""""""""""""""""""""""""""****""""""""""""*(((((((*((( *((( " *(((((((*((( *((( " *(((((((*((( *((( " *(((((((*((( ***(*(((***(" ***(" """ " ***(*(((***(" ***(" """ " ***(*(((***(" ***(" """ " ***(*(((***(" *******(****""" ****""" """"""" *******(****""" ****""" """"""" *******(****""" ****""" """"""" *******(****""" ************""""****""""""""""""************""""****""""""""""""************""""****""""""""""""************"""" *(((((((*(((((((*(((((((*((( *(((((((*(((((((*(((((((*((( *(((((((*(((((((*(((((((*((( *(((((((*(((((((  ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((   *******(*******(              ****************    *(((((((*(((((((               ***(*(((***(*(((                            *******(*******(              **************** *((( " " " *((( " *((( "  ***(" """ " """ " """ " ***(" """ " ***(" """ "  ****""" """"""" """"""" """"""" ****""" """"""" ****""" """""""  ****""""""""""""""""""""""""""""****""""""""""""****"""""""""""" *(((((((*((( *((( " *(((((((*((( *(((((((*(((    ***(*(((***(" ***(" """ " ***(*(((***(" ***(*(((***("     *******(****""" ****""" """"""" *******(****""" *******(****"""    ************""""****""""""""""""************"""" ************""""   *(((((((*(((((((*(((((((*((( *(((((((*(((((((  *(((((((*(((((((      ***(*(((***(*(((***(*(((***(" ***(*(((***(*(((   ***(*(((***(*(((          PPPT             "(***(((*(***@@@DPTTTPPPTPPPP          (((*(((((((*@@@@PPPTPPPPTPTP" " " " ((((D@D@@@@@D@D@PTTT       """" " """*(*(@DDDD@D@@DDDPPPT    " """ "(***@@@D@DDD@@@D    " (((*@@@@@@@D@@@@*((( "    ***(" """ "    ****""" """""""    ****""""""""""""   *(((((((*(((          ***(*(((***("             *******(****"""          ************""""       *(((((((*(((((((              ***(*(((***(*(((                        TPTP" " " " ((((" " " " ((((" " " " " " " " ((((D@D@@@@@D@D@PPPPD@D@@@@@D@D@PPPPD@D@@@@@D@D@@@@@D@D@@@@@D@D@PTTT   """" " """*(*( """" " """*(*( """" " """" " """" " """*(*(@DDDD@D@@DDDTPTP@DDDD@D@@DDDTPTP@DDDD@D@@DDDD@D@@DDDD@D@@DDDPPPT  " """ "(*** " """ "(*** " """ " """ " """ "(***@@@D@DDD@@@DPTTT@@@D@DDD@@@DPTTT@@@D@DDD@@@D@DDD@@@D@DDD@@@DP0  " (((* " (((* " " " (((*@@@@@@@D@@@@PPPT@@@@@@@D@@@@PPPT@@@@@@@D@@@@@@@D@@@@@@@D@@@@               @@@@D@D@                " " " " D@D@@@@@D@D@@DDD         """" " """" " @DDDD@D@@DDD@@@D         " """ " """@@@D@DDD@@@D@@@@ " "@@@@@@@D@@@@D@D@                    *(*( *(*( TPTP@@@@TPTP@DDD                      (***" " (***" " PTTTD@D@PTTT@@@D                  (((* """(((* """PPPT@DDDPPPTPPPP        (((( "(((( "PPPP@@@DPPPPTPTP      " " ((((*(*(((((D@D@PPPPTPTPPTTT                     """*(*((****(*(@DDDTPTPPTTT" " " " ((((" " " " " " " " ((((" " " " " " " " D@D@@@@@D@D@PPPPD@D@@@@@D@D@@@@@D@D@@@@@D@D@PPPPD@D@@@@@D@D@@@@@D@D@@@@@D@D@@@@@ """" " """*(*( """" " """" " """" " """*(*( """" " """" "    """" " """" "   @DDDD@D@@DDDTPTP@DDDD@D@@DDDD@D@@DDDD@D@@DDDTPTP@DDDD@D@@DDDD@D@@DDDD@D@@DDDD@D@ " """ "(*** " """ " """ " """ "(*** " """ " """ " """ " """ @@@D@DDD@@@DPTTT@@@D@DDD@@@D@DDD@@@D@DDD@@@DPTTT@@@D@DDD@@@D@DDD@@@D@DDD@@@D@DDD@@@@ " (((* " " " (((* " " " " @@@@@@@D@@@@PPPT@@@@@@@D@@@@@@@D@@@@@@@D@@@@PPPT@@@@@@@D@@@@@@@D@@@@@@@D@@@@@@@DD@D@        " " " "    " " " " *(*( *(*( " " " " D@D@@@@@D@D@@@@@D@D@@@@@D@D@@@@@TPTP@@@@TPTP@@@@D@D@@@@@D@D@@DDD     """" " """" "    """" " """" " (***" " (***" " """" " """" " @DDDD@D@@DDDD@D@@DDDD@D@@DDDD@D@PTTTD@D@PTTTD@D@@DDDD@D@@DDD@@@D     " """ " """   " """ " """(((* """(((* """ " """ " """@@@D@DDD@@@D@DDD@@@D@DDD@@@D@DDDPPPT@DDDPPPT@DDD@@@D@DDD@@@D@@@@ " " " "(((( "(((( " " "@@@@@@@D@@@@@@@D@@@@@@@D@@@@@@@DPPPP@@@DPPPP@@@D@@@@@@@D@@@@D@D@        *(*( *(*(   *(*( *(*( " " ((((*(*(((((*(*( *(*( TPTP@@@@TPTP@@@@TPTP@@@@TPTP@@@@D@D@PPPPTPTPPPPPTPTP@@@@TPTP@DDD          (***" " (***" "     (***" " (***" " """*(*((****(*((***" " (***" " PTTTD@D@PTTTD@D@PTTTD@D@PTTTD@D@@DDDTPTPPTTTTPTPPTTTD@D@PTTT@@@D        (((* """(((* """   (((* """(((* """ "(***(((*(***(((* """(((* """PPPT@DDDPPPT@DDDPPPT@DDDPPPT@DDD@@@DPTTTPPPTPTTTPPPT@DDDPPPTPPPP    (((( "(((( "  (((( "(((( " (((*(((((((*(((( "(((( "PPPP@@@DPPPP@@@DPPPP@@@DPPPP@@@D@@@@PPPTPPPPPPPTPPPP@@@DPPPPTPTP  " " ((((*(*(((((" " ((((*(*(((((" " " " ((((" " ((((*(*(((((D@D@PPPPTPTPPPPPD@D@PPPPTPTPPPPPD@D@@@@@D@D@PPPPD@D@PPPPTPTPPTTT         """*(*((****(*(   """*(*((****(*( """" " """*(*( """*(*((****(*(@DDDTPTPPTTTTPTP@DDDTPTPPTTTTPTP@DDDD@D@@DDDTPTP@DDDTPTPPTTTPPPT     "(***(((*(*** "(***(((*(*** " """ "(*** "(***(((*(***@@@DPTTTPPPTPTTT@@@DPTTTPPPTPTTT@@@D@DDD@@@DPTTT@@@DPTTTPPPTPPPP    (((*(((((((* (((*(((((((* " (((* (((*(((((((*@@@@PPPTPPPPPPPT@@@@PPPTPPPPPPPT@@@@@@@D@@@@PPPT@@@@PPPTPPPP" " " " " " " " D@D@@@@@D@D@@@@@D@D@@@@@D@D@@@@@ """" " """" "    """" " """" "       @DDDD@D@@DDDD@D@@DDDD@D@@DDDD@D@ " """ " """ " """ " """   @@@D@DDD@@@D@DDD@@@D@DDD@@@D@DDD " " " "   @@@@@@@D@@@@@@@D@@@@@@@D@@@@@@@D    " " " " *(*( *(*( " " " " *(*( *(*( *(*( *(*( D@D@@@@@D@D@@@@@TPTP@@@@TPTP@@@@D@D@@@@@D@D@@@@@TPTP@@@@TPTP@@@@TPTP@@@@TPTP@@@@   """" " """" " (***" " (***" " """" " """" " (***" " (***" " (***" " (***" " @DDDD@D@@DDDD@D@PTTTD@D@PTTTD@D@@DDDD@D@@DDDD@D@PTTTD@D@PTTTD@D@PTTTD@D@PTTTD@D@   " """ " """(((* """(((* """ " """ " """(((* """(((* """(((* """(((* """@@@D@DDD@@@D@DDDPPPT@DDDPPPT@DDD@@@D@DDD@@@D@DDDPPPT@DDDPPPT@DDDPPPT@DDDPPPT@DDD " "(((( "(((( " " "(((( "(((( "(((( "(((( "@@@@@@@D@@@@@@@DPPPP@@@DPPPP@@@D@@@@@@@D@@@@@@@DPPPP@@@DPPPP@@@DPPPP@@@DPPPP@@@D  *(*( *(*( " " ((((*(*(((((*(*( *(*( " " ((((*(*(((((    " " ((((*(*(((((    TPTP@@@@TPTP@@@@D@D@PPPPTPTPPPPPTPTP@@@@TPTP@@@@D@D@PPPPTPTPPPPPD@D@PPPPTPTPPPPP    (***" " (***" " """*(*((****(*((***" " (***" " """*(*((****(*(   """*(*((****(*(  PTTTD@D@PTTTD@D@@DDDTPTPPTTTTPTPPTTTD@D@PTTTD@D@@DDDTPTPPTTTTPTP@DDDTPTPPTTTTPTP   (((* """(((* """ "(***(((*(***(((* """(((* """ "(***(((*(***   "(***(((*(***  PPPT@DDDPPPT@DDD@@@DPTTTPPPTPTTTPPPT@DDDPPPT@DDD@@@DPTTTPPPTPTTT@@@DPTTTPPPTPTTT  (((( "(((( " (((*(((((((*(((( "(((( " (((*(((((((* (((*(((((((*PPPP@@@DPPPP@@@D@@@@PPPTPPPPPPPTPPPP@@@DPPPP@@@D@@@@PPPTPPPPPPPT@@@@PPPTPPPPPPPT" " ((((*(*(((((" " " " ((((" " ((((*(*(((((" " " " ((((  " " " " ((((  D@D@PPPPTPTPPPPPD@D@@@@@D@D@PPPPD@D@PPPPTPTPPPPPD@D@@@@@D@D@PPPPD@D@@@@@D@D@PPPP   """*(*((****(*( """" " """*(*( """*(*((****(*( """" " """*(*(     """" " """*(*(    @DDDTPTPPTTTTPTP@DDDD@D@@DDDTPTP@DDDTPTPPTTTTPTP@DDDD@D@@DDDTPTP@DDDD@D@@DDDTPTP "(***(((*(*** " """ "(*** "(***(((*(*** " """ "(***   " """ "(***   @@@DPTTTPPPTPTTT@@@D@DDD@@@DPTTT@@@DPTTTPPPTPTTT@@@D@DDD@@@DPTTT@@@D@DDD@@@DPTTT (((*(((((((* " (((* (((*(((((((* " (((*  " (((*  @@@@PPPTPPPPPPPT@@@@@@@D@@@@PPPT@@@@PPPTPPPPPPPT@@@@@@@D@@@@PPPT@@@@@@@D@@@@PPPT2C2C218192I,OUT(C)"-$C2,C3R.(4);"BSAVE TABLE,A$2000,L$100"JI(XTW4TW4JIXTW4 JI  TWO(8),OUT(8))J18:TWO(J):D 128,64,32,16,8,4,2,1Y#J08:OUT(J):% 128,128,1,0,128,128,128,128,128(I02552XI:C0 INPUT XJ18XTWO(J)CC1:XXTWO(J)I,C,OUT(C)C3C3C31 C*(*( *(*( *(*( *(*(         TPTP@@@@TPTP@@@@TPTP@@@@TPTP@@@@(***" " (***" " (***" " (***" "     PTTTD@D@PTTTD@D@PTTTD@D@PTTTD@D@(((* """(((* """(((* """(((* """    PPPT@DDDPPPT@DDDPPPT@DDDPPPT@DDD(((( "(((( "(((( "(((( "PPPP@@@DPPPP@@@DPPPP@@@DPPPP@@@D" " ((((*(*(((((    " " ((((*(*(((((                D@D@PPPPTPTPPPPPD@D@PPPPTPTPPPPP """*(*((****(*(   """*(*((****(*(              @DDDTPTPPTTTTPTP@DDDTPTPPTTTTPTP "(***(((*(***   "(***(((*(***            @@@DPTTTPPPTPTTT@@@DPTTTPPPTPTTT (((*(((((((* (((*(((((((*    @@@@PPPTPPPPPPPT@@@@PPPTPPPPPPPT" " " " ((((  " " " " ((((      D@D@@@@@D@D@PPPPD@D@@@@@D@D@PPPP """" " """*(*(     """" " """*(*(                @DDDD@D@@DDDTPTP@DDDD@D@@DDDTPTP " """ "(***   " """ "(***           @@@D@DDD@@@DPTTT@@@D@DDD@@@DPTTT " (((*  " (((*        @@@@@@@D@@@@PPPT@@@@@@@D@@@@PPPT";PC2 GENERATOR ; ;FOR LIFE10 ; ; TEMP $FATEMP STORAGE BO $FBBOT PC1 CNT $FC2ND PC MSK $FDMASK PC2 $FEPC2 LSB TOPC $FFTOP 1ST PC ; ; PC1ODD $1E00 ; ; ;  $300  $300 ; ; ; "PC2GEN #$40   @)0)0e@)0 ͩ) ) e)  ))e)  ɀ` `?1ELSE LOOP DONE ; ;  COUNTADD BITS COUNTSAVE IT CT6 CELL5 CELL6 CELL7CELL 6'S CNT SHIFT <- FOUR TIMES    COUNTADD TO COUNT COUNTSAVE IT COUNTGET COUNT $00-$3F #$40NOW $40-$7F PC1EVN,XADD TO LIST  DONEFINISHED 1 START ; ^1 TOPCINC THE PC2 TOPC #$C0FINISHED? DONEYES #$00NO, RESET Y STARTAND LOOP ; DONE STOP! ; ; ;  0COUNT=2? STORENO, SKIP ; IG5 GET OLD CELL #$20 CDSKIP LV5 #$20SET CELL ALIVE STATE STATEADD TO STATE ; ; ; STORE #$00ADDRESS STATO ST STATE (ST),YSTORE STATE #$80ADDRESS STATE ST STATE S OLD CELL STATE #$08 CDSKIP LV3 #$08SET CELL ALIVE STATEADD TO STATE STATE ; ; CT5 NBRSGET NBRS #$30 TEMPSAVE 2 NEIGHBOURS TOPCSAME WITH TOPC #$30 DO AN ADD TEMP #$30COUNT=3? LV5ENLIVEN IT #$2ET OLD CELL STATE #$02 STATEAND STORE ; ; CT3 NBRSGET NEIGHBOURS #$0CWANT TWO ONLY TEMP TOPCSAME WITH TOPC #$0C  TEMPNOW ADD THEM #$0CCOUNT=3? LV3ENLIVEN IT #$08COUNT=2? CT5KILL, SKIP ; IG3 GETDO THE SAME TO 2ND PC #$03 NOW ADD THEM TEMP #$02COUNT=2? IG1IGNORE, USE OLD CELL #$03COUNT=3? LV1MAKE CELL LIVE KL1 #$00SET CELL1=0  CDSKIP LV1 LV1 #$02SET CELL1=1 STATEADD TO STATE CT3 ; IG1 GCPC2 #$00Y-REG = MID BYTE ; START GET NEIGHBOURS #$55(-6-4-2-0) NBRS SHIFT THEM OVER THEMSELVES  NBRSAND ADD THEM! #$3FREMOVE BITS 6-7 NBRS00553311 ; CT1 #$03GET CELL1'S NBRS TEMPSAVE THESE TWO TOPC;PC3 GENERATOR. ; ;FOR LIFE10 ; ; TEMP $FBTEMP STORAGE NBRS $FCNEIGHBOURS BYTE STATE $FDFINAL STATE ST $FESTATE LSB TOPC $FFTOP 1ST PC ; ; ; ;  $300  $300 ; ; ; PC3GEN #$80START AT $80 IN TOP)UJJe)?))eͩL6)) ) e  )ͩ)0)0e0 ) ͩ  0LL` TAND LOOP ; DONE ; ;  ;; ;  DRESS PC2 PC2 CNTMAKE COUNT IN #$80$80-$BF (PC2),Y #$80NOW ADRESS KILL PC2 MSKGET MASK (PC2),YSAVE IN TABLE ; UP ONE STARTAND LOOP TOPCELSE MOVE UP TOPC TOPC #$80FINISHED? DONEYES #$00RESET Y STARLL BIT3=0 MSK #$08LIVE BIT3 MSK ; CT5 BOREMOVE BITS #$03 TEMP TOPC #$03  TEMPADD BOT BITS #$04COUNT >3 #$03 CNTADD TO ADDR CNT STOREKILL BIT 1 MSK #$02LIVE BIT 1 MSK ; ; STORE #$00ADPART OF PC2 ADDR >1KILL BIT 5 #$20LIVE BIT 5 CDSKIP ^1 #$00 MSKSAVE ODD MASK BIT1 ; CT3 BOREMOVE BITS #$0C TEMP TOPCGET TOPC #$0C  TEMP #$10COUNT>3 #$0C CNT CNTADD BITS TO PC2 ADDR CT5KISET UP TOPC AS $40 TOPC #$00Y-REG = BOT BYTE #START PC1ODD,YGET ODD BOT PC1 BOSAVE ; CT1 BOREMOVE BITS #$30 TEMP TOPCGET TOPC #$30REMOVE BITS  TEMPADD BOT BITS #$40COUNT >3? (IN CARRY) #$30 CNTSAVE ,P,L,U,R @= ?<><)>=? '0&01& 001& 'i,1&i,2&iOII&if&'Lf&'01& F001&'i,1&i,2&iOII&if&'Lf&'01& 001&= L  01& )L 01&=L6F0@0'i,&i,&iOI&if&'Lsf&'0*'I`'&0&L'I`'&E0&'I`'00'0@0& '?LLL=@ ,P,L,U,R @= ?<><)>=? '0&01& 001&  01& F001& 01& 001&= @5'i,&i,&iOII&if&'Lf&'0001&=L0)34,-2,34,-1,35,- 2,35,-1 c  25,-4,25,2,24,-1,12,-1,13,-2 ,14,-1,12,3,13,4,14,3 7,-1,6,2,7,2,7,1XHYHMXPYPMNNNXI`' ZL'I`' Z'I`' c  c c  LLL201&)`0 0 0` 0(``0)8j0` @00`'`@  ,-2,21,0,22 ,-3,25,-3,21,-2,24,-2,21,0,24,0,22 ,1,25,1,30,0,30,1,,P,L,U,R C> 0000##00 %BOTBIT $1800XXXXXX## -> 00##0000 CELLOFF $1900NEW CELL STATE CELLON $1A00 TABLES YLOW $1B00ROW BASE LSB YHIGH $1BC0ROW BASE MSB %BIT6 $1D00X#XXXXXX -> #0000000 $PC1ODD $1E001T BASE ; ; ;ABSOLUTE (BUFFERS ETC) ; TOP $1C80TOP ROW BUFFER BOT $1CA8BOT ROW BUFFER #LINE00 $2000FIRST LINE ADDRESS LINE01 $2400LINE 01 ADDRESS "LINEBF $3FD0LAST LINE ADDRESS ; ; ;TABLES ; !MIDONLY $1600MID ON ONLY MID TMP STORAGE ; MIDLIN $ECMIDDLE ROW LINE NBLIN $EDNEWBOT ROW LINE EKILMSK $EEEVEN KILL MASK OKILMSK $EF ODD KILL MASK "TEMP $FATEMP SIXBIT STORAGE TEMP2 $FBONEBIT COUNT MID $FCMIDDLE ROW BASE NEWBOT $FENEWBOd"********************* * * * MACHINE CODE LIFE * * * * BY W.TOOMEY * * * * AND A.WESLEY * * * ********************* ; ; ; ;ZERO PAGE VARIABLES MIDTMP $EA""""""""          (NEWBOT),Y (MID),Y  (NEWBOT),Y  <2 NEWBOT+1 MID+1 <2 $C082TURN OFF BANK RAM DOG ; ; CNTLO 00 CNTHI 00 ; MSG1 "GEN: $"  03END OF MESSAGE ; ; ;  1 DOG+2 #$A5 !RSTVCTR+2FIX UP POWER-UP BYTE #DOSINPRECONNECT DOS CSWL /DOSINP CSWL+1 $C083TURN ON BANK RAM $C083 #$00SET UP PTRS MID NEWBOT AND OFFSET #$D0 MID+1 #$90 NEWBOT+1 ^2 (MID),Y  +PZL ABLOAD TABLPC3,A$D000"2f49282,0: BANK MEM OUTKp(4);"BRUN ";L$;AD$Qz3000AL oASL oASL oASL oASL oASSL oASA AS+PZL S;SC$$23:"HIT TO RUN ";A$149199,0?A92100^ (4);"BLOAD TABLE,A$1C00"A3Ĺ49232,0:49237,0:49239,0(4);"BRUN ";L$;AD$ 4(4);"BLOAD ";PC$H(4);"BLOAD TABLPC2"R49281,0:49281,0: BANK MEM\(4);"":PC$"TABLPC1.2"&t:"FPBASIC: NO"Gy:"RATE: ";R$;" sec/screen"Q~2000f:17);"LIFE12"L$"LIFE12.2OBJ":R$"0.73":111020:"LOAD A PICTURE (Y-N): ";A$A$"Y"2050"FILE NAME: ";A$(A$)02050(4);"BLOAD ";A$S: PC1, PC2, PC3":PC$"TABLPC1"4:"FPBASIC: NO"U:"RATE: ";R$;" sec/screen"_2000tL:17);"LIFE11"QL$"LIFE11.OBJ":R$"1.23"V6:"ADDRESS: $1000":AD$",A$1000"`:"INPUT SCRN: HGR":SC$",A$2000"j:"TABLES: PC1.2, PC2, PC3