@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr 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  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}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 CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u !yF \ ABEELINLINSUCKSUSTARD T} *******************MOUSERSOFT BASIC**LOADER by ** Lee Brilliant ** December 198U}5 ******************* II255,255,0,6,243,6,104,169,4,141,241,2,162,6,160,32,169,7,32,92,2086QQ228,96,104,172,99,V}228,174,100,228,169,7,32,92,228,96,76,98,228,173,241,2869PP2,208,248,173,252,2,201,255,208,124,216,173,113,2,141,243,6,16W}9,9,141,2886LL242,6,32,214,6,173,243,6,24,109,240,6,141,240,6,173,112,2,141,243,2359JJ6,169,5,141,242,6,32,214,6,173,X}243,6,24,109,239,6,141,239,6,238,2245#KK241,6,173,241,6,201,3,208,65,169,3,141,242,6,173,240,6,141,243,6,2514(JJ32,214,Y}6,172,243,6,173,239,6,141,243,6,32,214,6,174,243,6,169,0,2325-NN141,239,6,141,240,6,141,241,6,236,237,6,208,23,204,238,6,2Z}08,18,173,27182NN16,208,208,10,169,12,141,252,2,169,60,141,241,2,76,98,228,142,237,6,24187JJ228,83,48,5,166,83,76,189,6[},228,82,16,2,166,82,134,85,140,238,6,2063<NN204,191,2,48,4,172,191,2,136,200,132,84,169,142,141,252,2,76,98,228,2474AJJ\}169,0,162,8,14,243,6,42,205,242,6,144,6,237,242,6,238,243,6,202,2421F;;208,238,96,0,0,0,0,0,0,0,226,2,227,2,1,6,0,0,0,0,10]}06PNN141,236,6,141,237,6,141,238,6,236,234,6,208,23,204,235,6,208,18,173,2703ZCKSUM=30384d=;A`,-(} ^}Ǡ96-A= nm-@@p@-(LINE #96-M-@@ [6-%@_}_"m67<,.>:,x/ 6-% ",( DATA ERROR/ ( OK! 6-% 8B(5(CHECKSU`}M ERROR. CHECK DATA.8.@@ D:AUTORUN.SYSL(@7@<AV,W@a#A6-a}F:@,%AV$F:@,(>:A%,-@@9"#%?2@@S-@@b}W [ }2^%2A@@96-@#@[2c}^$__35,47,46,39,50,33,52,53,44,33,52,41,47,46,51,14,0,0,57,47,53,0,46,47,55,0,47,55,46,0,33,045,47,53,5d}1,37,1D:BITPIEC1.BAS39,50,33,52,53,44,33,52,41,47,46,51,14,0,0,57,47,53,0,46,47,55,0,47,55,46,0,33,045,47,53,5 AMOUSERSOFTAX;******************(X;*MOUSERSOFT *2X;*by Lee Brilliant*<X;******************FX;P f}X;ALLOWS ANALOG JOYSTICKUX;CURSOR POSITIONINGZX;dX;nX;***************xX;*SYSTEM EQUATES*X;***************X; g}LMARGINRRMARGINS ROWCRST COLCRSUPADDLEXpPADDLEYqBOTSCRINITADKEYDEL h} CH TRIG0SETVBV\XITVBVbX;"X;*****************,X;VALUE ASSIGNMENTS6X;*****************@X i};J CRSRUPT RETURN ^X;hX;*****************rX;|INIT7;;FOR BASIC INITQ> PKEYDEL$>START; j};SET VBI%>STARTQ> SETVBV:RESET7;;FOR BASIC%XITVBV;;RESET ORIGINALX; VBI$ k}XITVBVQ> SETVBV:EXIT3!XITVBV STARTQKEYDEL;;KEY DEBOUNCE?&HEXIT3;;YES, EXIT VBI0QCH;;KEY BUFF E l}MPTY?:R>DHEXIT2;; NO SO EXIT VBIN-XQPADDLEY;;CHECK STICK POSbPDIVIDEND;;FACTOR FORg X; 40 COL m}UMNSlQ> ;;DIVIDE BY 9v PDIVISOR DIVIDEQDIVIDEND;;AVERAGE 3 TIMES,OYTEMP;;SUM ALL 3 PYTEMPQPADDLEX; n};DO SAME FOR X PDIVIDENDQ>;;FACTOR BY 5 PDIVISOR DIVIDEQDIVIDEND;;AVERAGE 3 TIMES,OXTEMP;;SUM ALL 3 o} PXTEMP #COUNT;;THREE TIMES? QCOUNT R>*HEXIT2;;NO, EXIT4X;FIND AVERAGES>Q>H PDIVISORR QYTEMP\ PDI p}VIDENDf DIVIDEp %DIVIDENDz QXTEMP PDIVIDEND DIVIDE $DIVIDENDQ>;;CLEAR REGISTERS!X; AND q} COUNTERS PXTEMP PYTEMP PCOUNT(XOLD;;CHECK AGAINST!X; OLD SETTINGS HNEWPOS )YOLD HNEWP r}OSEXITQTRIG0;;IF SAME CHECK%X; TRIGGER FOR RETURNHEXIT2;;NO THEN EXIT)Q>RETURN;;YES, CREATE CARRIA s}GE RETURNPCH;;FOOL EDITORQ><;;SET DEBOUNCE!X; FOR 1 SECOND$ PKEYDEL.EXIT2!XITVBV;;LEAVE VBI8" t}NEWPOS&XOLD;;SAVE NEW X COORDB(RMARGIN;;CHECK RT MARGINLGXLOTEST;;CHECK L MARGINV$RMARGIN;;X>RMARGIN,[!X; u} USE R MARGIN` !STOREXj!XLOTEST(LMARGIN;; CHECK LEFTo X; MARGINt ISTOREX~$LMARGIN;;XCRSRUP;;IN THIS COMMANDPCH;;FOOL SCRN EDITOR!XITVBV;;DO y}NEDIVIDEQ>;;DIV SUBROUTINES$> NXTBTTDIVIDENDU? RDIVISOR( DCNTDN2 SDIVISOR< #DIVIDENDF CNTDN0P H z}NXTBTZ:dX;nX;************xX;*WORKSPACES*X;************X; XOLD  YOLD  XTEMP  YTEMP  COUN {}T DIVISOR DIVIDEND X;X;INITAD;;SELF BOOT ADDR INIT YOLD  XTEMP  YTEMP  COUN RDKEYPRESXOLYOL *************************MOUSER }}GRAPHICS TABLET** by Lee Brilliant *************************#,,USE '1', '2', OR '3' TO CHOOSE A COLO~}R(2PRESS BUTTON TO DRAW7d +@6-Ad%6-@D@@KVAR@}Y((# **** MOUSER GRAPHICS TABLET **** A`n96-Q:,!6-Q:@,-!AY96-AYx!@y}6-@y)A`F:,AUA A A*T:,"/$6-*6}- ,6-6- , A<)@6-&@H< @)!@A A}D:BITPIEC3.BAS6- , A<)@6-&@H< @)!@A Ap d"X;multiple players & collisionsnX;xX;by Karl E. WiegersX; PUTREC DRAW ROWCRST COLCRSU}ATACHR| P0PFА P0PL ФHITCLRвX; FORWARD Q>ALIEN;;make alienPSHAPE;;face forward Q>ALIEN};;initially* PSHAPE4,>Q>H O>PMGRPPLYRSTRT\ QYPOSP0f PPLYRSTRTp COPYPLAYERzQ>;;make alie}nPPCOLR0;;yellowX;"X;joystick checking begins hereX;Q>ALIENR;;load alienPSHAPE;;shape going$Q>ALIEN}R;;to the.PSHAPE;;right8,BQ>L O>PMGVPPLYRSTRT` QYPOSP0j PPLYRSTRTt COPYPLAYER~Q>;;colo}r himPPCOLR0;;blue Q>ALIENL;;load alienPSHAPE;;shape forQ>ALIENL;;going left( PSHAPE2,<Q>F }O>PMGPPPLYRSTRTZ QYPOSP0d PPLYRSTRTn COPYPLAYERxQ>;;color himPPCOLR0;;green X; %X;draw some line}s on the playfield X; Q>;;color register 0 PATACHR %> FIRSTPOINT;plot the first 3;;point in the QXVALUE}8;;data table PCOLCRS QYVALUE8 PROWCRS  PLOTPOINT NEXTPOINT 3;;aim at the QXVALUE8;;next point" GCHKDON}E;;if -1,then quit,, PCOLCRS;;else draw6 QYVALUE8;;from last@ PROWCRS;;point toJ  DRAWLINE;;this one andT ,;;get nex}t^ DNEXTPOINT;;pointh CHKDONEr )LIMIT;;all points done?| HFIRSTPOINT;;no, continue X; !X;check for collisions betw}een X;players 0 and 1 X; CHECKCOL QP0PL;;if collision, R>;;then call HCHECKPF;;subroutine  P0P1COL;;to ha}ndle it& ,0 DCHECKCOL: X;D !X;check for collisions betweenN X;player 0 and playfieldX X;b CHECKPFl QP0PF;;if collis}ion,v FCHECKCOL;;call another  P0PFCOL;;subroutine to ,;;process it DCHECKCOL X; #X;plot a point at current curs}or !X;position; save Y-register on X;the stack X; PLOTPOINT C 5 $>` Q>PUTREC PICCOM9 Q>REG2 PIC}BAL9$Q>REG2.PICBAL98Q>B PICBLL9LQ>VPICBLL9` CIOVj7t?~:X;#X;draw a line from last p}oint to#X;current cursor position - saveX;Y-register on the stackX; DRAWLINEC5 Q>DRAW PICCOM9 CIOV}7? :X;J$X;subroutine to handle collisionsTX;between alien and car^X;h P0P1COLr KILLED;;change to dead,|}Q>;;white alien PPCOLR0:X;$X;subroutine to handle collisionsX;between alien and wallsX; P0PFCOL KI}LLED;;change to dead,Q>(;;orange alien PPCOLR0:X;"X;subroutine to copy dead alien"X;shape when he hits somet}hing,#X;clear collision registers, andX;turn off VBI routine&X;0 KILLED:Q>DEADALIEND PSHAPENQ>DEADALIEN}X PSHAPEb,lQ>v O>PMGPPLYRSTRT QYPOSP0 PPLYRSTRT COPYPLAYERPHITCLR;;clear coll.%>X}ITVBV;;turn off$>XITVBV;;VBI routineQ> SETVBV:X;  REG2 ACAX; %X;counter for drawing on playf}ield*X;4 LIMIT >X;HX;tables of X-coordinatesRX;\ XVALUEf = = = =p  ==z ==#= =}"="==X;X;tables of Y-coordinatesX; YVALUE == = = == === ====}X;`X;jX;alien facing to lefttX;~ ALIENL =<==>==== ====<=<=$ $=$=l=X;X;alien faci}ng to rightX; ALIENR =<==|== ==<=<=$ $=$=6=X;X;poor, squashed alienX;  DEADAL}IEN =!="==T=9 =<={==( 4=V==$2 ==$=$=6=X;X;poor, squashed alienX;  DEADALEAPK1PK2PK3A *** HOT POKER LOADER ****** by S.}M. Baugh ***11;@r,;@r,;@r,;@,(6$(Creating file: ĺҮ 6AA2A A} @A@@ D:POKER.SUBd--@@r")67<,.>:,- n--@@r}")67<,.>:,- x--@@r")67<,.>:,- 66(@%2 DIM PKR$(216):REM * Hot Poker Sub *66}(@ 3 PKR$(1,72)=>:@4,>:@4,88(@4 PKR$(73,144)=>:@4,>:@4,99(@5 P}KR$(145,216)=>:@4,>:@4,FF(@56 FOR L=1 TO 3:READ P:READ D:PKR$(P,P)=CHR$(D):NEXT L--(@7} DATA 80,155,91,155,181,155ee(@T8 REM MAKE =1ST DATA LINE TO MOVE, =NBR OF DATA STATEMENTS, =DESTINAT}ION??(@.9 REM INCLUDE: U=USR(ADR(PKR$),LNBR,NBRL,DEST)1@( All done..AAH1oA}AH(J("I'm sorry, I've discovered error #F:A,M(k(Press to continueoA }@@SS216,104,104,133,209,104,133,208,104,104,141,253,3,104,133,206,104,133,205,165OO136,133,203,165,137,133,204,1}69,0,168,145,205,160,2,177,203,133,207,160,1OO177,203,197,209,208,9,136,177,203,197,208,208,2,240,14,24,165,203,101,207}NN133,203,144,224,230,204,24,144,219,160,5,200,177,203,201,44,240,69,201,0NN240,65,200,177,203,201,44,240,32,201,0,240,}28,132,208,230,208,136,136,56PP177,203,233,48,240,13,170,160,0,24,177,205,105,100,145,205,202,208,246,164$NN208,132,20}8,136,136,56,177,203,233,48,240,13,170,160,0,24,177,205,105,10.NN145,205,202,208,246,164,208,132,208,136,56,177,203,233,48},240,7,160,0,248QQ113,205,145,205,230,205,208,2,230,206,169,0,168,145,205,164,208,177,203,201BLL0,240,13,200,24,144,140},160,2,177,203,133,207,24,144,129,206,253,3,240LAA14,24,165,203,101,207,133,203,144,233,230,204,24,144,228,96V* 216 B}YTESD:HOTPOKER.BAS44,129,206,253,3,240LAA14,24,165,203,101,207,133,203,144,233,230,204,24,144,228,96V* 216 BfX;*** HOT POKER ROUTINE ***X;*** by S.M. Baugh *** X*= $0600 STMTAB SORC;;$CCDEST;;$CE }LLENINDX;;$D1 LCNTX;CLD#PLA(PLA-STAINDX 2PLA7STAINDX <PLAAPLAFSTALCNT} KPLAPSTADEST UPLAZSTADEST dLDASTMTAB nSTASORC xLDASTMTAB STASORC X;Q>?}P@7X; FINDR%>Q@7 PLLENX;%>Q@7 RINDX HNEXTL1Q@7 RINDX HNEXTL FFOUN}DX;" NEXTL,, QSORC6 OLLEN; PSORC@ DFINDRJ #SORCT,^ DFINDRcX;h FOUND%>r FLOOP3|Q@7R>, }FONEDGR> FONEDG3Q@7R>, FTWODGR> FTWODGX;HUNDS'INDX #INDX11 ;Q@7S>}0& FHENDS0>:%>?X;D HLOOP,NQ@7XO>dbP@7l0v HHLOOP{X;HENDS%INDXX;TWODG'INDX11};Q@7S>0 FTENDS>%>X; TLOOP,Q@7O> P@70  HTLOOPX;TENDS%INDXX; ONEDG'}INDX*1/;4Q@7>S>0H FOENDSR%>\,fO@7pP@7uX;zOENDS#DEST HLNCHK #DESTX; LNCHKQ>}?P@7X; %INDXQ@7R> FENDCH3, DFLOOPX; RESET%>Q@7 PLLEN, DFOUNDX;L}ENDCH"LCNTV FRETRN[X; NEWLN, QSORC OLLEN PSORC DRESET #SORC, DRESETX; RETRN:X;;}D:PKSUB.SRCTV FRETRN[X; NEWLN, QSORC OLLEN PSORC DRESET #SORC, DRESETX; RETRN:X;; -B X;KRAZY KATERPILLARSX;DAVID HUFFX;(X;2X;RUN ADDRESS: $2000<X;FX;PEHZ  ==dX;nX;SYSTEM EQUAT }ESxX;HPOSP0ЌHPOSM0ЖSIZEP0Р SIZEM Ъ M0PFд P0PFо M0PLPMBASEHITCLR }GRACTLSDMCTL/GPRIORoSDLSTL0VDSLST CHBASSTICK0x"STRIG0,PCOLR0 }6COLOR0@ ATRACTMJCOLPF0TAUDCTL^ AUDF1h AUDC1r AUDF2| AUDC2҆ AUDF3Ґ }AUDC3Қ AUDF4Ҥ AUDC4ҮRANDOM ҸXITVBVbSETVBV\SIOINVe NMIEN WSYNC CONS }OLX;X;PROGRAM REGISTERSX;X;&VP0LO ;;Y POS. PLAYER00VP0HI :SHP0 ;;X POS. PLAYER0D }VP1LO ;;Y POS. PLAYER1NVP1HI XSHM0 ;;X POS. MISSILESbVPMLO ;;Y POS. MISSILESl HPOSM ;;X POS. }COLLISIONv!VPM0LO ;;Y POS. COLLISIONVPM0HI COLLO ;;COLLISION ADDRCOLHI DMLO ;;START SCR }EEN MEM DMHI DLCNT ;;DLI COUNTEROLDSET ;;ADDR ROM CHSETNEWSET ;;ADDR NEW CHSETX;X };STOP ;;PLAYER MOVEMENT?TEMPHI ;;TEMPS LOX8  SAVEX TRGCNT ;;READ TRIGGER? M0SND  };;SOUNDS*HITSND 4P0SND >LVLSND HLVLFLG ;;NEW LEVEL?RLEVEL ;;BCD LEVEL #\LEVHEX ;;HE }X LEVEL #fLEVORG ;;ORIGINAL LEVELpP0DEAD ;;PLAYER DEAD?zSPEED ;;BUGS SPEEDBUGCNT ;;# OF BUGS }SCORE ;;SCORESCOADD ;;ADD TO SCOREDIGIT ;;FOR DISPLAYLIVES ;;LIVESTIMER ;;DELAY TIMER }CPYCNT ;;PAGES TO MOVECPYTMP ;;TEMP"MSTAT ;;WHICH MISSILES OUTMSTOP ;;DISTANCE TO GOSPKFLG  };;SPIKE ON?X;PMB(;;PMBASE ADDRESS#CHBASEPMB;;CHARACTER SET BASESCOMEM0;;SCORE LINE#DMEMSCOMEM(; };DISPLAY MEMORY$X;.X;8 BX;L !STARTVX;`X;jX;DISPLAY LIST FOR TITLEtX;~DLTITL p=p=p=p=p G }TITLE p==p=p=p==p=p=! p=p=p=p=p=p=p==0= A DLTITLX;X;X;TITLE MEMORYX; TITL }E' =======+=r==:=y   +=a==%=r==) l==!=r=  ( =2 <! == }=======F  P ======Z ====d n =====x ==== } X;X;X;GAME DISPLAY LISTX;DLIST p=p=p F SCOMEM = DMEM! ========= } A DLISTX;X; START-"Q>H;;TITLE COLORS, PCOLOR06Q>(@PCOLOR0JQ>xTPCOLOR0^Q>hhPCO }LOR0rQ>;;BACKGND|PCOLOR0X;Q>DLTITL;;SHOW TITLE PSDLSTLQ>DLTITLPSDLSTLX;$>;;C }LEAR PAGE0 REGISTERSQ> CLRP0P90 ICLRP0X;$>;;CLEAR PAGE6ACLRP6P90& HCLRP60X;:Q>DME }M;;SET POINTER TODPDMLO;;SCREEN MEMORYNQ>DMEMX PDMHIb CLRSM;;CLEAR PLAYFIELDlX;v$>;;INITIALIZE SOUNDS }Q>NOSNDPAUDF190 INOSND SIOINVX;%>VBLANK;;START VBI$>VBLANKQ> SETVBVX;$> };;SET LEVEL &LEVHEXX; X;X;ROTATE TITLE COLORS X;*!ROTCOLQCOLOR0;;GET COLOR24 5;;SAVE IT>$>HCOLRQ }COLOR09;;GET COLORRPCOLOR09;;MOVE IT\0;;NEXT COLORf ICOLRp7;;GET COLOR2zPCOLOR0;;TO COLOR0X;Q>;;DELAY } PTIMERTMQCONSOLM>;;CHECK STARTFBEGIN;;PRESSED, BEGIN GAMEQTIMER;;TIME UP? HTM;;NOX; QCONSOLM }>;;CHECK SELECTHSHOLEV;;NOT PRESSED#LEVHEX;;PRESSED Q>;;BEEP PAUDC4 Q>y$ PAUDF4. Q> ;;DURATION8 PLV }LSNDB SHOLEVQLEVHEX;;GET LEVELL R> ;;TO BIG?V DOKLEV;;NO` Q>;;YES,RESETj PLEVHEXt OKLEVL>;;COLOR3~ $>a P }TITLE9;;DISPLAY IT !ROTCOL;;TITLE ROUTINE X; BEGIN"LEVHEX;;WANT (0-9) $LEVHEX;;START LEVEL &LEVEL &LEVORG;; }KEEP ORIGINAL LEVEL X; X; X;REDEFINE CHARACTERS X; Q>;;ADDR ROM CHSET POLDSET Q>CHBASE;;NEW CHBASE }PNEWSET Q>;;LOW BYTES( POLDSET2 PNEWSET< X;F $>;;DO 2 PAGES OF CHSETP CH1%>Z CH2Q@OLDSET7;;GET ROMd  }P@NEWSET7;;PUT IN RAMn 1x HCH2 #OLDSET;;DO NEXT PAGE #NEWSET 0 ICH1 X; "NEWCH$>';;REDEFINE CHARACTE }RS NEW1QCHR19;;GET CHAR DATA PCHBASE9;;MOVE IT 0 INEW1 X; X;GAME COLORS X; Q>;;SCORE NUMBERS PCOLOR0 } Q>;;SCORE LETTERS" PCOLOR0, Q>;;BUGS LEGS6 PCOLOR0@ Q>*;;MISSILESJ PCOLOR0T Q>;;BACKGND^ PCOLOR }0h X;r Q>DLIST;;GAME DISPLA ON| PSDLSTL Q>DLIST PSDLSTL X; Q>DLI;;SET DLI VECTOR PVDSLST } Q>DLI PVDSLST X; Q>;;ENABLE DLI PNMIEN X; "Q>CHBASE;;SWITCH CHAR BASE PCHBAS X; Q>;;ENA }BLE P/M PGRACTL& Q>>;;SINGLE LINE RES.0 PSDMCTL: Q>PMB;;HI BYTE PMBASED PPMBASEN Q>;;FIFTH PLAYER ENABLEX }PGPRIORb $>;;NORMAL SIZEl &SIZEP0v &SIZEM Q>PMB;;PLAYER0 BASE PVP0HI Q>PMB;;MISSILE BASE PV }PM0HI  CLRPM;;CLEAR P/M AREA X; !RESET$>';;DISPLAY SCORE LINE SCRLNQSCOLN9 PSCOMEM9 0 ISCRLN X; $>; };SCORE = 0 &SCORE &SCORE &SCORE  DISPSCO;;PUT ON SCORE* X;4 $>;;4 LIVES> &LIVESH  NEWLVL;;GET FIRST } LEVELR X;\ $>;;ENABLE MOVEMENTf &STOPp &HITCLR;;CLEAR COLLISIONSz X; X; X; X;MAIN LOOP X; PLAY COPY;;MO }VE BUGS  MFIRE;;MOVE MISSILES  DISPSCO;;SHOW SCORE  DELAY;;SLOW IT DOWN  MFIRE;;MOVE AGAIN  CKLEV;;CHECK LEVEL } QLVLFLG;;COMPLETE? FCHKP0;;NO  NEWLVL;;YES,DO NEXT LEVELX;CHKP0QP0DEAD;;PLAYER DEADFALIVE;;NO$!KILLP }0;;YES,EXPLOSION.X;8ALIVE!PLAY;;CONTINUE GAMEBX;LX;VX;PLAYER KILLED`X;jKILLP0Q>;;NO MOTIONt PSTOP~PP0 }DEAD;;RESET FLAGX;%>;;SHOW EXPLOSIONEXPQEXPLODE8;;DATAP@VP0LO7;;SHOW IT1IEXPX;Q> ;;TURN ON SOU }ND PAUDF3Q>" PP0SNDDLYQP0SND;;WAITHDLY X; CLRPM;;CLEAR P/M AREAX;("LIVES;;LOSE A LIFE2QLIVE }S;;ANY LEFT?< FDEAD;;NOF DISPLIV;;YES,SHOW THEMP CLRSM;;CLEAR SCREENZ SETUP;;SETUP LEVELd STARTP0;;RESTARTnQ> }xPHITCLR;;CLEAR COLLISIONPSTOP;;ALLOW MOVEMENT!PLAY;;TO MAIN LOOPX;X;X;X; GAME OVER ROUTINEX; }DEAD$>DD1QMESSAGE9;;GAME OVERPSCOMEM9;;SHOW IT0IDD1X; CLRSM;;CLEAR SCREENQ> PBUGCNT;;10 B }UGS" SET1;;SHOW THEM,Q> 6PBUGCNT;;10 BUGS@#DMHI;;NEXT PAGEJ SET1;;SHOW THEMT"DMHI;;RESTORE^X;hWAITQCO }NSOLrM>;;START?| HWT1;;NOWT2QCONSOL;;YESM>;;RELEASED? FWT2;;NO!START;;YES, DO TITLEX;WT1QSTRIG }0;;PRESSED?FRESTART;;YESQTIMER;;TIME UP? HWAIT;;NO COPY;;MOVE BUGSQ> ;;RELOAD TIMER PTIMER!WAIT;;KE }EP CHECKINGX;!RESTART$LEVORG;;ORIGINAL LEV&LEVEL;;RESET& &LEVHEX0 CLRSM;;CLEAR SCREEN:!RESET;;RESTARTDX; }NX;XX;bX;lX;SUBROUTINESvX;X;X;MISSILE ROUTINESX;MFIRE$>;;DO 4 MISSILESCKP0QM0PL9;;PLAYER HIT? }FNOMHIT;;NO#P0DEAD;;YES,SET FLAG!FMEXIT;;DONENOMHIT0;;NEXT MISSILE ICKP0X;$>;;DO 4 MISSILESCKMQ }M0PF9;;BUG HIT?FNOHIT;;NO  KILLBUG;;YES, DESTROY ITNOHIT0;;NEXT MISSILE ICKM*X;4$>;;CLEAR COLLISIONS> & }HITCLRHX;R$>;;MOVE MISSILES IF OUT\ FIREMQMSTAT;;MISSILE STATUSfMMDATA9;;IS IT OUT?pFNOMOVE;;NOz MOVEM;;YES }, MOVE ITNOMOVE0;;NEXT ONE IFIREMX;TRIGQTRGCNT;;CHECK TRIG?FCKTRIG;;YES"TRGCNT;;NO!FMEXIT;;DONE }X;CKTRIGQ>;;RESET IT PTRGCNTQSTRIG0;;PRESSED?FLAUNCH;;YES, TRY TO FIRE!FMEXIT;;NOX;LAUNCH$> }NEXTMQMSTAT;;ANY AVAILABLE?$MMDATA9;;CHECK BITS.HMOUT;;NO,ALREADY OUT8QMDATA9;;YESBLMSTAT;;UPDATE MSTATLPMSTA }T;;TO SHOW IT'S OUTV STARTM;;START IT`!FMEXIT;;CAN ONLY FIRE 1jMOUT0;;TRY NEXT ONEt INEXTM~ !FMEXITX;STAR }TMQ>;;MISSILE SOUND PAUDC1Q> PM0SNDX;QSHP0;;GET PLAYERS X POS.,O>;;OFFSET PHPOSM09PSHM09;; }SAVE MISSILE POS.X;; QVP0LO;;PLAYERS VERT .POSS>;;OFFSETPVPMLO9;;SAVE IT(X;2Q>A;;MOVE IT 65 TIMES< P }MSTOP9FX;P MOVEM;;MOVE ITZ:dX;nMOVEMQVPMLO9;;GET YxPVPM0LO;;SAVE ITX;"MSTOP9;;DONE?FCLEARM;;YES, C }LEAR ITX;QSPKFLG9;;SPIKE?HSPIKE;;YES%>;;NO,ERASE OLD POS.CLRMQMDATA9;;GET BITSN>;;MAKE MASKM@VP }M0LO7;;ZERO BITSP@VPM0LO7;;MISSILE OFF1 ICLRMX; SPIKE;QVPM0LO;;OLD Y"S>;;MOVE UP 3, PVPM0LO6PVPM!}LO9;;SAVE NEW Y@R>2;;TOP LIMITJDSPKON;;YES,SPIKE ONT %>;;NO^LOADMQ@VPM0LO7hLMDATA9;;GET MISSILE BITSrP@VPM!}0LO7;;MISSILE ON|1 ILOADM:X;SPKONQ>;;SPIKE ONPVPMLO9;;MISSILE TO BOTTOMPSPKFLG9;;SET FLAG:X;!}CLEARM%>;;ERASE A MISSILEQ> PVPM0LO!CLMQMDATA9;;GET MISSILE BITSN>;;MAKE MASKM@VPM0LO7;;ZERO BITS!}P@VPM0LO7;;TURN IT OFF1;;DO ALL OF MISSILE&HCLM0X;:Q>;;RESETD PMSTOP9N PSPKFLG9XX;bQMDATA9;;MISSILE BIT!}SlNMSTAT;;MISSILE NOT OUTvPMSTAT;;UPDATE MSTAT:X;X;KILLBUG CLEARM;;HIT A BUGQVPMLO9;;GET Y POS. PV!}PM0LOQSHM09;;GET X POS PHPOSMX;&SAVEX;;SAVE MISSILE # FIND;;GET MEMORY LOCATIONX;Q>;;ERASE THE BUG!}P@COLLO7;;FIRST PART 3P@COLLO7;;SECOND PART X;*Q> ;;UP SCORE4PSCOADD>X;HQ>;;SOUND ONR PAUDC2\Q>!} f PHITSNDp$SAVEX;;RECOVER MISSILE #z:X;FMEXIT:;TO MAIN LOOPX;MDATA = =0=X;X;X;X;SHOW!} NEXT LEVELX;NEWLVL<;;BCD ADDITION,QLEVEL;;BCD LEVELO> PLEVEL-X;$Q>.PSTOP;;STOP MOVEMENT8! }PLVLFLG;;RESET FLAGBX;L#LEVHEX;;HEX LEVELV QLEVHEX`R>;;TOO BIG?jDLEVOK;;NOt Q>;;YES~ PLEVHEXLEVOK$L! }EVHEX;;INDEXQLEVSPEED9;;GET LEVEL SPEEDPSPEED;;FOR COPY ROUTINEX;Q>;;NEW LEVEL SOUND PAUDC4Q> PAUD! }F4Q>P;;SOUND DURATION PLVLSNDX; CLRPM;;CLEAR P/M DISPLIV;;SHOW LIVES  DISPSCO;;SHOW SCORE SETUP;;NEX! }T LEVEL STARTP0;;START PLAYER(X;2Q>;;DELAY BETWEEN LEVELS< PTIMERFDLEV1QTIMERP HDLEV1ZQ>dPSTOP;;ALLO! }W MOVEMENTn:xX;$LEVSPEED ====== =  = = =====X;X;X;DELAY$SPEED;;SLOW IT DO!}WN DE1%>DE21HDE20HDE1:X;X;X;X;MOVE THE BUGS"X;,COPY$>;;DO 2 PAGES6 &CPYCNT@X;J!}%>T #DMHI^Q@DMLO7;;GET LAST BYTEh >;;SAVE ITr"DMHI;;RESTORE|X;CPY1%>;;SET TO FIRST BYTECPY2&CPYTMP!}Q@DMLO7;;GET BYTE >;;STOREQCPYTMP;;GET PREVIOUS BYTEP@DMLO7;;MOVE IT3;;NEXT BYTE HCPY2X;#DMHI;;NEXT !}PAGE"CPYCNT;;DONE? HCPY1;;NOX;"DMHI;;YES,RESTORE "DMHI:&X;0X;:X;D$X;CALCULATE SCREEN MEMORY ADDRES!}SNX;FROM P/M COORDINATESXX;b FIND;lQHPOSM;;X POSvS>0;;OFFSET V?;;/2 V?;;/4 >;;X COORDX;Q>;;CLEAR !}PTEMPHIX;;;;Y=Y/16*40 BYTES/LINEQVPM0LO;;Y POSS>0;;OFFSETM>;;Y/16*16V?;;SHIFT RIGHT (*8)PLOX8;;SAV!}E *8X;  T?;;*16 T?;;*32 UTEMPHI;;SHIFT CARRY*X;4,;;ADD *8+*32=*40> OLOX8HPCOLLO;;*40 LOR QTEMPHI\O>f!}PCOLHI;;*40 HIpX;z,;;GET FINAL COLLISION ADDRQ>DMEM;;SCREEN MEMOCOLLO;;ADD POSITIONPCOLLO;;COLLISION ADD!}R LOQ>DMEM OCOLHIPCOLHI;;COLLISION ADDR HIX; A;;GET X?;;Y=INDEX FOR X POS:X;X;X;X;SCORE!} AND LEVEL DISPLAYX;DISPSCO<;;BCD ADDITION$,.$>;;DO 3 BYTES8 TOTALQSCORE9;;GET OLD SCOREBOSCOADD9;;ADD TO !}SCORELPSCORE9;;SAVE SCOREV0` ITOTALj-tX;~$>;;CLEAR SCOADDQ>ZEROPSCOADD90 IZEROX;$>;;PO!}SITION 6%>SCODPQSCORE8;;GET BYTE DISP;;DISPLAY IT2;;NEXT POSITION23;;NEXT BYTE)>;;DO 3 BYTES  H!}SCODPX;DISPLVL$>;;POSITION 17(QLEVEL;;LEVEL2 DISP;;DISPLAY IT<X;F:PX;ZX;dDISPPDIGIT;;BCD # TO SHOW!}nM>;;LOWER NIBBLExL>;;COLOR0X;PSCOMEM9;;DISLPAY ITQDIGIT;;GET BCD #V?;;GET HIGH NIBBLEV?V?V!}?L>;;COLOR0PSCOMEM9;;DISPLAY IT:X;X;X;X;DISPLAY REMAINING LIVESX;)DISPLIVQ>PMB;;PLAYER !}1 Y POS." PVP1HI,Q>&6 PVP1LO@X;J$>;;REMOVE ALLTQ>;;FROM SCREEN^LD1PHPOSP09h0rHLD1|X;Q>;;COLO!}RSPPCOLR0PPCOLR0PPCOLR0X;$>;;DO 3 PLAYERS LD2%> LD3QP0DATA8;;SHAPE DATAP@VP1LO7;;SH!}OW IT1ILD3#VP1HI;;NEXT PLAYER0 ILD2 X; $LIVES& 0;;SHOW ONE LESS0 FLD5;;NONE TO SHOW: LD4QTABX9;;P! }OSITIONSD PHPOSP09;;SHOW PLAYERSN 0X HLD4b LD5:l X;v TABX === X; X; X; X;DISPLAY LIST INTERRUPT X!!}; DLI5;;SAVE X,Y,A A 5 C 5 X; $DLCNT;;WHICH LINE QBODYCLR9;;COLOR0!%SPOTCLR9;;COLOR1 !PWSYNC;;WAIT FO!"}R SYNC! PCOLPF0;;CHANGE HARDWARE REG !'COLPF0*!#DLCNT;;NEXT LINE4!(> ;;LAST ONE?>!HDLIEND;;NOH! $>;;YESR!&DL!#}CNT;;RESET TO TOP\!X;f!DLIEND7;;RESTORE X,Y,Ap!?z!7!>!7!9!X;!,BODYCLR ===V=~==F=*==f=!X;!,!$}SPOTCLR ==<====z=F==<=!X;!X;!X;!X;!X;CLEAR P/M MEMORY!X;"CLRPMQ>;;MISSILE BASE" PVPM0LO!%}"X;$"$>;;DO 5 PAGES UP."Q>8"?B"CPMP@VPM0LO7;;CLEAR ITL"1V"HCPM`"#VPM0HI;;NEXT PAGEj"0t"HCPM~"X;"Q>PMB!&};;RESET" PVPM0HI"X;"$>;;UPDATE TO SHOW"Q>;;ALL MISSILES OFF"OFFPSPKFLG9" PMSTOP9" PMSTAT"0"IO!'}FF"X;":#X; #X;#X;#X;START PLAYER(#X;2#STARTP0Q>;;Y START POS.<# PVP0LOF# Q>d;;XP# PHPOSP0Z# PSHP0d#X;n#!(}Q>x#PPCOLR0;;COLOR P0#X;#%> #DISP0QP0DATA8;;SHAPE DATA#P@VP0LO7;;SHOW IT#1# IDISP0#X;#:#X;#X;#X!)};#X;CLEAR SCREEN MEMORY#X;$CLRSM$>;;2 PAGES$Q>$?"$CSMP@DMLO7;;CLEAR IT,$16$HCSM@$#DMHI;;NEXT PAGEJ$0T!*}$ICSM^$X;h$Q>DMEM;;RESTOREr$ PDMHI|$X;$:$X;$X;$X;$X;PLAYFIELD SETUP$X;$SETUP RNDPF;;PUT ON BUGS$!+}#DMHI;;NEXT PAGE OF MEMORY$ RNDPF;;MORE BUGS$"DMHI;;RESTORE$X;$,$QDMLO;;FIND ADDR%O>;;SCREEN CENTER% PDML!,}O% QDMHI&%O>0% PDMHI:%X;D%%>;;CLEAR 4 LINESN%Q>;;IN SCREEN CENTERX%CP0SP@DMLO7;;FOR STARTb%1l% HCP0Sv%X;%!-}Q>DMEM;;RESTORE% PDMLO%Q>DMEM% PDMHI%:%X;%X;%RNDPF$LEVHEX;;INDEX%QBUGLEV9;;# TO DISPLAY% PBUGC!.}NT%X;%SET1%RANDOM;;POSITION% BUG;;SHOW THEM&"BUGCNT;;ANY MORE? &ISET1;;YES&:;;NO &X;*&BUG$>;;CHARACTERS !/}1-44& SBUGA>&P@DMLO7;;SHOW BUGSH&1R&0\& HSBUGf&X;p&:z&X;&BUGLEV == ==== & =======#=!0}#&X;&X;&X;&X;CHECK IF LEVEL COMPLETE&X;&CKLEV$>;;2 PAGES&%>&CKL1Q@DMLO7;;GET MEMORY&HNOTDONE;; IF<>!1}0 NOT DONE&1;;CHECK NEXT& HCKL1'#DMHI;;NEXT PAGE'0' ICKL1$'X;.'$>;;ALL ZERO,LEVEL DONE8'&LVLFLG;;SET FLAGB' !2}HLVLDONEL'X;V'NOTDONE$>;;NOT DONE`' &LVLFLGj'LVLDONEQ>DMEM;;RESETt' PDMHI~'X;':'X;'X;'X;'X;'X;'!3}X; VBLANK ROUTINE'X;'X;' VBLANK-'X;'$TIMER;;COUNT DOWN TIMER( FSOUND1 ( "TIMER(X;($SOUND1$M0SND;;MISSILE S!4}OUND ON?((FNOSND1;;NO2(QM0SND19;;YES, NEXT FREQ<( PAUDF1F( "M0SNDP( HSOUND2Z(NOSND1Q>;;OFFd( PAUDC1n(X;x(#SOUND!5}2$HITSND;;BUG HIT SND ON?(FNOSND2;;NO(QHITSND29;;YES, NEXT FREQ( PAUDF2( "HITSND( HSOUND3(NOSND2Q>;;OFF( P!6}AUDC2(X;("SOUND3QP0SND;;BLOW UP SND ON?(FNOSND3;;NO( V?;;YES,/2( PAUDC3( "P0SND) HSOUND4)NOSND3Q>;;OFF)!7} PAUDC3")X;,)SOUND4$LVLSND;;SOUND 4 ON?6)FNOSND4;;NO@)"LVLSND;;YESJ) HSTOPVBT)NOSND4Q>;;OFF^) PAUDC4h)X;r)S!8}TOPVBQSTOP;;CONTINUE?|)HCOLCK;;YES)EXIT!XITVBV;;NO)X;)COLCKQP0PF;;PLAYER HIT?) FMOVE;;NO)#P0DEAD;;YES,SET F!9}LAG) !EXIT)X;)MOVE$SHP0;;PLAYER X POS)%VP0LO;;Y POS)X;) QSTICK0)V?;;CHECK D0)ENOTUP;;SET,NO MOTION*1;;N!:}OT SET,MOVE UP 2*1*X;&*NOTUPV?;;CHECK D10*ENOTDOWN;;NO:*3;;MOVE DOWN 2D*3N*X;X*NOTDOWNV?;;CHECK D2b*ENOTLEFT;;!;}NOl*0;;MOVE 2 LEFTv*0*X;*NOTLEFTV?;;CHECK D3*ENOTRT;;NO*2;;MOVE 2 RIGHT*2*X;*NOTRT(>2;;LEFT LIMIT*DBAD!<}X;;TOO FAR*(>;;RIGHT LIMIT*DGOODX;;OK? YES*$>2;;NO,RESET TO LEFT*GOODX&SHP0;;NEW X POS* &HPOSP0+X; +BADX)!=}>Z;;UPPER LIMIT+DBADY;;TOO FAR? YES +)>;;LOWER LIMIT*+EBADY;;TOO FAR? YES4+'VP0LO;;OK, SAVE IT>+X;H+BADY%> ;;R!>}EAD IN PLAYERR+LP1QP0DATA8;;AT VP0LO\+ P@VP0LO7f+1p+ILP1z+X;+Q>;;STOP ATTRACT+ PATRACT+!EXIT;;ALL DONE+X;!?}+X;+X;+X;DATA TABLES+X;+ P0DATA+- =======>=>=>=>=>==+X;+ EXPLODE+ ==J="=H=D=!@}==, ===E==H===,X;, M0SND1$,! =========., d=K=A=2=-=(8,X;B, HITSND2L,' !A}x=d=Z=P=K=F=2=(=== =V,X;`, MESSAGEj, ========t,X;~, CHR1 =======, =!B} =3=V=Z=V=3= , ==3====3=̜, ==3=V=Z=V=3=̦, ==0====0=,X;, SCOLN,* s=c=!C}o=r=e========, l=v=l===, ,X;,3=̦, ==0====0=,X;, SCOLN,* s=c= F 'L pppppG! ppppppppppppp0A +r:y+a%r)l!r%E}pppF0(0A ةH(xh0 1(©0 %F}% es& \ Hh)4) ҩyҩ     Тa! L!    %G}Ʃ(ȩŅǢőLj'e'(̍*0 1g%ԩ(Щ>/(ԩoЎ %H},+ %''0 $ $ u$ " $ i$ " R&  $ LG"L"" .' ҩ" %%I} %% % % %ЍL""\'0 %  ,&  ,&í) )L  u$ L"    %L!%J} L# #Т=# n#L#L#=##  J#L#L#ҩiЕ8%K}A n#`5 #I182 #` `#I1 #M` # $%L}ȑ ҩ `` 0 i ة     Y$ҩȍҩP % %% $ % %`%M}  `ñªàª`80JJ80)J .mi(e0e`%N}}آ %  %`) 0JJJJ 0`-& ' %O}c%`HHHĽ%% ԍЌ hhh@V~F*f<zF<+ `dЅ%P} '`ˆ0` #& #&i¥iàˆ(©0` B& 8&`ˆ`  ##%Q}  0`خ @'Ү P'ҭ JҮҭLb%R} L&xJJJJ2 А2Z 'ML&>>>>>J"HDEHȴdKA%S}2-(xdZPKF2(  3VZV3 333VZV300scorelvl% ȴdKA$t78V l BFNABFF1LINRETRBACKSCHKSUEDILBYTDMOD@)U}  GG9@,;@,)V};@,;@,;@,;@, ;@,?6-A6-AU'6-A&36-?6-I)W} AP-@@8(tart or ontinue? B AI(>:,(?-@@#(FILENAME'9AR@)X}?( 25B:, @$-@ @+( 5 @@<?7@<@,0D:&6.D:567@,.? @F)Y} 6.P>:,4SA Z4 A0*@@4 Ad@-@@$)@( 66)Z}-%@@ An5@+@@ 5 Apxr A`*@@4 A@)[}F-@@`(FILE ALREADY EXISTS!!rARH-@@%( ERASE IT? / AAAR@)\}H(>:,,>:,4N)>:,4n"@, @0>:,0Y*>:,0yA0+@+@@)]}? AP-@@3( נΠ: ?6-6-@#-@@W-@$+ @,%@)^}$+!@ ,%@iAR|(BYTE #:  A$*"6-8,$ A 6-A:,)_} 6. -@"%@ ( 0 68,-6-%$"!A06-&B) 6-%!A)6-&B)`}O-@%@)AR9( CHECKSUM: E6-@O A*"Ap 6-A:,!-)a}@"%@!( "A"/ A@6-@%6-/ A,O-@@'*@)b}8,+ 96-%@E6-O Ap66-@- A-"@:Q,*"@*(A J++**+ @H)c})!@W,A K"*46.O%%"*"*!@APT&&++"*(,)",*"A ^$ ")d}AR@!( $$hAr2!@(6.7@<&@,2 A| 6.# (>:,6-&@)e}# A '6-%@!6-' AP!67,.>:,(>:,! A  +^ A@-@)f}@1( NO SUCH FILE!E-@AI T@^ @0tA@H72A@@)g}K-@@PO q2t$U +@#@A1B7tACAY)q}=B%DOS SYSB*)DUP SYSBSBITPIEC1BASBeBITPIEC2M65B|BITPIEC3BASBBOOTCAMPM65BHOTPOKERBASB HOTPOKERM65BKRAZYKATM65BDKRAZYKATOBJBTMLEDITORBASBOuPICCNVRTBASB PICTURE STBB$SCROLLITBASBTEXTUAL1BASBTEXTUAL2BASBTEXTUAL3BASBTEXTUAL4BASBTEXTUAL5BASBTEXTUAL6BASB TEXTUAL7BASBTEXTUAL8BASBTRAILJOYOBJB4TRAILPADOBJBQTRAILS1 ACTBgTRAILS2 ACTBmTRAILS3 ACTBsVSCROLL1LSTBVSCROLL2LSTBVSCROLL3M65UA@U-6-F:A`,%AV$F:Aa,%@A&@@pU%@@_-@)r}@9@-%@1 M-@@@@[%_ W%@A@e.%@BF:A`,)s}E%@CF:Aa,W@?-@*(analog ml editor<AY@4?$>#@@)t}K:0)@;@>$D:MLEDITOR.BAS(analog ml editor<AY@4?$>#@@(? Y'o'PK1PK2PK3AFROTOPFMTDESINTEMPCNOUTGR7PLUSCREEPOKCOLCOLUTOP2DIRKBYTH2HEADERTYPIN-v}BUFIINITBPG6TEMP2DLPOKGRCNVDTOxx K-w}   BXWBYYBXB BXWA!A:,.67@,.:F-(-(-|}!Want a directory listing? (/) >P,)@,>:,0Y*>:,0N@Z (>:,>:,4Y A@d+(!('FR-}}OM' file name? >+ An:67@,.6.+6-?::,.67@,.:)(('TO' file name? >) A:67@,.6.-}+6-?:-}-@+6-P:8,'@,>6-8,&$@Je-@%@(<-@&+!@ ,%@A(a-@-}0&+!@ ,%@e(TM-@%@4(POKE A%,8,8 JARM(^L'(Convert m-}ore pictures? (/) >4)@?>:,0YF(>:,I(Lh: (>:,@ @&6.0 A@: @ r-}Ӡ|@6-F:A, +((Error #'( (Want to re-try? (/)'(>)@>:-},4Y% ( ˠ٠=67@,.*.*3@@= Ap (}-@@-}@( A`@6.7@<@,$ԠŠb6-F:@,66-F:@-},&+F:@,"@#,C@J4P-X(b A$ԠŠҠ( ( - ) >,)-}@,>:,21)>:,34A@& (>:, $0ԠŠƠŠ:((, , or ) >D/)@6.>:,/-}21)33ApN# 41#6.-icro)llustratorX 426. -icro0ainterb 436. &unwith!rtl ( -}$v##ĠϠҠŠ4-@@$)@067,.>:,4 ^ 0+(2( ERROR! - -} is not aN(Micro Illustrator file.Q(T'^ A5)@$-@@1)@5 ?--}@$)@-68,-;A%? (-@@ $)@( 9AP@/6-?:<A-}RG66-?:<AP<@<AR<<AV<A@,G6-?:<@,H(-@@$)@( R?.-}6-?:<AR<%A@<AV<A6,?6-?:<@,\$f00ŠĠϠҠŠp6 #A 0-}!-@@%"2*@6 z+-@'*@8,+ ,-@@ "(*@-}, G66-?:<AP<@<AR<<AV<Av,G6-?:<@,$,,255,128,201,199,26,0,1,0,14,0,40,0,192-}##27,30,0,0,155,155,155,155,162ŠϠҠŠG66-?:<AP<@<AR<<AV<Av,G6-?-}:<@,A*@8@,--@=*@8,A $ŠΠȠԠŠg*@-}AT)*@AT?*@8@,S-@c*@8,g J96-?:<AP<@<AR-} #AP!-@@%%"167,.>:,5 >-C:,L--@-}A8")A5%- V* 216 BYTESt+-@@6"'67,.>:,+ ~+-@AV"'67,-}.>:,+ 4-@@w"'67,.>:,+ 46-C:,4-@@H"'67,.>:,+ 46-C:,4-@-}@7"'67,.>:,+ 46-C:,:-@A "'67,.>:,+ 46-C:,:6.#@@-}K:C@@E:]0@@@w0@@0@@d-6-}-F:@,%AV$F:@,%A d6-?:<%@<<%@<<%@5<<A`<,$HH104,74,170,160,0,104-},133,255,104,133,254,104,240,4,200,145,254,136 104,145,254,202,208,237,96* 25 BYTESCC132,213,132,207,177,203,8-},32,110,6,40,24,42,38,207,74,133,212FF208,14,177,203,133,213,32,110,6,177,203,133,212,32,110,6,165,207BB240,34,177,20-}3,32,110,6,145,205,166,214,224,2,208,6,32,215,6 EE76,60,6,32,117,6,198,212,208,230,165,213,240,188,198,213,16,222EE177-},203,133,209,32,110,6,165,209,145,205,166,214,224,2,208,6,32DD215,6,76,98,6,32,117,6,198,212,208,233,165,213,240,150,198,-}213(EE16,225,230,203,208,2,230,204,96,24,165,205,105,80,133,205,144,22JJ230,206,165,205,197,217,208,42,165,206,197,218,-}208,36,165,208,208,33<HH230,208,24,165,215,105,40,133,205,165,216,105,0,133,206,24,165,217FGG105,40,133,217,144,2,230,2-}18,230,215,208,2,230,216,96,198,208,165PII215,133,205,133,217,165,216,133,206,24,105,30,133,218,24,165,88,105ZHH40,170,-}165,89,105,0,228,205,208,224,197,206,208,220,104,104,96,230dGG205,208,2,230,206,165,88,197,205,208,205,165,89,24,105,30,19-}7,206n208,196,240,230x* 238 BYTESLL104,104,133,204,104,133,203,104,168,104,133,214,165,88,133,205,133,215"EE-}133,217,165,89,133,206,133,216,24,105,30,133,218,132,208,76,0,6,* 36 BYTES|==112,112,112,78,0,80,14,14,14,14,14,14,14-},14,14,14,14,14;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,-}14,14,14;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,1-}4;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,78::0,96,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;1-}4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;14,14,14-},14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14;;14,65,0,6,104,1-}70,104,141,1,2,232,208,3,238,1,2,142,0>>2,104,170,104,64,169,0,141,0,2,169,0,141,1,2,169,192,1410014,212,76,95,228,0,-}0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0* 256 BYTES@@104,173,48,2,24,105,3,133,203,173,49,2,105,0,133,204,160,0GG17-}7,203,201,79,208,21,169,78,145,203,165,203,24,105,2,133,203,165DD204,105,0,133,204,169,0,240,15,201,15,208,6,169,14,145,2-}03,208BB5,201,65,208,1,96,165,203,24,105,1,133,203,165,204,105,0,133204,169,0,240,197* 77 BYTES8KK104,104,-}133,204,104,133,203,104,168,133,253,104,133,205,6,253,177,203B@@10,102,253,74,201,32,176,5,24,105,64,144,7,201,96,176,3,56-}L11233,32,5,253,145,203,200,196,205,208,223,96V* 48 BYTESX22112,112,80,66,0,0,32,2,0,2,16,66,0,0,2,2,2,2b**2,2,-}2,2,2,2,2,2,2,2,2,2,2,2,2,2,65,0l0v* 37 BYTES@MM128,128,176,169,163,180,181,178,165,128,163,175,174,182,165,178,-}180,165JMM178,128,226,249,128,163,232,225,242,236,229,243,128,170,239,232,238,243T==239,238,128,128,128,166,242,239,237-},154,0,0,0,0,0,0,0,0^++0,0,0,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0h550,0,0,0,0,0,0,0,128,128,128,180,239,154,0,0,0,0r++0,0-},0,0,0,0,0,0,0,0,0,0,0,124,0,0,0,0|0,0,0,0,0,0,0,0,0,0,0,0* 120 BYTESD:PICCNVRT.BAS9,154,0,0,0,0r++0,0,g10 REM ********************** 20 REM ** SHOWPIC DEMO ** 30 REM ** -- ** 40 REM ** By Mathew Spolin ** 51}0 REM ********************** 60 REM 70 REM This is the demo driver. 80 REM The actual program starts at line 6400. 90 RE1}M 100 FULLW 2:CLEARW 2 110 COLOR 2:?"VALID EXTENDERS:":COLOR 3:?" .NEO - Neochrome Image" 120 ?" .PI? - Degas Image":C1}OLOR 1 130 ?:INPUT" File to load --> ",FILE$:IF FILE$="QUIT" THEN END 140 GOSUB SHOWPIC:GOTO 100 59997 ' 59998 ' The SHOW1}PIC Subroutine Follows. 59999 ' 64000 SHOWPIC: 64010 COLOR$=SPACE$(32):ERASE PAL%:DIM PAL%(15):IGNORE=0:A#=GB 64020 SCREE1}NREG#=&H44E:SCREENRAM#=PEEK(SCREENREG#):PALREG#=&H45A 64030 GINTIN=PEEK(A#+8):SAVEP=16745024:COUNT=0:FOR REGISTER=0 TO 15 61}4040 PAL%(REGISTER)=PEEK(SAVEP+COUNT):COUNT=COUNT+2:NEXT REGISTER 64050 IF RIGHT$(FILE$,3)="NEO" THEN IGNORE=128:FORGET=4 61}4060 IF LEFT$(RIGHT$(FILE$,3),2)="PI" THEN IGNORE=34:FORGET=2 64070 IF IGNORE=0 THEN RETURN 64080 POKE CONTRL,123:POKE CONT1}RL+2,0:POKE CONTRL+6,0:VDISYS(0) 64090 CLOSE #1:OPEN "I",#1,FILE$:A$=INPUT$(FORGET,1) 64100 COLOR$=INPUT$(32,1):CLOSE #1:NE1}WC#=VARPTR(COLOR$) 64110 POKE PALREG#,NEWC#:GOSUB 64180 64120 BLOAD FILE$,SCREENRAM#-IGNORE 64130 POKE GINTIN,1:POKE GINTI1}N+2,1:POKE GINTIN+4,1:GEMSYS(21) 64140 POKE PALREG#,VARPTR(PAL%(0)) 64150 GOSUB 64180:POKE CONTRL,122:POKE CONTRL+2,0:POKE 1}CONTRL+6,1 64160 POKE INTIN,0:VDISYS(0) 64170 RETURN 64180 POKE CONTRL,3:POKE CONTRL+2,0:POKE CONTRL+6,0:VDISYS(0):RETURN 1} NTRL+6,1 64160 POKE INTIN,0:VDISYS(0) 64170 RETURN 64180 POKE CONTRL,3:POKE CONTRL+2,0:POKE CONTRL+6,0:VDISYS(0):RETURN 0ab  MESSAGEVBORDLISTDLISDLENPGDLBESPEECSCROLINITVHIGLOMEANTIOFFSECHASCROLLBYTE=A65}nB"B"B"@AYAW A` @Q @ @H AY@@5}@$@b@A`B# ************************** * Scroll-it! * * By Ma5}rk Sloatman *( * For ANALOG Computing *2 **************************<F;A,P%6-A6;A5},%6-C:,ZZZCorrects address of beginning of Display List if it is going to cross a 1k boundary.d*6-%@U*65}-P:'A$,$A$n) 6-& @U)6-%+@U&,x66delete line 110 if you want the VBI in a string. DIM5} VB$(71):VBORG=ADR(VB$)'6-AY6-AW'6-A`AUdon't scroll!9 +@AR@5}90@Q0@@70@@@Q0@@@]-@@5},(@ SCROLLIT!>-@@](@by mark sloatman p-@@&(@8-@@5}V(@analog computingY(p( Just a moment...+ A0+put VB routine into memory.@ #A !-A5}`Ai%"+/ @INITVB routine%%104,162,6,160,0,169,7,76,92,228$6-P:'AV,$6-&$AVDA5}bAdDTell INITVB where VBROUTINE is located7-%@6"! 7SET UP DISPLAY LIST^^112,15}12,112,66,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,82,0,0,112,112,112,65,0,6P6-F:A,&@&A465}-%@>+PMemory for msg.l0@lchange this line if you want to use Inverse Upper case 5}in Gr. modes 1 and 2."0@@70@@@Q0@@@You may, of course, 5}use any color you wish.,44Tell Display List where memory is for display.6?%@0(%@F:@,?%@5}F:@,@AAR@'-@@!A(Another sec please...JO'-+,$AV+%@,$AV35}7 OClear message memory.TAR^(>:A%, APh33Don't want old message on sc5}reen!rP(+( Please select the Graphics modeP( desired for the scrolling line.|8(( Text modes 0,1 or 28( ANT5}IC mode 4 or 5 AUStop msg.%%"@)!@AP'"6-@'6-@H'5}"@6-@'6-@$'"@6-@'6-@$+!@* @6-+6-@HZ!%@5}(%@d%@26-P:'AV,B6-&$AVNA`ZAa A`*(&( Speed (0-fastest,3-s5}low) *&("( Please input message &*-@B:,*6-F:C:,%&@,88these lines convert ATASCII t5}o ATARI INTERNAL CODE55@*A')A$*AUA`'@16-%@d' A`'@5}6-&@2' A`'AY6-%@d' A`&A#6-&@20+,$AV%%: 5}D55POKE VBORG+37 with 7 for GRAPHICS modes 1 and 2N7"@)"@-%@7@7 A0XddPOKE VBORG+5}37 with 3 for GRAPHICS mode 0 and ANTIC modes 3,4 and 5 (also map modes 7,7+ AND 8)b%@7@l``VBORG+37 cont5}ains the number of times a finescroll needs to be done before a coursescroll.v 6-?:,Start the VB!"(>:A%,(5}"( All done.KAR@9( hit RETURN for another messageKAdAU99if message scrolls off screen 5}then scroll it again.F:,!B:,%K36-%+R:,"@,&+R:,"@,? K6-5}!@6-@@ F:Ad,"AU2-@@P6 @ ApAdAU A05}%%*VERTICAL BLANK SCROLL ROUTINE*+ #Ap-%@p!"'+ ppNeed to tell VB routine where pointer is i5}n Display List for memory shown.(So we can do the course scroll)N6-%@)"6-P:'AV,26-&$AV@%@`5}N%@a$ll216,173,3,1,201,255,240,60,173,2,1,208,52,173,3,1,141,2,1,206,0,1,173,0,1,48,9,141,4,212,141,0,15},76,98 ``228,169,3,141,4,212,141,0,1,238,1,1,173,1,1,201,216,208,5,169,0,141,1,1,141,29,6,76,98,228206,2,1,76,98,2285}D:SCROLLIT.BAS41,4,212,141,0,1,238,1,1,173,1,1,201,216,208,5,169,0,141,1,1,141,29,6,76,98,228206,2,1,76,98,2284 h~A0 p +p(^WHAT IS MORE APPEALING TO YOU? SEEINGTHE TEXT PRINTED TO THE SCREEN WITH NOFORMATTI9}NG EFFORT?(((OR...$-@A0( P +AR@1-@@P(A NICELY FORMATTED SC9}REEN,(i-@@3(WHERE CARE HAS BEEN TAKENE-@@i(IN THE POSITIONING OF THE TEXT?2 @P9}D:TEXTUAL1.BAS3(WHERE CARE HAS BEEN TAKENE-@@i(IN THE POSITIONING OF THE TEXT?2 @P8A@ 2 +-@@2(THIS IS A TEST#-AU#A -=}@@P  D:TEXTUAL2.BAS-@@2(THIS IS A TEST#-AU#A -<. C +AR@1A @CAA``-@@4(JUST A SIMPLE COLOA}R CHANGEF-@ @`(CAN IMPROVE THE LOOKS)-@@)(OF YOUR SCREEN.( @@D:TEXTUAL3.A}BASANGEF-@ @`(CAN IMPROVE THE LOOKS)-@@)(OF YOUR SCREEN.( @@D:TEXTUAL3.@A@A# D +A @1-@@D(THIS IS A TEST+-AUE}@+A-@A  D:TEXTUAL4.BAS@D(THIS IS A TEST+-AUDHMOD@A% 6-@b+-@5(@want your textG-@@b(J}@ to stand out?e-@6(@the graphics 1 or 2H-@@e(@MuIcOr textJ}(Z-@@/(@ modes may beA-@@Z(@ just right.2"@@p<16-@J}#-@A%' 1 @ F @pD:TEXTUAL5.BAS just right.2"@@p<16-@HHB$$@! ;;@6,;6.$| |C +ARN}@1A @CAA`>-@@>($(+-@@ N}#-@'(+ 2>-@@!>($<V-@ @0(A SIMPLE SCREEN}N BORDERB-@@V(PLEASES THE EYEF2-@@2(AND UNIFIES THE DISPLAY.P @D:TEXTUAN}L6.BASRB-@@V(PLEASES THE EYEF2-@@2(AND UNIFIES THE DISPLAY.P @D:TEXTUALB C +AR@1A @CAA`''(R }''(| If you have a lot of data |''(| to display, you can take |''(| the border ideR }a one step |#''(| further, and set up a well |(''(| organized chart. |-''(R }2''(| TITLE |7''(<''(| ITEM 1 | COMMENT |R }A''(| ITEM 2 | COMMENT |F''(| ITEM 3 | COMMENT |K''(| ITEM 4 | COMMENT |P''(R}Z @D:TEXTUAL7.BASENT |K''(| ITEM 4 | COMMENT |P''(PB DBr m +AR@1A @CA@m6-F:A`,%AV$F:Aa,V}%@g&@@q+%@@?%@ @S%@!@g%@"@E%@#V}@e.%@$F:A`,E%@%F:Aa,(I-@#'( 9-@$@I( USER PROV}MPT2f-@@6(A SIMPLE MODIFICATION TO THEH-@@f(DISPLAY LIST CAN GIVE YOU<j-@@V}5(SEVERAL TEXT SIZES, AS WELLG-@@j(AS DIFFERENT BACKGROUND COLORSFf-@@6((WITHOUT RESOV}RTING TO TRICKYH-@@f(DISPLAY LIST INTERRUPTS).P @D:TEXTUAL8.BAS@6((WITHOUT RESOTcH'6 (c)1983 Action Computer Services  B JKIHiDiELV`L'Z} ' BLV`uL''l L' &` Fj`8冨凪` (EӅӥZ} (`ʆǪƩ Ɛee` $(ƦʆǢ &Ɛeǐ H( H(L( $('&&&8儨児Z}祂*L(&&*ń8&&L( (`hihiHHȱȱL'c !#3`Z}L'JJJJ`H 'h`Hȩh 'L5) 'L5) i'L5) q'L5) w'H8Z}`HhHh )L5) BHI V䅠L5) L) 'L5)Ԇ ؠPIPP`Z} *P q'L5) 1*L) *L6* J*L*H- *8塪墨hLJ* c*L) j*L* *ȹP`Z}텠8堨塪 *芨Oȩ-`PP )P棩 Ѥģ0-ģ6000:,80H Z}& &ehe&eģ0ʥ 8堅塅`$ )&*i0:0i )Ʀ`¢ 护Z}°ڱ%ȱ%E )L+担CS )L+I c*L+H ^+L+ 1*L+ &B V 5)NLMȑZ}` MLN%B VL5)S:F,E:K,H ) N,O, Y) )h)0II,J,LY)[\ZUVT` ,I,J,Z }` ,L * ~,L) ,L)) ` ,L * j(` 0d 'ҥ `2)2Z!}ҩ`p`0)9E-`@0)ӈJJJJ)`Ѕ`ȱ`` y-ȥ`HhZ"}ƣĢ`ƥĤ`Ѣ .`ȱѢĦ`膡`Z#}`ťƤe8夰L. Ƥ8`ŦeѠe桊L.9Z$}6=PriC(xL.........͞...L/nt. m..*(m.. m..*(m.ȑ.Z%}Щ.L.. P,Ȍ , j(i.L/@ , , ,@ ,@ ,`L/ Z&}.L/ ""/ ) )L/ Draw with joystick.../ ) )L0 button: Ҡ and Ţ/ )L'0 Z'} 0 ) )LU0 ANY KEY: Ӡ04 )L0 or Ţ0_ ) Z(}) ) )L0$------------------------------------0 )IL1L0 Hit any button to start:0 ) 2- 2-Z)}I b-L0`L1 / )#.. (..LZ1Persistence is now 1F ).. B* )L1Enter new persisteZ*}nce (1-10): 1p ).. 1*L11 ).I  .IL1L11 ) *..`11 L1 (18111181Z+}1111i@1i1 ,IL32L821i@1i1 ,.IL 31i@1i1 ,1i@Z,}1i1 ,1i@1i1 ,1i@1i1 ,1i@1i1 ,1i@1i1 ,1i@Z-}1i1 ,M.L'3)IL3`ENL13._.._. I--3,3,3)-3) (,3)Z.}-3) (8媍(3嫍)3,3)-3),3)-3) (8媍*3嫍+3)3(3 j(Z/}.e..e.+3*3 j(.e..e...͘..LN4._...͚..Ls4._Z0}. b-L4 ..IL4.L4. b-L4. m..*(m.. m..*(m.ȱ Z1}1. m..*(m.... m..*(m..ȑ.. m..*(m.ȱ. m..*(m.ȱZ2} 1...͜...L5..ILC3`L5 /IL6 1 ͠..L5. .L5..L5 P,Z3}`#.. j(.. . .3L5`5ILC3`L5 /IL6 1 ͠..L5. .L5..L5 P,X1G'c5 (c)1983 Action Computer Services  B JKIHiDiELV`L'^5} ' BLV`L''l L' &` Fj`8冨凪` (EӅӥ^6} (`ʆǪƩ Ɛee` #(ƦʆǢ &Ɛeǐ G( G(L( #('&&&8儨児^7}祂*L(&&*ń8&&L( (`hihiHHȱȱL'c !#3`^8}L'JJJJ`H 'h`Hȩh 'L4) 'L4) h'L4) p'L4) v'H8^9}`HhHh )L4) BHI V䅠L4) L) 'L4)Ԇ ؠPIPP`^:} *P p'L4) 0*L) *L5* I*L*H- )8塪墨hLI* b*L) i*L* *ȹP`^;}텠8堨塪 *芨Oȩ-`PP )P棩 Ѥģ0-ģ6000:,80H ^<}& &ehe&eģ0ʥ 8堅塅`$ )&*i0:0i )Ʀ`¢ 护^=}°ڱ%ȱ%E )L+担CS )L+I b*L+H ]+L+ 0*L+ &B V 4)NLMȑ^>}` MLN%B VL4)S:E,E:J,H ) M,N, X) )h)0IH,I,LX)[\ZUVT` ,H,I,^?}` ,L* },L) ,L)) ` ,L* i(` 0d 'ҥ `2)2^@}ҩ`p`0)9D-`@0)ӈJJJJ)`Ѕ`ȱ`` x-ȥ`Hh^A}ƣĢ`ƥĤ`Ѣ .`ȱѢĦ`膡`^B}`ťƤe8夰L. Ƥ8`ŦeѠe桊L.L9d^C}5L.........͝...L/. m..*(m.. m..*(m.ȑ.^D}Щ.L.. O,Ȍ , i(i.L/@ , , ,@ ,@ ,`L/ ^E}.L/ ""/ ) )L/ Draw with KoalaPad.../ ) )L0%LEFT __\ Ҡ /__ RIGHT/ ^F})L50%button / \ button0 ) )Lc0 ANY KEY: Ӡ0B )L0 or ^G}Ţ0m ) ) ) )L0$------------------------------------0 )IL)1L0 Hit any button to start:0 ) 1-^H} 1-I a-L0`L-1 / )#.. (..Lh1Persistence is now 1T ).. A* )L1Ent^I}er new persistence (1-10): 1~ ).. 0*L11 ).I  .IL1L11 ) *..`L1 (1811^J}11811111i@1i1 ,ILA2LF21i@1i1 ,.IL31i@1i1^K} ,1i@1i1 ,1i@1i1 ,1i@1i1 ,1i@1i1 ,1i@1i1^L} ,1i@1i1 ,M.L53)IL&3`L93 *-_ i(r (8..^M} *-_ i(r (8.. 1-L3 ..IL3.L3. 1-L3 1-L3^N} .. m..*(m.. m..*(m.ȱ 1. m..*(m.... m..^O}*(m..ȑ.. m..*(m.ȱ. m..*(m.ȱ 1...͟...L4..^P}IL93`L4 /ILS5 *1 ͟..L%5. .L:5..L:5 O,`#.. i(.. . 63L4`4\};TRAILS.ACT; Copyright 1986 by Kevin Garlow; Last modified 1-3-86; CHECKSUM DATA;[E7 5F 32 D9 1B 77 3D 89 ; 74 05bR} 6C C4 EB C2 6B ]DEFINE pers_ratio = "35"BYTE col1=709,col2=710,border=712, cur=752,key=764,attract=77, clock=2bS}0,mirror=[1],modeCARD ARRAY x(500),y(500)CARD x0,y0,n=[0],i,maxpts=[175] PROC Setup(BYTE mode)FOR i=0 TO maxpts DO bT}x(i)=0:y(i)=0ODGraphics(mode) : col2=0 : col1=14cur=0 : color=1 : border=16*Rand(16)+2IF mode<>0 THEN Plot(64,0) DrawbU}To(192+64,0) DrawTo(192+64,191) DrawTo (64,191) DrawTo (64,0)FIRETURNPROC Instructions(); =======================bV}===========; = for KoalaPad =; = (see listing 2 for joystick) =; ==================================SbW}etup(0)PrintE(" """"")PutE()PrintE(" Draw with KoalaPad...")PutE()Print("LEFT __\ Ҡ bX} ")PrintE("/__ RIGHT")Print("button / ")PrintE("\ button")PutE()Print(" ANY KEY:")PrintE(" bY}Ӡ")Print(" or ")PrintE("")PutE()PutE()PutE()Print("------------------")PrbZ}intE("------------------")IF key=255 THEN Print(" Hit any button ") Print("to start:") DO UNTIL (PTrig(0)=0 OR PTb[}rig(1)=0 OR key<>255 OR STrig(0)=0) OD key=255FIRETURNPROC Get_pers()Instructions() key=255PutE()maxptb\}s==/pers_ratioPrint("Persistence is now ")PrintCE(maxpts)PutE()Print("Enter new ")Print("persistence (1-10): ")PrintC(mb]}axpts) Print("")IF maxpts=10 THEN Print("") FImaxpts=InputB()RETURNPROC Octplot(CARD x0,y0)CARD x1,y1x1=191-x0y1b^}=191-y0IF Locate(x0+64,y0)=1 THEN color=0ELSE color=1FIPlot (x0+64,y0)IF mirror=1 THEN Plot (x0+64,y1) Plot (yb_}0+64,x0): Plot (y0+64,x1) Plot (x1+64,y0): Plot (x1+64,y1) Plot (y1+64,x0): Plot (y1+64,x1)FIattract=0clock=0IF mirrob`}r=0 THEN DO UNTIL ((clock&1)=1) ODFIRETURNPROC Draw();===================================;= for KoalaPad ba} =;= (see listing 2 for joystick) =;===================================DO x0=(Paddle(0)*95/114)-1 y0=(Padbb}dle(1)*95/114)-1 IF PTrig(1)=0 THEN Setup(24) IF mirror=1 THEN mirror=0 ELSE mirror=1 FI DO UNTIL bc}PTrig(1)<>0 OD FI IF PTrig(0)=0 THEN Setup(24) FI Octplot(x(n),y(n)) x(n)=x0 y(n)=y0 Octplot(x(n),y(n)) n=bd}=+1 IF n>=maxpts THEN n=0 FI UNTIL (key<>255)ODRETURNPROC Main()Instructions()DO IF (key<>255) THEN Get_perbe}s() IF maxpts >10 THEN maxpts=10 ELSEIF maxpts<1 THEN Graphics(0) RETURN FI maxpts=maxpts*pers_rbf}atio FI key=255: Setup(24) Draw()ODIF maxpts<1 THEN Graphics(0) RETURN FI maxpts=maxpts*pers_r`-; CHECKSUM DATA;[2A 9D 20 72 ]PROC Instructions(); =================================; = for joystick fh} =; = (substitute into listing 1) =; =================================Setup(0)PrintE(" """"")Pufi}tE()Print(" Draw with ")Print("joystick...")PutE()PrintE(" button: Ҡ and ")PrintE(" fj} ")PutE()Print(" ANY KEY:")PrintE(" Ӡ")Print(" or ")PrintE("fk}") PutE()PutE()PutE()Print("------------------------")PrintE("------------")IF key=255 THEN Print(" Hit any buttofl}n") Print(" to start:") DO UNTIL (PTrig(0)=0 OR PTrig(1)=0 OR key<>255 OR STrig(0)=0) OD key=255FIRETURNod|; CHECKSUM DATA;[BA 99 3B ]PROC Draw() ; =================================; = for joystick =; = jn} (substitute into listing 1) =; =================================INT delx=[0],dely=[0],stx0=95 y0=95DO st=Stick(0)jo} delx=(st&4) RSH 2 - ((st&8) RSH 3) dely=((st&1)) -((st&2) RSH 1) x0=(x0+2*delx ) y0=(y0+2*dely ) IF x0<1 OR x0>19jp}0 THEN x0=95 FI IF y0<1 OR y0>190 THEN y0=95 FI IF STrig(0)=0 THEN Setup(24) IF mirror=1 THEN mirror=0 ELSEjq} mirror=1 FI DO UNTIL STrig(1)<>0 OD FI Octplot(x(n),y(n)) x(n)=x0 y(n)=y0 Octplot(x(n),y(n)) n==+1 IF njr}>maxpts THEN n=0 FI UNTIL (key<>255)ODRETURN Octplot(x(n),y(n)) x(n)=x0 y(n)=y0 Octplot(x(n),y(n)) n==+1 IF nh39000 REM ATARI SCREEN SCROLLER9010 REM (c) 1984 Jeff Brenner9020 DATA 104,169,000,141,014,212,1699030 DATA 022,141,036,002nt},169,006,1419040 DATA 037,002,169,064,141,014,2129050 DATA 096,008,216,165,206,230,2069060 DATA 197,207,208,051,169,000,13nu}39070 DATA 206,024,165,203,105,001,1339080 DATA 203,201,016,176,005,141,0059090 DATA 212,208,031,169,000,141,0059100 DATAnv} 212,133,203,024,165,088,1059110 DATA 020,133,204,165,089,105,0009120 DATA 133,205,160,000,177,204,1459130 DATA 088,200,19nw}2,220,208,247,0409140 DATA 104,168,104,170,104,0649150 T1=PEEK(548):T2=PEEK(549)9160 IF FL=1 THEN GOTO 92509170 FL=19180nx} DIM SP$(20):SP$(1)=CHR$(32):SP$(20)=CHR$(32):SP$(2)=SP$9190 DIM SCROLL$(300),TXT$(20):TOT=0:FOR I=1 TO 909200 LOC=ADR(SCROny}LL$)+22:H=INT(LOC/256):L=LOC-H*2569210 SCROLL$(8,8)=CHR$(L):SCROLL$(13,13)=CHR$(H)9220 READ NUM:SCROLL$(I,I)=CHR$(NUM)9230nz} TOT=TOT+NUM+I:NEXT I9240 IF TOT<>15081 THEN PRINT "THERE IS AN ERROR IN THE DATA.":STOP 9250 CENTER=1:DELAY=39260 IF DELAn{}Y=0 THEN DELAY=1:SCROLL$(41,41)=CHR$(2)9270 POKE 207,DELAY-1:POKE 203,0:POKE 206,0:RESTORE 95009280 GRAPHICS 18:DL=PEEK(560n|})+256*PEEK(561)9290 SETCOLOR 0,2,8:SETCOLOR 1,12,10:SETCOLOR 2,9,4:SETCOLOR 3,4,69300 SETCOLOR 4,0,0:POKE DL+3,PEEK(DL+3)+3n}}29310 FOR I=DL+6 TO DL+15:POKE I,PEEK(I)+32:NEXT I9320 A=USR(ADR(SCROLL$)):POKE 764,2559330 IF PEEK(764)=33 THEN GOTO 9430n~}9340 IF PEEK(203)>0 THEN GOTO 93309350 POSITION 0,11:PRINT #6;SP$;9360 READ TXT$:IF TXT$="REPEAT" THEN RESTORE 9500:GOTO 9n}3609370 IF TXT$="END" THEN GOTO 94309380 IF CENTER=0 THEN POSITION 0,11:PRINT #6;TXT$;:GOTO 94109390 POS=(20-LEN(TXT$))/2:n}IF POS<1 THEN POSITION 0,11:PRINT #6;TXT$;:GOTO 94109400 POSITION 0,11:PRINT #6;SP$(1,POS);TXT$9410 IF PEEK(203)=0 THEN GOTn}O 94109420 GOTO 93409430 POKE 54286,0:POKE 548,T1:POKE 549,T2:POKE 54286,649440 END 9450 REM Display data begins at line n}9500.9420 GOTO 93409430 POKE 54286,0:POKE 548,T1:POKE 549,T2:POKE 54286,649440 END 9450 REM Display data begins at line l9500 DATA THIS IS A TEST9510 DATA OF THE ATARI9520 DATA SCREEN SCROLLER9530 DATA PROGRAM.9540 DATA 9550 DATA NOTE HOW THr}ESE9560 DATA LINES OF TEXT9570 DATA SMOOTHLY SCROLL9580 DATA UP THE SCREEN.9590 DATA 9600 DATA WE CAN GET9610 DATA OTHEr}R COLORS9620 DATA ON THE SCREEN9630 DATA BY USING9640 DATA ś9650 DATA lower case AND9660 DATA 9r}670 DATA CHARACTERS9680 DATA IN THE DATA9690 DATA STATEMENTS.9700 DATA 9710 DATA THE TEXT IS9720 DATA AUTOMATICALLY9730r} DATA CENTERED SINCE9740 DATA WE SET THE9750 DATA VARIABLE center9760 DATA TO ONE.9770 DATA 9780 DATA THE WORD9790 DATAr} Ԣ ON LINE9800 DATA 9910 OF THE DATA9810 DATA WILL CAUSE THIS9820 DATA MESSAGE TO9830 DATA START OVER FROM9840 DAr}TA THE BEGINNING.9850 DATA 9860 DATA YOU CAN PRESS9870 DATA THE 9880 DATA TO STOP.9890 DATA 9900 DATA 9910 DAr}TA REPEATINNING.9850 DATA 9860 DATA YOU CAN PRESS9870 DATA THE 9880 DATA TO STOP.9890 DATA 9900 DATA 9910 DAp  %X;SCREEN SCROLLER ASSEMBLY LISTINGX; (C) 1984 JEFF BRENNER( 7;SETUP2Q><P=&X;-----------------v}----------------A&X;Lines 70-100 store the address ofB!X;the scrolling routine in theC"X;deferred VB interrupt vector.D&Xv};---------------------------------FQ>STARTPP$ZQ>STARTdP%nQ>@xP;;Re-enable VB:;;Return to BASIv}C START6-Q;;$CE=timing cntr#δR;;$CE=delay?HRETURN;;If not, end.Q>P,Q;;# of scan linv}es;scrolled.O>PR>EUP;Before 16 scan;lines, text must;be moved up.P" HRETURN, UPQ>6v}P;;Reset vertical7;scroll register@=P;;Reset scroll cnt0324 ;-------------------------------EX;Lines 330-450 movv}e entireF X;display upwards by one lineGX;of text (20 bytes).H$X;-------------------------------J,TQX^O>hPrv}QY|O>P͐%> LOOPQ@7P@X73)> HLOOP RETURN87?7>79;Return from VBIPrtx