ML }  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș` i #(PMR\ \b Pgi 0  % @ / ՠ`d   0DDԝLyN@  )?HI Y0`HIJH) * J j * hJJJ )HJ h i     } YS S0 i`΢ϣ߳H J3xj2h} 1 |9 ӭ45(420 * (0241өX.`  R *i)Lvw  ~*P}E 5 LN(G E  r s k rsrL ( E LO(0d( L iE0O +)$IC  H S8 }q p h   j 8no CDLQ CFl M  LO Ri)Llk2'")*F }$F$F$F$F$ 5 )ШF/Șl]kpqС,LQ/A! Ti)Zlk@ ܬ/i)(")")k }$F$F$F 5$/L /lF@jj(LNkle$$%8(k()` R 8 ELO Ri)^>jf | NrC s } ) vw5g   enfo Glvw LQ@iLm>j FL ~Jjjjii p qEh }jlrs`LQ:$ȱ$@+[_#{ 8  Խut! ai 8   E I   ] C } H h    ˰ 8  N   Lm E  ,  [ `LQ ,/ 8 ~/  Ơ? ѩ}/  [ /Lj0?MoLn FjMqLp NklLOLQnLoMlNLO R"(+}ըHH`Q R!!  % !   / .   FȑF! /GF \H"+0+* }! F tLQnm: J~nTF1F  *n+)5! n (, n)1JJJn(n*o} I ,0  ci a oF? @ , 8,0 ʩ0H Eh   i}  D ]DmmFLQvtu`*&!*@h ] 0 ^0` c 0l$$%}()()%*&J%H,@hH hH@,h $% 8i8$(%)0hhH ]h`() c 0H c 0 h}`hhh&JJ ](ll  LQ0  /qnoHH 9 9 H H  I9  9 } Nd EH  Q8 o n  FnoL HII/ Ih8`h`Lnon`no`u F }E VEhLO/luF l0BF/lɜɛ׽hE N  b VFL FREE SECTORS C} H) *Fh ):FȽ F FC IH' 0 d  i:Fȩ/F.l`CD/08HDIC}IHȰ/F`ȱ$>.+.i ȱ$:刄H !A \ Hȱ$*?ȝ 2. ? [_{ ,0}-:) 0$:>WI  IТ,LQH  0hLd ~ t u`C ?( 0(C.` E } R =! .ti S0N EE D XC )0')AY  )ע ? 0E088FG \o}n  (HhLcL3 iJ i Lqp 0=rspnqopqlk`jZj0  j FL`H}FhȑFȽlFi0 h FFLFpvqwgneofLF pq7  G0i 0 FJJh1FqȱFpȱFk`B!}08`hEE D 8. =D}tui( TʩL`b!)    cȌaȌd b`aab}H8 hdaHcd8 cH hHH  \h hc` =Hh I8ih( t  ( t(!` L\}CJfCJfCJfCDfC` a  HII  INdh  `h  `n)8jHniPoijIjFIjFIjh` a } I 38  8H0 I  ' H LQ8j Y  8j NdY  &I &I &IHeH.p!}Iiq  `!.莿 2Jjj }.m Ȉ!m FG` ɩLQ z "} e Hi04 \ Ȍ  8 i h !`I0 `C Y8.`DOS SYS#} I  ` ~ݩ.C/`ba.m۩mѤC9 `C L] H  ,- '0 l $}, BLVDE`D1:AUTORUN.SYS8hhJ ȱHȱIȱBȱDȱEeeHHLV)  %}1*  ,,p-  0 I &  '0   Lw)l, 0  I&LD1:MEM.SAV&}E:D1:DUP.SYS, auZX LP_i!)C8: jg*d*uxsz'}d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%(} DD˙`  }J)Lr J  ((  p L ()   J)}L= ( L 0q A    IB JC;? D W *} LL  ` W )LA!  ߰")-݆ p" +} $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ`,}$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H -}p h  hyhy D L> L JJ    ! LA*` BF.}7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L/}EE !E^ ^ E E7EȩEdE/EȩE  D0} .L }  ;F d  ;?F7F? ( .   Z D LL d 1} . D  L    p  E` , d)  D L) 0BM݊L݉2} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G3} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G4}}Λd dd\DOS SYSCOPY3TO2COM?}B}@}CDOS SYSA} C C*(> C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISKB}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU C} L ? .  t`GBJ ~DEHI B V0dVD}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEhE}DEL8HI4 0 HI,0 0  9 .G VLOF},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHIG} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHIH} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO I}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -J}LLu ÝDEHILV 9 .l 9 .l  `` s$B BHK}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGM}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRESN}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N'O}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx P}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECTQ} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DLR}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BDS}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.T}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPECU}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#V}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SYW}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E X}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT AY}LLOWED IN DESTINATION 0 <.|K}:@,)-@7(>:@,n 6-F:,s"@A0x"@A@}"@AR A})6-%@"@)6-@@w@-@( "-@0(>:@,66-@ AE})6-%@"@)6-@@w6-@( "-@0(>:@,66--A}  A********************* WHAT DO YOU WANT *********************@w}'"@6-@'6-@H'"@6-@T'6-@2'"@6-@'6-@}"@A"@A"@A"@A"@A!"@}A@"@A# A*************** SOUND TEST ***************G "}6-A!+2@@9-A= G A;6-2@--A1 ; A}********************* THREE COLOR BARS ********************* +@ AA9A@f}'A A09AA1 @,@@1/@@ ',@@'/@@ } 1 @,@ @1/@ @  ',@@'/@@  1 @,@1@1/}@1@ ',@2@'/@2@ -A (F:,"@A( @ A},-*********************.* 1 BY 1 COLOR BARS */*********************06G (}AR@-}-@@ G(PRESS FOR COLOR7.-@@!.(PRESS FOR MENU;M-A@@%A}1ACAdAUM AP=F:,"@@@ F:Ad,"AUAE J A^E-}@@#3( E-@@#_ "(BLACK`"@(RUSTa"@2(} RED-ORANGEb "@H ( DARK-ORANGEc"@d(REDd""@"( DARK-LAVENDERe "@ ( CO}BALT-BLUEf%"A%(ULTRAMARINE-BLUEg "A( ( MEDIUM BLUEh"AD( DARK-BLUEi"A`}( BLUE-GREYj "Av ( OLIVE-GREENk!"A!( MEDIUM-GREENl"A( DARK-GREENm!"A$}!( ORANGE-GREENn"A@(ORANGEo$********************* HORIZONTAL LINES ***********}**********! +@# AA! AU-A F:,"@@ A#$****}*********************%* HORIZONTAL SUBROUTINE *&*************************'+-@0G @,}/AY# 5,@G/AY@:$?@******************A* VERTICAL LINES *B*****}*************C]! +@# AA! AUb A ************************ VERTICAL SUBROUTI}NE ************************-AYA @,/@# /,AYA/AY@}$************************ CROSS-HATCH PATTERN ************************+ +@# AA}! AU+ AU A **************** DOT PATTERN ****************# +@#$} AA%-AY*-@/Q ,,AY %,@) 5 @G,AY@Q A} 2,AY@ A RS***********************T* RAINBOW KEY PATTERN *U********************}***V +@ AAG6-@6-!6-A5-@@9G-@%@!@y}A  ,%/%% 6-%%@ % A ******************* PLAYER-MISSILE *}******************X6-F:A,&@&BBy46-AV$FAY@FXB2w@!-B2H}B2U! '-B2VB2`#@' !-AA! #-AA$%#} E-AA A(/-%@=%AUA E $******************* COLOR BAR }MENU *******************9"@A:"@AU;t (}-@@ =(PRESS } FOR NTSC PATTERNO-@@t( PRESS FOR RAINBOW PATTERN=-A >cF:,"@(}*-@}@G(ONE MOMENT PLEASE.......U-AY c A0CF:,"@A!0HF:,"@@M } A!RI:, APA!@W A \n (}-@@=(Sorry...You don't have enoughO-@@}n(memory for this pattern...a-A  A!  ******************* * NTSC COLOR BARS * }*******************  ! +@ AA! A AA'AAF9A@fKA}@]AA0oA AA@  ***************** * DISPLAY SETUP * *****}************  3-@/B2H%@R%$@!3  '-B2VB2`#@'  %-@}%-@@ =,@%%$@=/@%%$@@#   -A  F:,@}A0E !-B2HB2U!  !AY@4!B2w @  ************** * G}RAY SCALE * ************** h (}-@@8(ONE MOMENT PLEASE.......F-AJ T+@^ }AAh A+-@@'A%%+  A0********************** BREAK KEY DI}SABLE ********************** D6-F:@,!A',6-&A(8@DB7t$D:C}OLORBAR.BAS********************* D6-F:@,!A',6-&A(8@DB7t$D:C EG&[&MAXMAXDLIEXTDINSATCMPLASIBFLSDLILSTPARMNXPDNUDTSTLAINADNEPMPMBOTESKTLLL }PLLLLCSUKKKKKK @ } @ } !"#$%&'()* }+,-./0123456dW6-A%6-@r'6 }-@36-@?6-@K6-@W6-@n`+AA(+A @7@I-@@ }`(Initializing...x__;,;,;,;@,;,;,;,;@ ,9,;@ ,;@@,;AP,} }9A,K:6.B6- 6-6-AP#AP A@6. A@6. A@ }6. A@6. A@6. A@6. 6-%E 6-6-6.!B:,%B(Fatal error }- too many DLIs!E&K 6-%!@A(%Too many steps!!! Re-do this DLI.K Ap (}((( }((( ɠ((( ǠǠ**(" }&&( DLI Number , Step :$$(A. Change a memory location$$(B. Add to a memory location }##(C. Increment a memory loc.##(D. Decrement a memory loc."%%(E. Wait for horizontal sync.,(6-@ }AP("6A1> 6-"@467B:,%,.7@<@,> A6!A@@- "#(}Deposit }result in:- A@J##(}Select letter to change:T A^(A. A screen colorh(B. The character set }r(C. A player position|(D. Some other locationG6-@ AP# APGAAA A }@.$(}Select a color to change:. A(A. Player/missle 0(B. Player/missle 1(C. Player/mi }ssle 2(D. Player/missle 3( E. Color 1**("F. Color 2 (Gr. 0&8 luminance)++(#G. Color 3 (Gr. 0&8 } background)""(H. Color 4 / Fifth player''(I. Background (Gr. 0&8 border)(6-@  AP("6A }6-B2e% A6-BB A'(}Select Pm to move:' A( A. Player 0( B. Pl }ayer 1&( C. Player 20( D. Player 3:( E. Missile 0D( F. Missile 1N( G. Missile 2X( H. Miss }ile 3b(6-@ AP("6A g6-B2G% AlA@v'((Value of constant' AP }((Memory location3 6- A 4X) A&3 A 4*"@6-$7<,4- }6.7,6-< B)@:,!@G*@:, @X26-A:,< A 7<,0$A B 6--B:,(6-@ }:7,,&@H4!@ B6-&@6-$@% 6-AV& A $' 6- A }6-' A B2HA0(0(%Can't INC/DEC a Hardware register!/(/($HINT: INC/DEC a memory } location, and ++(# then change the hardware register**(" to the value stored in memory on "( the next step." } A@*2!BsC((Can't change ROM!2 A4!A> "(}Add: APH( }Change to }:R& A (A. A constant&6-\8&(B. The value in another memory8( locationf4 "*.(C. The value }of the last step46-p AP"6A0u "6-6A Az"A 01!B2e* B2u }*"' A1 A P 6- A # )!AU&(F(Value out of range (0-255).P A L 6-B:, 67%, }.>:Ai,467%@,.>:,B6-&AL A P86-@ A 6-%6-/ A86-B:,367%,.> }:As,%67%,.>:,367%,.>:,A2((Add this to which"6-, A 26-K((Clear carr }y?Y!)((>:,4@xK67B:,%,.>:@$,G((inary or BC?B#)*(>:,G67B:,%,.7%+"@h,, }L 6- A6-B:,067%,.>:A ,>67%,.>:,L67%,.>:,, 6- A6-B:,,67%,.7<, }67%,.>:,67%,.>:,5 6-B:,67,.>:&,'67%,.B5"A " 68,-6-%"!A " 68,- }6-%""A  68,-68&,-6-%( }Select: A((( A. Add another step to this DLI }(B. Do another DLI (C. Save this DLI & Quit$(D. Re-do this DLI.(E. Re-do all DLIs3(X. List DLI }s entered8. 6-6-%+ , AP."6A ="AB"ApL " %V67B:,%,." }AP`8 6-B:,67%,.'67%,.>:&,867%,.>:B:,,j67%,.t67B:,,.AB A`~% "67,.7 }@,% A67B:,%,.67B:,%,. A ;(#(Filename to list DLI to- A1; A@3 }7<,0:*7<,0:!6.*6.D:367,.BB @ ##(11000 DIM DLI$(B: },)M-P:+B:,&,'@@,-6-$@@%;6-%@9D!B:,M6-B:,1(B%% DLI$!1(( })-)(=>:@4,7<,>:@4,- -( 11095 RETURN-( 11100 DATA # -(,8, }#( O (( NEW and then?(ENTER >:@4,>:@4,L( to use.O0@@'-((# Stp  })0$$(}Choose a color:$ A((A. Black/White2(B. Brown/Yellow<( C. OrangeF( D. Red/Oran }geP( E. Red/PinkZ( F. Purpled(G. Purple-Bluen(H. Bluex(I. Blue( J. Light Blue( K. Tur }quoise( L. Green-Blue(M. Green(N. Yellow-Green(O. Orange-Green(P. Brown/Yellow(6-@ } AP("6A6-@$+&,&(}Select Luminance:& A(A. 0 Very dark( B. 2 } .( C. 4 .( D. 6 .(E. 8 ( F. 10 .( G. 12 ."(H. 14 Very light,( }6-@ AP("6A66-%%&$h7(-(Error - F:A, . Try again.7 Ar( Your cho }ice? B|DA!A@d()3"@:X,:6-6D A&#6-&@d# )!A` (> }:, $'6-P:'AV,$6-&$AV'$''(}Select type of Display List:""(A. Standard BASIC GRAPHICS++( }#B. Custom (self-made) Display List! 6- AP!&A "A!4( A 0(Which GRAPHICS mod }e (0-31)4P5+ )!@1,)"@)+!@$* @(,F( Bad Mode!P A '#A"%"'6-+  }A ,_ (2(#Enter 'T0' to put DLI change on top\(%of text window,'T1' for next line,etc_(;(.(#Enter first }mode line to be changed1(;68,-6 -(by DLI #F A e6-A:, !<(Lowest line = ! }F A B 6-%"6- "6-6-%$+!,C8&,9(&DLIs must be entered top to bottom!C } A B  68,- $% A %7<,0T)(A E6-A:7,, )!;(Text lines range from 0-3!E } A B6-%  6-%& A U%( Bad input! A B4<(/($Enter byte of DLIST to put each DLI: }2(<68,-6> -(DLI #H A! R 68,- ( B\$23,999,99919,25,999 }9,15,99919,25,99939,45,99939,45,99979,85,99979,85,999159,167,94191,999,94191, }999,94191,999,9419,25,9999,15,999159,167,94159,167,9423,999,99911,999,99923,9 }99,99947,999,99947,999,99995,999,99995,999,999191,999,9423,999,99911,999,9991 }91,999,94191,999,94 Change,2 Add PEEK,3 Increment,1 Decrement,1 Wait for next line,0  6-% } @"$ &([More])6-#(&$( ,( }Dli so far:6- 6-&6-,6-2 0 6-%((Dli # }:&6-%0 A%7 + 6-%6-@:7,,+"@eA&< 3"@f()(RTI; Press a key:0)3$A #A% }%@ $"F (  (A&K , 6-8,6-% A', A&P 9 (to 6-8,6-%# }/(PEEK 9 A&PR &"6A(above & A&PU (%A Z  A&_ C( A%(( Pla }ce result in 16-8,96-%C A' ( A% A& ! #A' ! B2HA'  "(A' } "*"6A'  )!A' / 6-&6-B:,!67%,. /67%,.=:,  ( $  ( $  }53248,53251,H. pos. Player !!53252,53255,H. pos. Missile 53266,53269,Color Player 53270,53274,PF color 5428 }1,-1,Character set 0,0,x 6-6.""6A@067B:,%,.>:, 6-% A@,"%) }(Data error in line ,& 6-%$++72,173,0,1,238,0,1,141,10,212,-1,5848104,64,-1,5173141,141,238,206 },-1,5736216,248,-1,5479201,32,208,-1,5461169,0,141,0,1,-1,5336'AY#B"'%%6-F:A` },%AV$F:Aa,$'( -"$%F:%,%A(( .'B6-P:C:,'AV,*6-C:,&$AV6ABA }8'6BBA!AV3AY@46$ D:DLIMAKER.2AV,*6-C:,&$AV6ABA M@+d?+0@<(" BACKUP 130XE by Wi}lliam W. Tan?(nR-AAd"!% F6-AV$+F:AE,%@,R6-B@x='(INSERT SOURCE DISK, }PRESS START36-@= A@L(/($INSERT DESTINATION DISK, PRESS START;6-@E A@I+L F:B2y,}@A@+"@+AT@D:AS26-?:A<<@<A <,@-@V}A%%@$6-?:A<<A!%A%$<A%<Bc, $[[104,104,104,141,2,3,104,141,11,3,104,141,}10,3,104,133,204,104,133,203,104,141,5,3,104``141,4,3,32,83,228,173,4,3,24,105,128,141,4,3,173,5,3,105,0,141,5,3,238,10,3},208,3,238,11,3''198,203,208,224,198,204,16,220,96 D:BACKUP.BAS,24,105,128,141,4,3,173,5,3,105,0,141,5,3,238,10,3KCCSTTLLA`@?P } 6-A`6-@6-?P APLOT X,Y'@w(+6-$+&?P},%!6-&$+ @`2 ,<$d A`n1 +@$'0@1@x%-@@}! A@% ! @@ A`! A0FUNCTION OF X,YX,Y TIMES L5 6-6-6-$&$'6-$%$}56-@&SQUARE ROOT OF X,YK 6-6-M:$%$,06-M:O:+&,'@,,86-&D K6-666-M:O }:+%,'@,,#6-%/ 66-6 6-6&H:, ?P6-6&6-6-6-@&6- }'@-6-'@@w$GET VALUES4 (} (FABULOUS FRACTIONS4(By Alex Leavens },)(!Exclusively for ANALOG Computing.,("((( Please input values for X and Y.,.+(#X and Y do not have to be integers }..(@(Please enter X,YJ6-$%$T6-@$'^6-6@$'h"(How big is the window"r }6-+%,'|Q&(O.K.! Screen will go black...9(Please wait...M-@AQ $D:FRACTALS.BASr{12//DSDATHEXLINDATLIDDBYTPASCHKSUTOTAIN@} *** INCOMING ***I @ 1(MAKE CASSETTE (0), OR DISK (1)5}I!@@ C BC0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,10,11,12,13,14,15(r;@,9@",/-}@"3"<68,-@ L6-A V#A` A r( CHECKING DATA286-%@(LINE:!"8B:,@}A <F%6-F:A,%F:A,$AV+C(LINE  MISSING!FFq-@@@56-@:7<,,&@}H[6-@:7%@<%@,,&@Hq6-8,$@%8,P."@*@ $". @PZ% 6-%}!A %6-&Ad  ""@Pn A x F:A,@A "Ap(}A`*@A$)*@@<*@A%O*@@b*@A!u*@@T}@<-@@#**@. 9@<(Ag+("INSERT DISK WITH DOS, PRESS }RETURN8;@,<g@@ D:AUTORUN.SYS*@AU)*@AU<*@}O*@@Db*@Au*@@a A{((READY CASSETTE AND PRESS RETURNH@@}A(C:R#A0f-@@@j"w*@{ M(( WRITING FILE#6-@/6-A 9#A}C A M @P(BAD DATA: LINE ``0,36,216,43,255,43,169,0,141,47,2,169,60,141,2,211,169,0,141,231,2,133,1}4,169,56,141,232,2//133,15,169,121,133,10,169,54,133,11,24,96dd0000000000696E636F6D696E674141000000000000000000000048}634900111918150000000000000000627900,532dd00636F6E7261640074617467650000F3E5ECE5E3F400696E697469616C006C6576656C707265737}300F3F4E1F2,897ddF400746F00626567696E00686967680073636F72651A0000000C00000000000000000067616D6500006F766572,733dd0000}00000000696E636F6D696E670000000000000000004100707070C6D13C4D00600D0D0D0D0D0D0D0D0D0D0D,769dd0D8D0D0D0D0D0D0D0D0D0D0D0D0D0}D8D0D0D0D0D0D0D0D0D0D0D0D0D0D8D0D0D0D0D0D0D0D0D0D0D0D0D0D8D0D,866cc0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D }0D0D41A02CA9008580A9608581A200A5809D,81$ddFD40A5819D5341E8E056F010A5801869288580A581690085814C0B2D60A90048209C2D68A0279180!}8810FB60A2,118.dd55202B2DCA10FAA253A9FF202D2DE8A9FF202D2D60A206A9009D01D2CACA10F960A27FA9009D805D9D005E9D80,2988cc5E9D0"}05F9D805FCA10EE60BE5940209C2DB91D402918AA980AA8A906858C18BD173D9180C8BD373D9180986927,87BddA8E8C68CD0EC60BDFD408580BD53418#}58160A683209C2DA582484A4AA8682903AAB1806020A72D3DCA2D918060,680Ldd030C30C0FCF3CF3F3FCFF3FC20A72D3DCA2D1DDA2D91806040100401$}C0300C0320A72D3DDE2D488A4903AA68CA,352Vdd30054A4A4CEE2D6020E22DC9029043A8A5824A4A4AAAA58338E906DD6D40B02FC003D01BA9019D1D4%}0A5974A4A,102`dd9D45409D3140A905205F33A90985C94C3E2E205530A5828584A5838585A90720AC2EA9006020CE2DA90160C6A0,595jddF00160&}A5A185A0A20F868EBDAD3FF045BDBD3F8582BDCD3F858320B92DA68EBDDD3F1865879DDD3FBDBD3F6586,583tddC9A0B02B9DBD3F8582BDED3F1865899'}DED3FBDCD3F6588C955B0149DCD3F858320F72DA68E9DAD3FC68EA68E10,597~ccB060A9009DAD3FF0F2858CA68ABDAD3DF005200C2FA68AAD0AD2259E(}9D6D3FA5849DED3DA5859D2D3E20062F9D,26dd6D3E20062F9DAD3EA9009DED3E9D2D3F20062F259D9DAD3DE68AA58A293F858AAAC68CD0BBA90F85A9)}A903859E,132ddA907859CA93F859D60AD0AD2059C60BDED3D8582BD2D3E858320B92D60C69AF00160A59B859AA23F8696BDAD3D,761ddF023200*}C2FA696DEAD3DF019BD6D3E187DED3E9DED3EBD6D3F2901D00BBDED3DE9004C572F4C912FBDED3D6900,840ddC9A0B03F9DED3D8582BDAD3E187D2D3F+}9D2D3FBD6D3F2902D008BD2D3EE9004C7E2FBD2D3E6900C955B0189D2D,591dd3E858320F72DD005A6969DAD3DC696A696300A4C272FA9009DAD3DF0F,}06099165E99245E99325E99405E609996,740dd5E99A45E99B25E99C05E6099165F99245F99325F99405F6099965F99A45F99B25F99C05F60A599C599-}F0FC60A2,655cc08A90095C4CA10FB60868D8A0AA8BD5940AA209C2DA9009180C8918088A68DFE5940BD5940DD6D409045BD1D40,74dd2908D01D.}205530BD6D40DD8140F038BD6D401869059D6D409D59402055304C5230BD6D404838E9059D6D40A918,355dd9D1D40203A34A68D68DD8140D007C94DF/}003200E34A48D20732DA68D60868FA9109D1D408AA820732DA68FA900,994dd9D1D408A0A0A0A1869038584BD59401869038585A90A20AC2EA906205F0}33A90C85C4A68F60A90085A885AAA213,200ddBD1D402901F038E6A8BD1D402908D009BD5940C5AA900285AADE3140D021BD45409D3140BD5940C591D1}011A909,179dd9D1D40A5979D45409D3140A90585CA20E72FCA10BEA5AA85C660A90085A4A5B6C902D004A207D006A5924A0901,300ddAA8690202}C631A690BDA140DD9740D028A5B5F02420BD31B01FA5B6F073C902F017BDBF4038E930C990B00DA592,328 cc4A4AAABDDD40F006CA10F84CAF31A490B3}9A53DD96D40B0F348204432681869149DED40A9009DF1409DF54095BC,27ddAD0AD229031869029DE9409DE540A490B9BF401869049DE14038EDC74024}907F009A9002A4901A8B9583D9DF940,936ddFEDD40A90585CBD033BDBF4038E9284A4A4AAAE014B025BD1D402901D01EA490B9A53DDD6D40B0149D595}40A597,363(dd4A9D45409D3140A9019D1D4020E72FC6903005A6904CEF30A5A485A560AD0AD20D0AD2C59560BDC940F053E6A4,7572ddDE9740D026}1BDA1409D97408A2901A8B9583D187DBF409DBF40D00BA5B6C902F055A9009DC940A5B6C902F04ABD,457<ddD3401045BDBF4038E9288584BDA53D85857}A9009DBF409DC940A91920AC2EA906205F3360A5B5F021A599290FD0,633Fdd1B20BD31B016AD0AD2290F18658B9D97409DA1404A4A9DD340FEC94060B8}DED40A888205F32205F32205F32205F,242Pdd32205F32205F32205F3260B9805D3DC62D99805DC860B9805D1DC22D99805D60C6B1F00160A5B085B1859}B1A900,285Zdd85AAA20386B2BDDD40D0034C3A33B5BC290EF030BDE14038E92D4A4A4AAAE014B014BD6D40DD8140F00F186905,456ddd9D6D409D5:}9402055304C28338AA820B533A91985CBD063B5BC2901D043FEF140BDF140187DF5409DF540901AFE,922nddED40BDED40A8C5AA900285AA205F32BDED;}40186904A8206A32DEE540D041BDE9409DE540BDF940187DE140C930,766xdd9004C9CA9029BDE14038E92D8584BDED4038E9148585A91420AC2EA9052<}05F33A900A6B29DE1409D04D09DDD40,205dd95BC9DE140C6B23005A6B24C8732A5AA85C660A5C105C0F02CF8A5C138E90185C1A5C0E90085C04C6B33=}F81865,367ddC185C1A5C0690085C0A001A204B9C000209333CA8810F6D860E692A592290F85920A0A0A0A85BB8DC802A492B9,739ddA533A2134>}8290F209E33684A4A4A4A09509DD13CCA600102030405060708091011121314151698203334F02DB9,653dd8140CDAB3D902548AA209C2D6838E90699?}8140996D40AA980AA8A20518BDE9339180C89180986927A8CA10F160,939ddC3C3FFC3C3FFA205AD0AD2291FC914B0F7A8B96D40C94DD0EF8E093420B@}533A200CA10E460A90685AD85C560A2,996dd13A000BD8140C94DF008C8DD6D40F0028888CA10EE881004A90185B760C909F002C90A608A203334D0F9A}86B786,325cc93A90085B58DC740A901859EA907859CA9FF859DA94F8584A9508585A9204CAC2EA90285B68593A90085B520DD,24dd2F20502DA2B}7F9D805DCA10FA8DC740A904859BA91385B9A6B9BD6D40C94DF01618690385858A0A0A0A69038584,926ddA901859EA90320AC2EC6B910DD302A204B3C}4A9808599D028AD0AD2297F18691085828584AD0AD2293F85838585,770dd20E22DC902B0E4A91020AC2EAD0AD20901859920D62FAD1FD0C907D01620D}1A2FA59910EFAD0AD20D0AD24AB0BE,691dd4AB0894AB0AFA90A859B204B34204B34204038A97885AB8D7736A5C0C5C2901CA5C1C5C3901685C3A5C08E}5C2A2,357cc05BDD13C9D712CCA10F7A9648D77364C0437A90085B5A90120FD39A5922901208A38A5B60A0A0AA8A207B9FF35,98dd9D962CC8CA1F}0F6A98C8D7736200F3620DD2F20502DA980859920D62FA599F00B0A0A0A490FF0F285C6D0EE85C6,447dd200F36A692BD7B3D8595BD6B3D858BBD5B3DG}859B859A8A4AAABD8B3D8597BD933D85B085B18A4AAABD9F3D8591,200cc8A4AAABDA33D85A185A0A900A2139D1D40CA10FAA2039DDD409DE140CA10FH}7A20F9DAD3FCA10FAA23F9DAD3DCA,24dd10FAA2079DC9409DBF409DD340CA10F4A2078A18690605BB49F09DB540CA10F2A900858A859360737265707I}06F,477"dd686373656C747475687320D62FA5A2490685A2AAA005BD6D3699E42CE88810F6A5A2F01AA207AD0AD2297F1869,760,dd379DBF40AD0AJ}D2290F090A9DB540CA10E860ADE52CC5AB900A200E34A9008DE52CF017A21320D62FEEE52C8A29,7196dd010A0A0A8D01D28E00D2CA10EB600D0D0D0D0K}D0D6A004D2C0046A9008D2F028D08D2A24C9580CA10FB2065E420,473@dd012D203A2D205C2D206B3320FB39208C33201A3A20F92EA95085ABA905859FL}A9018593A9698D0002A9398D0102,275JccA9A08D3002A92C8D3102A95C8D07D4A9038D1DD0A9118D6F02A23AA035A906205CE4A205BD113D9D615ECA1M}0F7,18TddA9C08D0ED4A9008DC402A9CE8DC502A9428DC602A92E8D2F02A9008D7736A90085B785B885B520502D20DD2FA9,175^dd348DC702A207AN}D0AD2290F09039DC9409D97409DA140CA10EDA902208A38200F36A207BD54399D975DCA10F7A9,862hdd008599AD0AD2297F18693AA203189DE1406902O}CA10F88D1ED020D62FAD1FD02902D017A93C8DE52CA900859920,592rdd7B33A91085C8AD1FD02902F0F9AD1FD029012D8402F00FA599297FD0CF20443P}64C59374C0437A90085C085C120,378|dd6B33200F36AD1FD04A90FA203A2DA97D8DC740A9068594A900A2079D975DCA10FAA92E8DC702A213A94D9D6DQ}40,327dd9D8140CA10F7A947A2019D76409D8A40CA10F720EF33203635A90185B5AD1FD0C907F008A93C8D77364C043720,231ddD93020472E201R}A2FA5B6D009208A30205D384C1338207432A5B8F0034C6434A5B5D0CDA2031DDD40CA10FA05A8,761cc05A4D0BFA90A859B85A18593204038201534A5S}B7D006207B334CDD374C643420472E201A2FA900A20F1DAD3FCA,42dd10FAA23F1DAD3DCA10FAC900D0E460C6AFD028A91785AFA5AE186901290385AET}AAA000BD4C3920A22FBD503920,189ddAF2FBD443920BC2FBD483920C92F6085B6A8BEB138A000BDCC3820A22FBDD83820AF2FBDB43820BC2FBDC0382U}0,318ddC92FE8C8C00C90E260003060070000C0FF3F070100000001FF2078E4E2E2E2E2FC7811FEFF041E27474747473F,195dd1E887FE0000003V}FFFCE08000000080E0F0F0F8FC7E7FFFFFFFFC7B000000000000F8E4FEFF1FEC000000000000,551dd1F277FFFF837070F0F1F3F7EFEFFFFFF3FDE000W}00000000C1F1F0F3FFE0000003078FDFFFFFEFFFFEC0000000C,216dd1E5FFFFF7FFFFF3700000000000030F8F8F0FC7F0004060301711C06C38EC360X}382080C0603C7EFFFFFFFF7E3C,391ddA203BD00D015BC95BCCA10F660488A489848D8A698A000B904D01905D02901F00EDED140BD9F4085CC38E9029Y}D,882dd9F40E8C8C8C00490E1205C39A59818690205BB8D0AD48D1AD08D1ED0A698A000BDB5409912D09913D0BDBF4099,508dd00D0186908C899Z}00D0E8C8C00490E48698E006A5B32A290385B3490385B4A203A5B30A0A05B385B3CA10F58D0A,700ddD48D0CD0A20318BDE14065B49D04D0CA10F568A[}868AA6840A90048A205A900202E3ACA202E3A202E3ACA68202E,338cc3A60ADDB3C495A8DDB3CADDE3C494E8DDE3C60DEDA3CBDDA3C290FC90A600950\}9DDA3CCA60D8A900859885B3E6,16cc99A5B5F03DC694D039A9068594A20520233A902EA909202E3A20123ACA20233A9020A909202E3A20233A9016A9]},64dd05202E3ACA20233A900BA90085B520FB39A93085C8A5992903D044AD78024A4A4903AABD573D1865A3C90BB032,450&dd85A3AA0A0A0A0A09^}088DBD40BDA53C8587BDB03C8586BDBB3C8589BDC63C85888A0A0AA8A203B9E53C9D5D5EC8,6720ccCA10F63053C69FD04FA905859FA593F00CA5B6C90_}2D04120D9304C1C3BAD8402D036854DA20FBDAD3FF008CA10,71:ddF88EBD403025ADC74049018DC74038E92C9DBD3FA94D9DCD3FA9009DDD3F9DED3FF`}EAD3FA91085C7204833A203,520DddA5B81D08D0CA10FA290185B8205C398D1ED0A5992903F013A5C7F009C6C7A5C78D00D209208D01D24C623BA5A9,8a}07NddF0F68DC40209408D01D2AD0AD2291F1869288D00D2C6A9A5C5F039A5992901D03FA5AC09A08D03D2C6AC1034C6,195XddAD100AA90085C585Ab}C85ADF01AA6ADBD993B8D02D2A205C93CD002A20A86ACD0123C483C485B79A5C6F0058D02,432bddD2A9A88D03D2A5B638E902F043A5CCF00E8D04D2A9c}A88D05D2A90085CCF034A5A5F02DA5B6F014A5A54809C08D,713ldd05D2680A0A0A1869788D04D2D018E6A7A5A7290F85A7AABD853C8D04D2A5A5187D9d}53C8D05D2A9008D07D2A5CA,828vccF00FAABD7E3C8D06D2BD783C8D07D2C6CAA5C9F00C8D06D2AABD6E3C8D07D2C6C9A5C4F00FAABD643C8D06D2BD,5e}4dd5A3C8D07D2C6C4A5CBF00D0A0A0A8D06D2A9A68D07D2C6CBA5C8F010A9508D06D2C6C8A5C8290F09A08D07D24C,707dd5FE4A3A4A5A7A9A8A7f}A6A8AA0406090B0F0C110D130E0C0A08060504030202014547494B4D4F0A0E12161A1E0A,444dd0B0C0D0E0D0C0B0A090807060708090302010003020g}10002010002020001001F234C80BE004280B4DDE1FFFFFF,659ddFFFF000000000000BE804C231F001F234C80BEFFFFFFFFFFFFFFFFFFFFFF00004C00q}BHDOS SYSB*LDUP SYSB:vCOLORBARBASBMDLIMAKERBASBBACKUP BASB FRACTALSBASB_INCOMINGBASB"vDEMO BASB VBISUB LSTBsAIRHOCK ACTB$PSFCONV BASB8PSFLOAD BASB>AUTORUN SYSB@MENU B;TAIRHOCK COMBPRIME BASBPRIME LSTBTEMP LSTB-ASSEM SG1005000000000005A00004E,218dd0000000000F8F8000078F040003870600038707020383870703838383838381C1C381C1C08381C0C003C1E0400,75r}2dd3E3E0000387C7CFEFEFE0000022A022800000F3F302A0228000000000000000000000000220A02280000000080,452ddA880280000F0FC0CA8s}802800000000000000000000000088A08028000000FF0100465A41505050504650505A50,293cc28461E32461E411E322D28231E1915120E0B08050A1t}41E1E282832323C3C4646505A646EFFC0B0A09070503023,92dd1E19140F0A0503BF3F1F1414222C36120B08081616242432320000000000000000000u}000000000000000000000,918* 4545 BYTESD:INCOMING.BAS0503BF3F1F1414222C36120B08081616242432320000000000000000000B0;MCHSE$$6-?:AG<@<@<,V +A1AR@w}CAYP(>:A%,S(V(())(! 2))(! |& & & & & & & & & & & & & & &|x}<))(! |  |F))(! |&| |&|P))(! | | | |Zy}))(! |&| A LITTLE ANIMATION |&|d))(! | | | |n))(! |&| CAN REALLY SPICE |&|x))z}(! | | | |))(! |&| UP A SCREEN! |&|))(! | | | |))({}! |&| |&|))(! |  |))(! |& & & & & & & & & & & & & & &|;)(! |} ;AY@4--@A -AY1$6-?:AG<@<@}}<,1(>:A%,--(%--(%|(((((((((((((((((((((((((((((((((((|--(%|(~}(|--(%|(|''''''''''''''''|(|--(%|(|'''''''''''''''|(|--(}%|(|''|(|--(%|(|'|'''''''''''''''''''''''''|'|(|--(%|(|'|' '|}'|(|"--(%|(|'|' COMBINING ARTIFACTING '|'|(|,--(%|(|'|'WITH MULTIPLE CHARACTER'|'|(|6--(%|(|'|' SETS CAN YIE}LD '|'|(|@--(%|(|'|' SOME STRANGE EFFECTS '|'|(|J--(%|(|'|' '|'|(|T--(%|(|'|'''''''}''''''''''''''''''|'|(|^--(%|(|''|(|h--(%|(|''''''''''''''''|(|r--(%|(|}'''''''''''''''|(||--(%|((|--(%|(((((((((((((((((((((((((((((((((((|}?-(%?AY@4-@A v +@AY1A}R@CAAfUAAv6-?:AG<@<@<,a-@@2(@$ $ $ $ }$ $ $ $D-@@a(@z z z z z z z za-@@2(@ D-@@a(}@ >(,(! SOME SIMPLE FOUR-FRAME ANIMATION>AY@4-@A 1 +@}AY1AR@$$6-?:AG<@<@<,-@8(@#############}######< P-@@"\-}(@################### [-@@.(@ נԠ}@-@@[(@ ΠD-@@2(@ŠǿDAY@47-@}A -AY7 @ y!!******* FONT 1 DATA *******"y##3,0,126,102,102,102,102,126,0,y 4,56,56,}16,56,84,186,40,406y5,0,0,0,135,252,48,48,0@y6,0,0,0,24,60,24,0,0Jy%%7,84,170,254,170,170,254,170,84Ty''8,170,170},170,170,170,170,170,170^y49,0,0,90,184,60,36,36,0hy 56,36,36,60,52,44,60,36,36ry 58,0,126,66,90,90,66,126,0|y-}1y!!******* FONT 2 DATA *******y3,63,51,51,51,51,63,0,0y 4,56,56,16,254,16,56,68,68y5,0,0,0,135,252,0,0,0y}6,0,0,60,126,126,126,60,0y!!7,42,85,127,85,85,127,85,42y8,85,85,85,85,85,85,85,85y49,0,0,219,60,60,36,66,0y} 56,0,102,60,44,52,60,102,0y((58,255,129,189,165,165,189,129,255y-1y!!******* FONT 3 DATA *******y##3,153,153},153,153,159,0,0,159z""4,186,186,84,56,16,56,68,130z5,0,48,48,183,252,0,0,0z%%6,60,126,255,255,255,255,126,60:z }49,0,129,90,60,60,165,66,0Dz56,0,0,255,52,44,255,0,0Nz 58,0,126,66,90,90,66,126,0Xz-1bz!!******* FONT 4 DATA **}*****lz##3,204,204,204,207,0,0,207,204vz 4,56,56,16,254,16,56,68,68z5,0,0,0,135,252,0,0,0z!!6,0,60,126,126,126,1}26,60,0z##49,129,129,90,60,189,165,66,0z 56,0,102,60,44,52,60,102,0z((58,255,129,189,165,165,189,129,255z-1z}!!******* FONT 5 DATA *******z&&3,102,102,231,0,0,231,102,102,-1z!!******* FONT 6 DATA *******z""3,51,243,0,0,243,5}1,51,51,-1z!!******* FONT 7 DATA *******{&&3,249,0,0,249,153,153,153,153,-1 {!!******* FONT 8 DATA *******{&&3,0,0},252,204,204,204,204,252,-1 D:LISTING104,252,-1,153,153,153,153,-1 {!!******* FONT 8 DATA *******{&&3,0,0>10 NUMSETS=8:GOSUB 3000030000 FOR X=0 TO 85:READ A:POKE 1547+X,A:NEXT X30010 DATA 104,104,104,141,8,6,104,104,141,10,6,160,!}0,104,153,0,6,200,204,8,6,240,5,24,10530020 DATA 4,208,242,104,169,0,141,9,6,133,20,169,7,162,6,160,57,32,92,228,96,72,138,7!}2,16530030 DATA 20,205,10,6,208,24,169,0,133,20,174,9,6,189,0,6,141,244,2,232,236,8,6,208,230040 DATA 162,0,142,9,6,104,170!},104,76,98,22830050 REM * 86 BYTES30060 REM ******* LOAD CHAR SETS*******30070 POKE 106,PEEK(106)-NUMSETS*4-1:GRAPHICS 0:C!}HSET=(PEEK(106)+1)*256:? "ONE MOMENT"30080 CHI=CHSET/25630090 DIM XFR$(28):RESTORE 30100:FOR N=1 TO 28:READ ML:XFR$(N,N)=CH!}R$(ML):NEXT N30100 DATA 104,169,0,133,205,168,169,224,133,206,177,205,145,203,200,20830110 DATA 249,230,204,230,206,165,206!},201,228,208,239,9630120 FOR X=0 TO NUMSETS-1:POKE 203,0:POKE 204,CHI+X*4:XFR=USR(ADR(XFR$)):NEXT X30130 RESTORE 30180:FOR !}X=0 TO NUMSETS-130140 READ A:IF A=-1 THEN NEXT X:RETURN 30150 FOR Z=0 TO 7:READ J:POKE CHSET+(1024*X)+A*8+Z,J:NEXT Z30160 !}GOTO 30140ETS-130140 READ A:IF A=-1 THEN NEXT X:RETURN 30150 FOR Z=0 TO 7:READ J:POKE CHSET+(1024*X)+A*8+Z,J:NEXT Z30160 ; ================; = Air Hockey =; = by =; = Chris Page =; ================; Copyright (c) 1985 ANALOG C%}omputing; Special Thanks to:; David Sullivan & David BeckerDEFINE OPTION="3",SELECT="5",START="6", NONE="7",LEFT="96%}",RIGHT="60", TOP="56",BOT="144"BYTE NINDEX,VOLUME,FRICTION=[1], BOUNCE=[90],WIN=[10],PLAYERS=[2], HUE,LUM,OPT,PUCK%}XD,PUCKYD,HITFLAG, SERVER,GAMEOVER,SERVEIT,SDMCTL=559, CONSOL=53279,CHACT=755,WSYNC=54282, VCOUNT=54283,CRSINH=752, C%}OLOR0=53270,COLOR1=53271, COLOR2=53272,COLOR3=53273, COLOR4=53274,RTCLOK=20, DMACTL=54272,LMARGN=82,RMARGN=83, CHBAS=%}756,PMBASE=54279, HITCLR=53278,P2PL=53262, GRACTL=53277,GPRIOR=623, RANDOM=53770,COLPM0=53266, COLPM1=53267,CH=764,RA%}MTOP=106, AUDCTL=53768,ATRACT=77,KEYBYTE ARRAY DLIST,SCRMEM,RAMFONT,PMMEM($800), BAR(0)=[$FF$FF], PUCK(0)=[$60$F0$F%}0$F0$F0$F0$F0$60], TTOP(0)=['Q'R'R'R'R'R'R'''''R 'R'R'R'R'R'E], TMID(0)=['R'T'T'T'T'T'T'T'T'T'T'T %} 'T'T'T'T'T'R], TBOT(0)=['Z'R'R'R'R'R'R'''''R 'R'R'R'R'R'C], NOTE(0)=[243 243 217 243 204 243 %} 193 204], YTOP(0)=[6 80],YBOT(0)=[62 144], SCORE(2),PDLX(2),PDLY(2),OSTIK(2), ROMSET($400)=$E000,HPOSP(4)=53248, HPO%}SM(4)=53252,PCOLR(4)=704CARD PUCKXV,PUCKYV,PUCKX,PUCKY, MAXV=[500],DLISTL=560,SAVMSC=88, XITVBV=$E462; --- Miscell%}aneous Procedures ---PROC SETVBV=$E45C(BYTE CMD,VBIHI, VBILO)PROC VBI(); VBI to play music SOUND(0,%}NOTE(NINDEX),10,VOLUME) SOUND(1,NOTE(NINDEX)-2,10,VOLUME) VOLUME==-1 IF VOLUME=0 THEN VOLUME=15 NINDEX==+1 %}IF NINDEX=8 THEN NINDEX=0 FI FI; JMP XITVBV [$4C XITVBV]RETURNPROC INITVBI(); Initialize music VBI NIND%}EX=0 VOLUME=15 SNDRST() ; set deferred vbi vector SETVBV(7,VBI RSH 8,VBI)RETURNPROC DEBOUNCE()CARD I; Debounce c%}onsole keys FOR I=0 TO 5000 DO DO UNTIL CONSOL=NONE OD ODRETURN; --- Title Screen ---PROC INITTITLE()%}BYTE I; Initialize title screen GRAPHICS(0) GPRIOR=17 GRACTL=0 SDMCTL=0 CRSINH=1 HUE=0 DLIST=DLISTL DO %}UNTIL VCOUNT=0 OD FOR I=3 TO 5 DO DLIST(I+7)=DLIST(I) OD SETBLOCK(DLIST,10,$70) FOR I=13 TO 25 STEP 2 DO DL%}IST(I)=0 OD SETBLOCK(DLIST+27,2,$70) SETCOLOR(1,0,14) SETCOLOR(2,0,8) POSITION(11,0) PRINT("Air Hockey") POSITI%}ON(1,1) PRINT("By: Chris Page") POSITION(29,1) PRINT("Thanks: D.S. and D.B.") POSITION(17,2) PRINT( "June 30, 19%}84 - August 9, 1985") POSITION(7,4) PRINT("Copyright (c) 1984") POSITION(34,5) PRINT("Press ") SDMCTL=33RETU%}RNPROC TITLECOLORS()BYTE I; Mid-screen color changes HUE==+2 IF HUE&2 THEN CHACT==+1&3 FI FOR I=0 TO 30 DO %} DO WSYNC=0 COLOR4=VCOUNT LSH 1+HUE IF VCOUNT=48 THEN COLOR1=0 FI UNTIL VCOUNT&128 %} OD ODRETURNPROC TITLE(); Display title screen INITTITLE() INITVBI() DO TITLECOLORS() UNTIL CONSOL=STAR%}T OD SDMCTL=0RETURN; --- Game Options ---PROC INITOPTIONS(); Initialize procedure OPTIONS() GRAPHICS(17) SDMCT%}L=0 GRACTL=0 DO UNTIL VCOUNT=0 OD DEBOUNCE() SCRMEM=SAVMSC DLIST=DLISTL DLIST(3)==+1 SETCOLOR(0,3,14) S%}ETCOLOR(2,0,14) PRINTDE(6," GAME OPTIONS") POSITION(0,2) PRINTD(6," - NEXT OPTION") PRINTDE(6," - CHOO%}SE") PRINTDE(6," - PLAY GAME") POSITION(3,6) PRINTD(6,"FRICTION: O") IF FRICTION THEN PRINTD(6,"N") ELSE%} PRINTD(6,"FF") FI POSITION(3,8) PRINTD(6,"VELOCITY: ") PRINTBD(6,MAXV/100) POSITION(3,10) PRINTD(6,"BOUNCE :%} ") PRINTBD(6,BOUNCE/10) POSITION(3,12) PRINTD(6,"WIN AT : ") PRINTBD(6,WIN) POSITION(3,14) PRINTD(6,"PLAYERS : %}") PRINTBD(6,PLAYERS) SDMCTL=34 OPT=0RETURNPROC OPTIONCOLORS(BYTE OPT); Mid-screen color changes; OPT=option line%} to hi-light DO WSYNC=0 UNTIL VCOUNT=15 OD LUM=0 WSYNC=0 DO WSYNC=0 COLOR0=LUM&$0F%$20 LUM==+2%} UNTIL VCOUNT=25 OD WSYNC=0 COLOR0=0 COLOR4=6 DO WSYNC=0 UNTIL VCOUNT=40 OD COLOR0=$F8 OPT==LSH 3+%}41 DO WSYNC=0 UNTIL VCOUNT=OPT OD COLOR0=$FE DO WSYNC=0 UNTIL VCOUNT=OPT+8 OD COLOR0=$F8RETURN%}PROC OPTIONS()CARD I; Get game options from player(s) INITOPTIONS() DO FOR I=0 TO 10 DO OPTIONCOLORS(OPT) %} UNTIL CONSOL=START OD IF CONSOL=OPTION THEN OPT==+1 IF OPT=5 THEN OPT=0 FI FI I%}F CONSOL=SELECT THEN IF OPT=0 THEN FRICTION==!1 IF FRICTION THEN SCRMEM(134)=46 SCR%}MEM(135)=0 ELSE SCRMEM(134)=38 SCRMEM(135)=38 FI ELSEIF OPT=1 THEN IF MAXV=%}900 THEN SCRMEM(173)==-7 MAXV=200 ELSE SCRMEM(173)==+1 MAXV==+100 FI%} ELSEIF OPT=2 THEN IF BOUNCE=90 THEN SCRMEM(213)==-9 BOUNCE=0 ELSE SCRMEM(%}213)==+1 BOUNCE==+10 FI ELSEIF OPT=3 THEN IF WIN=90 THEN SCRMEM(253)==-8 %}WIN=10 ELSE SCRMEM(253)==+1 WIN==+10 FI ELSE IF PLAYERS=2 THEN SC%}RMEM(293)==-1 PLAYERS=1 ELSE SCRMEM(293)==+1 PLAYERS=2 FI FI FI U%}NTIL CONSOL=START OD SDMCTL=0 SNDRST()RETURN; --- Play Air Hockey ---PROC MAKEFONT()BYTE ICARD J; Change chara%}cter setBYTE ARRAY CDAT(8)=[$55$55$55$55$54$54$50$40], EDAT(8)=[$40$50$54$54$55$55$55$55], QDAT(8)=[$01$05$15$15$55$5%}5$55$55], RDAT(8)=[$55$55$55$55$55$55$55$55], SDAT(8)=[$FF$FF$FF$FF$FF$FF$FF$FF], TDAT(8)=[$AA$AA$2A$AA$AA$AA$A2$AA], %} ZDAT(8)=[$55$55$55$55$15$15$05$01] RAMFONT=(RAMTOP-8)*$100 MOVEBLOCK(RAMFONT,ROMSET,$400) ZERO(RAMFONT+536,192) CHB%}AS=RAMTOP-8 SDMCTL=61 FOR I=0 TO 7 DO FOR J=0 TO 3000 DO OD RAMFONT(536+I)=CDAT(I) RAMFONT(552+I)=EDAT(I) %} RAMFONT(648+I)=QDAT(I) RAMFONT(656+I)=RDAT(I) RAMFONT(664+I)=SDAT(I) RAMFONT(672+I)=TDAT(I) RAMFONT(720+I)=Z%}DAT(I) ODRETURNPROC POSPLAYER(CARD PLAYER BYTE X,Y,LENGTH BYTE ARRAY SHAPE); Position Pl%}ayer HPOSP(PLAYER)=X+LEFT PLAYER==*$100+$400 MOVEBLOCK(PMMEM+PLAYER+Y+TOP, SHAPE,LENGTH)RETURNPROC POSP%}DL(BYTE PADDLE,X,Y); Position paddle POSPLAYER(PADDLE,X,Y,2,BAR)RETURNPROC POSPUCK(CARD X,Y); Position puck X==/100%} Y==/100 POSPLAYER(2,X,Y,8,PUCK)RETURNPROC ERASEPDL(CARD PADDLE BYTE Y); Erase paddle PADDLE==*$100+$400 ZERO(P%}MMEM+PADDLE+Y+TOP,2)RETURNPROC ERASEPUCK(CARD Y); Erase puck Y==/100+TOP ZERO(PMMEM+$600+Y,8)RETURNPROC ERASEALL%}(); Clear Player memory ERASEPDL(0,PDLY(0)) ERASEPDL(1,PDLY(1)) ERASEPUCK(PUCKY)RETURNPROC INITPMG(); Initialize %}PMG PMMEM=(RAMTOP-16)*$100 Zero(PMMEM,$800) PCOLR(0)=$76 PCOLR(1)=$76 PCOLR(2)=$36 PMBASE=RAMTOP-16 GRACTL=3RE%}TURNPROC INITPLAY()CARD I; Initialize game GRAPHICS(0) SDMCTL=0 DO UNTIL VCOUNT=0 OD SETVBV(7,$E4,$62) S%}NDRST() DEBOUNCE() INITPMG() SCRMEM=SAVMSC SCORE(0)=0 SCORE(1)=0 OSTIK(0)=15 OSTIK(1)=15 SERVER=0 GAMEOVER=%}0 CRSINH=1 DLIST=DLISTL DLIST(2)=DLIST(3)+4 DLIST(3)=DLIST(4) DLIST(4)=DLIST(5) DLIST(5)=$30 DLIST(7)=$30 SET%}BLOCK(DLIST+8,21,4) SETCOLOR(0,3,6) SETCOLOR(1,0,14) SETCOLOR(2,0,4) SETCOLOR(3,2,14) SETCOLOR(4,0,6) POSITION(3,%}0) PRINTE("air hockey") SAVMSC==+16 POSITION(0,0) PRINTF( " One : 00 | Win : %B | Two : 00", win) MOVEBLOCK(S%}CRMEM+55,TTOP,18) FOR I=87 TO 663 STEP 32 DO MOVEBLOCK(SCRMEM+I,TMID,18) OD MOVEBLOCK(SCRMEM+695,TBOT,18) MAKEFON%}T() SOUND(3,0,0,3) KEY=0 CH=$FFRETURNPROC SERVE(BYTE PLAYER)CARD I; Initialize positions ERASEALL() PDLX(0)=2%}8 PDLX(1)=28 PDLY(0)=YTOP(0) PDLY(1)=YBOT(1) PUCKX=3000 PUCKY=4000+6800*PLAYER PUCKXV=0 PUCKYV=0 POSPDL(0,PDL%}X(0),PDLY(0)) POSPDL(1,PDLX(1),PDLY(1)) POSPUCK(PUCKX,PUCKY) HITCLR=0 HITFLAG=0 VOLUME=0RETURNPROC MOVEPADDLE(B%}YTE P)BYTE STIK; Move paddle ERASEPDL(P,PDLY(P)) STIK=STICK(P) ; move puck 2 for one player game IF PLAYERS=P THEN%} STIK=$F IF PDLX(1)+2PUCKY/100 THEN STIK==-1 ELSE STIK==-2 IF RAND(2) THEN STIK==+1%} FI FI FI ; save stick position OSTIK(P)=STIK ; move paddle verticaly IF (STIK&1)=0 THEN PDLY(P)==-2%} IF PDLY(P)YBOT(P) THEN%} PDLY(P)=YBOT(P) FI FI ; move paddle horizontaly IF (STIK&8)=0 THEN PDLX(P)==+2 IF PDLX(P)>RIGHT-4 TH%}EN PDLX(P)=RIGHT-4 FI ELSEIF (STIK&4)=0 THEN PDLX(P)==-2 IF PDLX(P)>240 THEN PDLX(P)=0 FI FI%} POSPDL(P,PDLX(P),PDLY(P))RETURNPROC REVERSEPX(); Reverse horizontal puck direction VOLUME=14 PUCKXD==!1 IF PUCKX%}V<(90-BOUNCE) THEN PUCKXV=0 ELSE PUCKXV==-(90-BOUNCE) FIRETURNPROC REVERSEPY(); Reverse vertical puck direct%}ion VOLUME=14 PUCKYD==!1 IF PUCKYV<(90-BOUNCE) THEN PUCKYV=0 ELSE PUCKYV==-(90-BOUNCE) FIRETURNPROC MOV%}EPUCK()BYTE PADDLE,XDIF,YDIF,STIK,ABOVECARD ARRAY XVELOC(0)=[400 140 100 80 40 0 40 80 100 140 400]; M%}ove the puck ERASEPUCK(PUCKY); check for paddle collisions PADDLE=0 IF PUCKY/100>70 THEN PADDLE=1 FI STIK=OSTI%}K(PADDLE) IF P2PL THEN IF HITFLAG=0 THEN VOLUME=14 ; new x velocity & direction XDIF=PUCKX/100+3-PDLX(P%}ADDLE) PUCKXV=XVELOC(XDIF) PUCKXD=0 IF XDIF>5 THEN PUCKXD=1 FI ; new y velocity & directi%}on YDIF=PUCKY/100-PDLY(PADDLE) ABOVE=0 IF PADDLE THEN IF PUCKY/100200 THEN PUCKYD==!1 FI%} ELSE PUCKYV==+200 FI ELSEIF PUCKYD=0 AND (STIK&3)=2 THEN IF%} ABOVE=0 THEN PUCKYV==-200 IF PUCKYV>200 THEN PUCKYD==!1 FI ELSE%} PUCKYV==+200 FI ELSEIF PUCKYD=1 AND (STIK&3)=2 THEN IF ABOVE THEN %} PUCKYD==!1 PUCKYV==+200 FI ELSEIF PUCKYD=0 AND (STIK&3)=1 THEN %} IF ABOVE=0 THEN PUCKYD==!1 PUCKYV==+200 FI FI FI FI HITFLAG=1 ELSE%} HITFLAG=0 FI HITCLR=0; move horizontaly IF PUCKXV>MAXV THEN PUCKXV=MAXV FI IF PUCKXD THEN PUCKX==+PUC%}KXV ELSE PUCKX==-PUCKXV FI; check boundaries IF PUCKX>24000 THEN REVERSEPX() PUCKX=0 ELSEIF PUCKX>RIGHT*%}100 THEN REVERSEPX() PUCKX=RIGHT*100 FI IF PUCKYV>MAXV THEN PUCKYV=MAXV FI; move verticaly IF PUCKYD THE%}N PUCKY==+PUCKYV ELSE PUCKY==-PUCKYV FI; check boundaries IF PUCKY>24000 THEN REVERSEPY() PUCKY=0 EL%}SEIF PUCKY>BOT*100 THEN REVERSEPY() PUCKY=BOT*100 FI; handle friction IF PUCKXV THEN PUCKXV==-FRICTION FI&} IF PUCKYV THEN PUCKYV==-FRICTION FI; fading collision sound IF VOLUME THEN VOLUME==-2 SOUND(0,10,8,VOLUME)&} SOUND(1,10,10,VOLUME) ELSE SOUND(0,0,0,0) SOUND(1,0,0,0) FI POSPUCK(PUCKX,PUCKY)RETURNPROC GOAL(BYTE P&}LAYER)BYTE ICARD J; Inc score, check for a winner SNDRST() ERASEPUCK(PUCKY) VOLUME=0 SERVEIT=1 SERVER=PLAYER S&}CORE(PLAYER)==+1 IF SCORE(PLAYER)=WIN THEN GAMEOVER=1 FI; flash score FOR I=0 TO 5 DO SETBLOCK(SCRMEM+23+22*PL&}AYER,2,0) FOR J=0 TO 5000 DO OD SCRMEM(23+22*PLAYER)= 16+SCORE(PLAYER)/10 SCRMEM(24+22*PLAYER)= &} 16+SCORE(PLAYER) MOD 10 SOUND(0,20,10,8) FOR J=0 TO 5000 DO OD SOUND(0,0,0,0) OD; cheering IF GAMEOVER=&}0 THEN FOR I=0 TO 30 DO FOR J=0 TO 1000 DO OD SOUND(0,10,8,I RSH 1) OD FOR J=0 TO 40000 DO OD FOR&} I=0 TO 30 DO FOR J=0 TO 1000 DO OD SOUND(0,10,8,15-I RSH 1) OD FI SNDRST() SOUND(3,0,0,3)RETURNPRO&}C MOVEALL(); Move paddles and puck; keep attract mode at bay ATRACT=0; check for goal IF PUCKX>2400 AND PUCKX<3700 THE& }N IF PUCKY=0 THEN GOAL(1) ELSEIF PUCKY=BOT*100 THEN GOAL(0) FI FI IF GAMEOVER=0 THEN MOVEPUCK& }() MOVEPADDLE(0) MOVEPADDLE(1) FIRETURNPROC ENDGAME()BYTE ICARD J,K; Cheer profusly and end game SNDRST()& } FOR I=0 TO 30 DO FOR J=0 TO 1000 DO OD SOUND(0,10,8,I RSH 1) OD FOR J=0 TO 200 DO FOR K=0 TO 500 DO OD & }IF RAND(130)=0 THEN FOR I=0 TO 15 DO FOR K=0 TO 1200 DO OD SOUND(1,30-I,10,I) OD FOR I=0 TO& } 15 DO FOR K=0 TO 1200 DO OD SOUND(1,15+I,10,15-I) OD FI OD FOR I=0 TO 30 DO FOR J=0 TO 100&}0 DO OD SOUND(0,10,8,15-I RSH 1) OD FOR J=0 TO 40000 DO ODRETURNPROC PLAY(); Play Air Hockey INITPLAY() SERV&}E(SERVER) DO DO UNTIL VCOUNT=100 OD IF CH<>$FF THEN KEY=GETD(1) FI IF KEY=32 OR SERVEIT=1 T&}HEN SERVE(SERVER) KEY=0 CH=$FF SERVEIT=0 FI MOVEALL() UNTIL GAMEOVER=1 OR KEY=27 OR &} CONSOL=6 OD IF KEY<>27 AND CONSOL<>6 THEN ENDGAME() FI SNDRST()RETURN; --- Main Procedure ---PROC MAIN&}() LMARGN=0 CLOSE(1) OPEN(1,"K:",4,0) DO TITLE() WHILE CONSOL=6 DO OPTIONS() PLAY() OD UN&}TIL KEY=27 OD CLOSE(1) GRAPHICS(0) GRACTL=0RETURN WHILE CONSOL=6 DO OPTIONS() PLAY() OD UN$<WXP/=SECTOADDRESDIRHLSTSBUFFERADADNUMBEIOCADRHADRLNUMHNUMLNAFAA@*}A  *} PRINT SHOP IMAGE CON*}VERTER (PICTURE LOADER/CONVERTER)BY MIKE MCCUEN(2(C) 1985 ANALOG COMPUTING<d A A*}INITi ATITLE/MENUn A@KEYPRESSs ASET UP OPTIONSx A READ DIRECTORY} A0*}PRINT DIRECTORY! A!GET SCREEN NUMBER AINSTRUCTIONS AALOAD SCREEN! AB!*}WAIT START/OPTION ADCHECK FILENAME APSAVE SCREEN  ' %INSTRUCTIONS F*}OR LOAD+A( INSTRUCTIONS:(**("After the picture loads, the back-**("ground will turn red. Th*}is is the**("prompt for you to insert a DOS 2.0,,($disk in the drive and press START to ++(#save the screen. The *}filename will**("be the same as the one used on the(Print Shop disk..(.(#If the screen is the wrong one, you*}**("can abort the save by pressing the$--(%OPTION key when the screen turns red.)0(&(PRESS RETURN TO CONTINUE...*}0 A@.$LGET SCREEN # TO LOADQ?%( ;(SCREEN # TO LOAD?V# !((* }# A[%` 6-8,6-%@`e$33CLEAR SCREEN TO DISPLAY OPTIONSG+*!}A-(DIRECTORY OF SCREENS:G( $SET UP TITLE PAGE/MENU%+A%@*"}@*(*( PRINT SHOP IMAGE CONVERTER#( VER. 1.0(!!( BY MIKE MCCUEN-''( *#} (C) 1985 ANALOG COMPUTING23(3('700('|ԠҠԠРˠĠ|*$}<00('|ӠŠΠٮ|A00('F$xINITIALIZE VARIA*%}BLESY1;@ ,;A$,;A,9@,96.J67A,.Y67@,.+ 6. 67A$,. +6*&}7@,.$SET UP DISK I/O CALL%-A6A@"!% 104,32,83,228,96$READ THE DI*'}RECTORY;Ap@'Ai@;-AbAeHAyP:'AV,HAxP:+'AV&P:'AV*(},,$AV, 6-C:,%+&Ab,$A($6-P:'AV,$6-&$AVArAs6-?:A6*)}, $ ""PRINT DIRECTORY, STORE NAMES " 6-"-@B:,@2 ))7%@<%@,0PAA0@ `;**}(%@)7<%@,START:@:7%@,,I6-%@`68,-@:7%@,, h 6.D:(67@,.7<%@*+},9-@B:,E@:7,,"^6.7@<&@,h A00   &&67$@&@<$@,.   6*,}- $WAIT FOR RETURN KEYI@@K:*)@5@IAUA@$##SET UP*-} RESIDENT DISK HANDLER,""READ SECTORS AND LOAD SCREEN1 +@$A@1A Ad"%*.}%6-F:@,%AV$F:@,, 6-6-6'Ap@'Ai@; -<F:Ad,"@(%*/}@HAyP:'AV,HAxP:+'AV&P:'AV,,$AV,E 6-%J$6-P:'AV,$6-&$AVO*0}ArAsTJ6-?:A6, 6-%A&$ 80@@JA @Y$hWAIT FOR START OR *1}OPTIONrF:B2y,"@$w!F:B2y,"@'!%| ABERROR DETECTED?+A*(ER*2}ROR #F:A,-(?( Restarting...-A '%0 CHECK FOR A VALID FILENAME5&&6.7$@&@*3}<$@,:)-@B:,)7<,4 AD ?   $D6.7@<&@,$* SAVE SCREEN TO FILENAME*4}* SELECTED AT BEGINNING@@R6-F:A,$AV<6-F:@,%AV$F:@,B6-R6*5}-&%@<6-A2%@+%@@<6-P:'AV,P6-&$AV!%@/%@@6-P*6}:'AV,P6-&AV$%@%@ b6-?:C:hhhLV,<@,*@b3 LOWER-CASE H, INVERS*7}E *, L, V, INVERSE LOWER-CASE D$D:PIC2b6-?:C:hhhLV,<@,*@b3 LOWER-CASE H, INVERS(4'(xkRADADNUMBEIOCADRHADRLNUMHNUML.9} * LOAD A GRAPHICS 8* SCREEN USING CIO] +@$A1A ]@@.:}D:FILENAME.EXTR6-F:A,$AV<6-F:@,%AV$F:@,B6-R6-&%@<6-A2%@.;}+%@@<6-P:'AV,P6-&$AV!%@/%@@6-P:'AV,P6-&AV$.<}%@%@ b6-?:C:hhhLV,<@,*@b3 LOWER-CASE H, INVERSE *, L, V, INVERSE LOWER-CASE .=}D$ D:LOADER.BASb6-?:C:hhhLV,<@,*@b3 LOWER-CASE H, INVERSE *, L, V, INVERSE LOWER-CASE ,EiͩkΩ͙kCop j`j {j`Hi͝Νh`2?}L"UNEM:D"NURͩkΩ͙kCop j`j {j`Hi͝Νh`0op QQQQQQQQQ1Q1Q1Q1Q1Q1Q1Q1Q2Q2Q3Q3Q4Q5Q6Q8Q13Q56Q56Q75Q75JBLXLAPNJBEGI6A}@@@@@@@ @ @ @ @ @ B@@6B}@ @%@0@6@@@P@`@A0A`AaARAU@@6C} @!" (#A$U(%}& '@(@Q)*Br6-@6-'66D}-@36-@?6-@K6-@W6-@c6-@ o6-@{6-@6-@6-@6-@6E}6-B6-@6-@6-@ 6-@%6-@06-@66-@@6-@P'6-@`6F}36-@?6-A0K6-A`W6-Aac6-ARo6-AUu6- B   >-@66G}?P%-632%&7 ; >$ :);,;,;,;,;A,;,:D:*.* 7 -7(#6H} '#6. ' 7<,4FREE W 6-%6.7<,#67<,.6I}.367<,.7<,;6.|I67B:,%,.W67B:,%,.567<,.(-B:,(7<,4 567<,..3 6.=:,6J} &67<,.7<,367<,.0$E @ A7<,4DUP)7<,4MEM)7<,4AUTE (7<,4D6K}AT 2 () <?  ;7<,4DUP)7<,4MEM)7<,4AUT? F7<,4DAT P (6L}7<,)| WB-+',% |$-+',%-(|9-+',%B(|ZN.(#| 6M} |N( |  |\`.(#49(`( NOTE: DATA FILES NOT6N} LISTED.* -(-*( Π3 -- #+-/ 3    P:,6O}  "6.7<, AE> "6.7+&,$%<+&,$%,& 37<,4 >6.7<,7<,4DOS.* 6.6P}-B:,*7<,4 AH67B:,%,.7<,   6. - (? 6.D1:67B:,%,.+.(LOADING6Q} 1(; A?%( CANNOT RUN ( *-APAP#2'' *%'5+6-F:,%F:,$AV%-6R}&@q5%B'3%@$@e"%F:,3%@&F:,L'# 000#0`'c ( .6S}....4( COMPUTING`($ 򠳸c$D:MENU#0`'c ( .4]t#'@Z (@ ``QRRRRRRRRRRRRERTTTTTTTTTTTTTTTTRZRRRRRRRRRRRRCP>##:U}###L $t##u# 8t##u#  8u#u#u#Lb$u#t#t#ILb$t#Lb`Li:V}$t#u# ! $ $ 栅 $ \`L$$$͕$$L$IL$$$L$`L$ ToЌ/Ȍz#:W}1#0# L$$$L;%$i#e#i#m$#i$L$p ## $$L%#m:X}$#i$i$LS%#i#ip  Φ Φ L% Air Hockey%  L%By::Y} Chris Page%  L&Thanks: D.S. and D.B.%  LE&June 30, 1984 - August 9, 1985&&  Lk&Cop:Z}yright (c) 1984&X " L& Press Ԣ&~ !/`L&z#iz#z#)L&i)&͘&L' ԭ :[} mz#Э I0L&Э )L&&L&`L ' $ f$ &IL'/`L&' T/Э L3' $Y#X#1#0#:\}#i#ii Φ ΦL' GAME OPTIONS' s L' - NEXT OPTION' L' - C:]}HOOSE'ȩ sL' - PLAY GAME' s L( FRICTION: O(  v#L:(L.(N(, LI(L@(FF(=  :^}L`( VELOCITY: (U d$$   L( BOUNCE : ( w#   L( WIN:_} AT : (ɩ x#  L( PLAYERS : ( y# "/|#`L)) ԭ IL){# Ԡ ԭ{#) :`}{#i{# IL6) ԌЩР ԭ I(Li)Э) i)) ԭ M)L)Р )i EL)`L) #':a})) Ϳ))L)|# )))IL)IL*|#|#IL*|#IL+|#L*v#Iv#v#L_*#i#i:b}.#i#iL*#i#i&#i#i&L+|#IL*$I $IL*#i#i8$:c}ȍ$L*#i#ii$id$$i$L+|#ILJ+w#IZL&+#iՅ#i8 w#LG+#iՅ#ii:d}w#i w#L+|#IL+x#IZL~+#i#i8 x#L+#i#iix#i x#L+y#IL+#i%#i:e}8Ȍy#L+#i%#iiy#IL)/ !`UUUUTTP@@PTTUUUUUUUUUUUUUUUU*UUUUL9:f},8j ###### #i#i 8j=/++L-+++:g} +L,++L,m+i#e#e++(m+i#e#e+,m+i#e#e:h}+,m+i#e#e+,m+i#e#e+,m+i#e#e+&,m+:i}i#e#e+.,+L,`L- --i`-Щ-- i-i-#m-#m-m:j}-ii8i--- `Lb. \.^.#].\. -`L. .d.. .:k}.d.. ...#. -`L. ... i.i.#m.#m.:l}m.ii8i `LQ/M/L/dM/L/ i8L/iM/#i#imL/mM/:m} `L/# .# .$$ N/`L/8j #### vv68jԩ`:n}L#0 T/ L-0b \ ! $ /Y#X#######Ȍ1#0##i#i#i#i:o}i#i#i#i#i#i#i#i#i#i#i0#i#i0#i#i:p}  Φ Φ Φ Φ Φ Lq1 air hockey1f lXiXYiY L1 One :q}: 00 | Win : %B | Two : 00x#1 ̣#i7#i# 0W000L62#m0#m0#:r} 0i 00i0L1#i#i# 6, #`L{2u2 /####:s}## $$u2 e$e$##$$## _.## _.$$$$ .:t}Ќ#u#`L333#3 .3 N3y#M3L43#id$$ Ŭ子L3833L383:u}38#d$$ Ŭ子L3833L48#d$$ ŮL3833L4833:v} 񦥠L4333#3)L[483#3#3#3#LX43#3#L43)L43#i3#3#3#:w}L43#3#3)L43#i3#83#L483#L43)L483#3#3#L43#3#:x}3#3 _.`L5u#}#I}#8Zw##Ů#LI5##Lb58Zw#8#宍###`Lf5u#~#I~#8Zw#$:y}$L5$$L58Zw#8$宍$$$`dP((Pd5L5$$ N/5d$$ FŮ:z}寐L655#5L8#L8u#d$$ ii85#55 m5*(m5##}:{}#Ͱ5L6Ȍ}#d$$ 85#555L6d$$ #L65L7d$$ :|}ii#L755)IL77~#I~#L8$ $Lf7$ȍ$~#5)ILc7Ȍ~#L8d$:}}$ ii5]#IL7L8~#IL85)IL85L78$ȍ$$$$$L7~#I~#L7:~}$iȍ$$i$L8~#L`85)IL`85LL88$ȍ$$$$$LI8~#I~#L]8$iȍ$$i$L8~#IL85:})IL85L8~#I~#$iȍ$$i$L8~#L85)IL85L8~#I~#$iȍ$$i$#L8#Э:}$#$#L9$#$#}#L$9$m#$$m#$L798$#$$#$$]$LT9 5$$L9d< :}$$L9 5d< $$$$$$L9$$$$~#L9$m$$$m$$L98$$$$$$$:}]$L9 c5$$L7:d $$L7: c5d $$# #LT:8#v####$ $Lq:8:}$v#$$$u#L:8u#u#u# u#  L:  $$$$ .`L:: !$:}$ N/u#Ȍ#:#:#:#Mx#L ;#::L\<#i#i: ee :}::::L|;::Lb;: ee#e#e :# e::} ee#e#e :# ޠe  ::::LI<::L/< :}:L;#L=::L<::::L<::L{<:J :Li<::@::L<::L<::}:L=::::L<::L<:J8宅 :L< ! `L-=M`$ $L=$t$L=:}$ $Lb= :L=d $E $EL= :#L= 5 3 3`L= !=͢=L===ͣ=:}=L===L==J =L===ͣ==L>==ͥ==L,>==L> 񦥠L>=͢=L>:}==ͥ==Li>==LO>8==  =L=>=͢=L>==ͥ==L>==L>m=8=:}  =L>==L==͢=L-?==ͣ==L?==L>=J8宅 =L>==@ͣ==LO:}?==L5?`LS? 0# x2 IdL\?ILz? ##I #IL?# x2## *=#I#I IL\?#I:}L?IL? = !`L?R yL?K:? D 'IL @ ) P?L?#IL? y T``?IL\?#I8n89SIZNOFFLAGSDISPLATICTOCITECOUNPRIMSIZEAFA@@>} A@ 56-A6-@'6-56-%>}@(;@,9,26-F:AY,<6-@ F6-@PPOKE 559,0Zdn>}-@@x6--68,-@ - 8, A  >} 6-F:,%AV$F:,POKE 559,DISPLAY%%  Primes done in  ticks 6-%%@  6>}-%$ 68,-6-%$ A 06-%@$ D:PRIME.BAScks 6-%%@  6<T10 SIZE=819020 NO=130 OFF=040 DIM F(SIZE+1)50 DISPLAY=PEEK(559)60 TICK=2070 TOCK=1980 REM POKE 559,090 POKE TICK,010B}0 POKE TOCK,0110 FOR ITER=1 TO 10120 COUNT=0130 FOR P=0 TO SIZE140 F(P)=1150 NEXT P160 FOR I=0 TO SIZE170 IF F(I) THENB} GOSUB 900180 NEXT I190 NEXT ITER200 I=PEEK(TICK)+256*PEEK(TOCK)210 REM POKE 559,DISPLAY220 PRINT COUNT;" Primes done inB} ";I;" ticks"800 END 900 PRIME=I+I+3910 PRINT PRIME920 K=PRIME+I930 IF K<=SIZE THEN F(K)=OFF:K=K+PRIME:GOTO 930940 COUNB}T=COUNT+1950 RETURN 900 PRIME=I+I+3910 PRINT PRIME920 K=PRIME+I930 IF K<=SIZE THEN F(K)=OFF:K=K+PRIME:GOTO 930940 COUN@100 Maxd=2500:Maxs=72:K1=1:K2=2:K3=3:K4=4:K5=5110 Graphics Z:Poke 710,128:Poke 709,15:Poke 82,K2:Position 10,10:? "InitializF}ing...";120 Dim Dli$(Maxd),Ex$(K2),Td$(Maxs),Ins$(4),At$(K2),Cmp$(K3),Las$(K5),I$(20),B(Maxd),F$(20),Ls$(40),Dlilst$(250)D}*=$3200.WOR DSEC.WOR CSEC.WOR VSEC.WOR VENDMAINJSR INITL10LDX #X15JSR LD0LDX #X1JSR STOLDX #J}X16JSR LD0LDX #X2JSR STOL20LDX #X17JSR LD0LDX #X3JSR STOJMP L100L30L39LJ}DY #0STY 77L40LDX #X3JSR LD0LDX #X21JSR SUBLDX #X5JSR MULLDX #X1JSR ADDLDJ}X #X4JSR STOLDX #X5JSR LD0LDX #X7JSR MULLDX #X2JSR ISUBLDX #X6JSR J}STOLDX #L60JSR TRAPL50LDX #X4JSR LD0LDX #X6JSR LD1JSR IPLTL60RTSL100JSR L260L110J}LDX #X24JSR LD0JSR GRLDA #<0LDX #<0LDY #<2JSR SCOLLDX #X26JSR LD0JSR COLL120LDX #J}X26JSR LD0LDX #X8JSR STOA1JSR L140LDX #X8JSR INMLDX #X27JSR GTBCS *+5JMP A1L130JSJ}R L40JSR L160JMP L130L140L150L160LDX #X3JSR LD0LDX #X9JSR STOLDX #X7JSR LD0LDX #X10JSR STOLDX #X9JSR LD0LDX #X11JSR MULLDX #T1JSR STOLDX #X10JSR LJ}D0LDX #X12JSR MULLDX #T1JSR ISUBLDX #X3JSR STOLDX #X9JSR LD0LDX #X12JSR MULLDX #T1JSR STOLDX #X10JSR LD0LDX #X11JSR MULLDX #T1JSR ADDLDX J}#X7JSR STOLDX #X26JSR LD0LDX #X3JSR SUBLDX #X3JSR STOL170L180LDX #X7JSR LD0LDX #X13JSR STOLDX #X3JSR LD0LDX #X3JSR MULLDX #T1JSR STOLDX #X7JSR LD0LDX #X7JSR MULLDX #T1JSR ADDJSR SQRLDX #X14JSR STOLDX #X3J}JSR SUBLDX #X25JSR DIVJSR ABSJSR SQRLDX #X7JSR STOLDX #X14JSR LD0LDX #X3J}JSR SUBLDX #X6JSR STOLDX #X20JSR LTLDA FR0BNE *+5JMP A2LDX #X7JSR LD0JSR NEGLDX #X7JSR STOA2L190LDX #X14JSR LD0LDX #X3JSR ADDLDX #X25JSR DIVJSR ABSJSR SQRJ}LDX #X3JSR STOLDX #X14JSR ADDLDX #X6JSR STOLDX #X20JSR LTLDA FR0BNE *+5JMJ}P A3LDX #X3JSR LD0JSR NEGLDX #X3JSR STOA3L200LDX #X13JSR LD0LDX #X20JSR J}LTLDA FR0BNE *+5JMP A4LDX #X3JSR LD0JSR NEGLDX #X3JSR STOA4L210LDX #X20JSR LD0JSRJ} RNDLDX #X21JSR LTLDA FR0BNE *+5JMP A5LDX #X3JSR LD0JSR NEGLDX #X3JSR STOLDX #X7JSR LD0JSR NEGLDX #X7JSR STOA5L220LDX #X26JSR LD0LDX #X3JSR SUBLDX #X3JSR STOLDX #X25JSR DIVLDX #X3JSR STOLDX #X7JSR LD0LDX #X25JSR DIVLDX J}#X7JSR STOL229LDY #0STY 77L230RTSL240JMP EXITL250L260LDA #0STA ICBLDX #X31JSR SPRJSR CRLJ}DA #0STA ICBLDX #X32JSR SPRJSR CRLDA #0STA ICBLDX #X34JSR SPRJSR CRL270LDA #0STA ICBLDX #X36JSR SPRJSR CRLDA #0STA ICBJSR CRL290LDA #0STA ICBLDX #X38JSR SPRJSR CRL300LDA #0STA ICBJ}LDX #X40JSR SPRJSR CRLDA #0STA ICBJSR CRL320LDA #0STA ICBLDX #X42JSR SPRLDA #0STA ICBJSR J}GETLJSR GETNLDX #X11JSR STOJSR GETNLDX #X12JSR STOL330LDX #X11JSR LD0LDX #X11JSR MULLDX #T1JSR STOLDX #X12JSR LD0LDX #X12JSR MULLDX #T1JSR ADDLDJ}X #X14JSR STOL340LDX #X44JSR LD0LDX #X11JSR MULLDX #X14JSR DIVLDX #X11JSR STOL350LDX #X44JSR LD0LDX #X12JSR MULLDX #X14JSR DIVJSR NEGLDX #X12JSR STOL360LDA #0STA ICBLDX #X45JSR SPRLDA #0STA ICBJSR GETLJSR GETNLDX #X5JSR STOJ}L370LDX #X1JSR LD0LDX #X1JSR ADDLDX #X5JSR DIVLDX #X5JSR STOL380LDA #0STA J}ICBLDX #X47JSR SPRJSR CRLDA #0STA ICBLDX #X49JSR SPRJSR CRLDX #X26JSR LD0LDX #X8JSR STOA6LDX #X8JSR INMLDX #X51JSR GTBCS *+5JMP A6L390RTSJMP EXITDSECCSECX15 .BYTJ} 65,1,96,0,0,0X16 .BYT 64,150,0,0,0,0X17 .BYT 63,80,0,16,0,0X18 .BYT 65,1,0,0,0,0X19 .BYT 64,119,0,0,0,0X20 .BYT 0,0,0,0J},0,0X21 .BYT 63,80,0,0,0,0X22 .BYT 64,96,0,0,0,0X23 .BYT 65,2,96,0,0,0X24 .BYT 64,36,0,0,0,0X25 .BYT 64,2,0,0,0,0X26 .BJ}YT 64,1,0,0,0,0X27 .BYT 64,16,0,0,0,0X28 .BYT 65,1,64,0,0,0X29 .BYT 64,64,0,0,0,0X30 .BYT 65,1,48,0,0,0X31 .BYT '}',EOSJ}X32 .BYT 'FABULOUS FRACTIONS',EOSX33 .BYT 64,24,0,0,0,0X34 .BYT 'By Alex Leavens',EOSX35 .BYT 64,21,0,0,0,0X36 .BYT 'ExclJ}usively for ANALOG Computing.',EOSX37 .BYT 64,51,0,0,0,0X38 .BYT 'Please input values for X and Y.',EOSX39 .BYT 64,50,0,0,J}0,0X40 .BYT 'X and Y do not have to be integers.',EOSX41 .BYT 64,53,0,0,0,0X42 .BYT 'Please enter X,Y',EOSX43 .BYT 64,22,J}0,0,0,0X44 .BYT 64,4,0,0,0,0X45 .BYT 'How big is the window',EOSX46 .BYT 64,33,0,0,0,0X47 .BYT 'O.K.! Screen will go blaJ}ck...',EOSX48 .BYT 64,48,0,0,0,0X49 .BYT 'Please wait...',EOSX50 .BYT 64,20,0,0,0,0X51 .BYT 65,5,0,0,0,0VSECX1 *=*+6X2J} *=*+6X3 *=*+6X4 *=*+6X5 *=*+6X6 *=*+6X7 *=*+6X8 *=*+6X9 *=*+6X10 *=*+6X11 *=*+6X12 *=*+6X13 *=*+6X14 *=*+6VENDJ}T1 *=*+6L99999.END*+6X5 *=*+6X6 *=*+6X7 *=*+6X8 *=*+6X9 *=*+6X10 *=*+6X11 *=*+6X12 *=*+6X13 *=*+6X14 *=*+6VENDH