@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD`Ǫ D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )}ǝ `A! d߰")-݆ "  $G@LLL&0") $G% }DžH0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 }ǥ)8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }ǰ8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}GCEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}Nj8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}ǠE8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }#C  Lq` X٨`DOS( ySYS IIIIIIIIIIIIIIIC`0 ߩ0}}~} HE %|+-3G||DDOS PVDOSDOS[ `SYS sx}~}}~} CDOS SYS~}V 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}ǢDEL8HI   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$}G V0 0`B;DELV䌚 !B y` ʆ 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 V (` 9 V⪍ ઍ  -'}ǔLLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}Ǫ1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}#1i1232435ޥ<<8} &;w87;PK&&L&M&N& + 5J&&&© M2 -L*\J&˜ ' 5&0& M2&,}Ǎ& $+L*& & M2 H-ƅ& & M2 H- 1- *`RUNTIME ERROR AT LINE &&L*, ,L&-}` '' &L&PROGRAM STOPPED&&Ńł ȱ`iL 'HH Z*L/ * . M2 + Q. ..} @. M2 @. ' M2 + @. 'hhL@.ʥ`HHhh`8L'u/}Ǖ`Huh` L*L' L*L' ) .. ( .. ' * @.L0}ǘ* ) .. ' :, ( .. ' + ' * ' + M2 :, @. *L* ) ' ' :, ( .. ' + ' * 1}' + M2 :, .. /( @. *L* ' Z* Q.L/` ) * ..L.. ) . .. + ' .. ' :,L' ) 2}' :, ' .. + 'L'K&L&M& ) M2 M2,M&eK&iL&`M&8LV& .. 3}Q.M&`ʔȱȱȱ Z*Șe惠 惨65*66* L*jem#6m$6 ..вH4}9Hhh``?`L*ʱ` +⅄* &JL&J *HHl 5}JLw TO BOOT FOR DOS TO RERUNp B V8,` 3+ȱL*&&8#6$68凅刐S6}GJj)ee`ффiiLL+8LL+ LV&uuuL*87}74` ,L*iL*豂Hȱh`p8 ,L*,H, BHI, 5 ?-N&h`8`8} :,L, :,#` :,0 :,0L, :,0` :,0L,L,`޵` `Ȕ`9}r惥u`, BHI DEH 5 ?-HyN&N&hL* , ?-N&`,vJ`-:}ǩ,- +- -0 -L* t-L*` -H t-h 0 -`L,8 0ƅ`66&L-HH` B VhH)Kh;})0 IJD-EB 5hL*S:,L*TUVL* -`,,L, ?-N&8ɰɅ ,`ʱȱȱ`ȵ<}ǑȵL*L* Q. @. @.ʥ @. .. Q. @.L3 Q. .. . . Z*uȱuȱu * Z* ..=}0 j,L3 ȱL* ~,L.ʵ`eeLV&HHhh`ؐHH Z*L>}/ *HH . .6 +i i .i i @.hh @. @. 'hh @.`HH Z*% *?}LHH `2LQ/ Z* Q. LV& .6 + .. +` Z* Q.ޠ .. `2 +L/P L0H, B Vh`ҩ2ҵ ҵ@}  *L*H,BHI 5,h,LM2,DuEu *,IHKJBH 5hA} *L* -,H`B 5h`00LM2L*L* +`H *hLM21HZH eB}HHƆeiH Q.lꦆ M2Օ`0  L,`8`1-1- R- M201LM21C}Ǿ01`K2 * Q.J2L2 M29 Ɔ채+K-J2L7280L2 .9K22K2LV& L2, Y2 . Y2 Y2 +D}, M2 +ƆеJ2 +`ʕ`66`HHH66666uuuhhhLE}* +愵 ' + 'I M2 380/66&&&`uuu` 3 3F}Ј 3 * +` 4B3C3 .A3B3A3B3C3 LV&ȥC3iA3B3 4`L$+3B3G}Dž 3`LV&C38A3ƅ3 ȱC3A3B3` 3L33L3H 4 G3h`1+ %  H}G88L 4 * *` * *`  * *` 4$' 4"0 40 4L, {4L, t4L,LI}IpM2LM25 M2 Q. .5555`H,? ,,HI5D55E5B 5H5h` VLV&u5` J}45 M2555 M2L5 45LV&55, 555 M258e555 M2K2L1 K} 'L*hh iL* 5LD3 5L$+5B3&&ȱ0 6L5 6#6$6&& L5&&`L}i`K&&L&M&` 3+ȱ&&%8e慱HȱhױM&iK&iL&L*, BM}H Vh M2L*,&BH 5hN M2 *L M2ML*,%BNLMH 5hL*)*Z*w***`2`2+:,2+,,,j,YN},~,c,r,S,*$++++,,,1-.H----.`..0////D331000 1)&0001K0k04444{4t40&K'G(m(()0)])5555$155}1g1O}53%636&6661w8}8 8 8888(-9<G9Fe9d9n9x999999::#:L2:V9:`C:jL:tY:~]P}]::::::::: ; ;; 4;4H;>O;HY;Rb;\k;ao;fz;p;z; ;;mDdq8@ /Q}R@@ h801  "R}# 2This program is Public Domain! "7  " by gregg tavares"& Press for screeS}n or for printer./"K:7k86S5s5 9P5p5 9x @T}@:n8h:$:% ?D:S7}:$q8GAI q8D:%"q --- Press anU}py key ---k86: L @@ ?D:P7P:7 "v Pause bV}etween pages(Y/N)?t8k86Y5y5 4;t84N5n5H; }B:$q8GAIq8D:%z;W}4 " --- Press any key ---k86; 4444 &J&˜ ' 5&0& M2&Z o-5o o--o o--o o--o o--o? @!O e! !1 ! !2 ! !3 ! !4 !o p!} Y} ! o--o o--o o--o o--o" #!2 H! o--o o--o o--o o--oR S!b x! !5 ! !6 ! !7 ! !8 !} Z}C ! Graphic +! o--o o--o o--o o--o5 6!E [! o--o o--o o--o o--oe f!u ! !9 ! ![}[10! !11! !12! !( >! o--o o--o o--o o--oH I!X n! o--o o--o o--o o--ox y!} \} !! !13! !14! !15! !16!+ ,!; Q! o--o o--o o--o o--o[ \!k ! o--o o--o o--o o]}--o ! 4! !17! !18! !19! !20!> ?oN-do o--o o--o o--o o--on oo}-^}-o! G! 21 ! 22 ! 23 ! 24 ! 25 !Q Rou-wo} _} 26" #- .8 9W lInstructions for the} `} Icon Shop.' (I XCopyright 1986z Grea} gg Tavares* >The NightHawk GroupH IS Tc The Icon Shop was designedb} to make up for the Tdefficiencies in the graphic editor included with the^ PrintShop. It was also designec}d to allow the user to save& `PrintShop graphics in a DOS 2.0 compatible format so thatj the user's creationd}"s may be traded with other users', Pcreations, especially over a modem.Z [e rSee Diagram.| e} D1-8) These are the colors and patterns you may draw with.N Point to the one you want to use and press the f} button (or a Mkey 1-8). A blue frame will appear around the color.W Colors 3-8 are patterns. They may be g}used just like the Xfirst to colors. If you don't like the ones included withb the Icon Shop you may edit h}them. First, point to the one) ayou want to edit. If the blue frame is not around thatk pattern then pressi}) the button. Now, point to a dot in the3 jpattern and press the button. That dot will change tot white if j}/it was black, or to black if it was white. To9 msave your patterns, insert a DOS 2.0 disk and pressw [CTRL]k}5-W. Type a legal DOS 2.0 filename and press return.? To load patterns you have previously saved press [CTRL]-R. l}C  L9) (D)raw-Point on the graphic to where you want to changeYYc a dot to the selected colom}mr and press the button." #- f10) (L)ine-Point to where you would like to start a linep and press then}, button. Point to where you would like the6 Xline to end and press the button.b cm 11) (R)ectangle-o},Point to where you would like one corner of6 ra rectangle and press the button. Point to where you would| lp}.ike the opposite corner and press the button.8 9C 12) (B)ox-Point to where you would like one corner of a boq}x Eand press the button. Point to where you would like theO uopposite corner and press the button.} r} G13) (O)val-Point to where you would like the center of anQ oval and press the button. Move the pointers} away from the Rcenter of the oval until you have the size and shape you\ ywant, then press the button.} t}  K13) (Q)Disc-Point to where you would like the center of aU disc and press the button. Move the poiu}nter away from the Vcenter of the disc until you have the size and shape you` want, then press the button.v}  L14) (F)ill-Point to an area you would like to fill andV press the button. If the fill gets stuw}ck press [ESC] (This Qonly happens occasionally if the mirrors are on).[ \f 15) (C)apture-Point to x}!one corner of the area you would+ _like to capture and press the button. Point to thei opposite corner of ty}%he area and press the button. A new/ jrectangle will appear. Move the new rectangle to the areat where youz}. would like to put what you have captured and8 ipress the button. (Also see 20-Capture options)s t} {}8 16) (M)irrors-Point to the vertical line and press theB button to toggle the vertical mirror on or off. Point to |} @the horizontal line and press the button to toggle theJ horizontal mirror on or off. Mirrors affect ALL fu}}nctions L(Including LOAD and VIEW). The Fill function may go intoV an infinite loop with the mirrors on (P~}Cress [ESC] to 6interrupt the Fill function).@ AK 17) (T)Plot type. Point to a letter and press the} button Jto set the plot type. (Affects ALL functions INCLUDINGT bLOAD & VIEW).l N=Normal-Replace }the dot under the% ?pointer with the selectedR Ycolor.c A=ANDed -Logically AND the} color 5under the pointer with theH Xselected color.b co Black AND Blac} k = Black" :Black AND White = BlackF ^White AND White = Whiteh is O=ORed- L}ogically OR the color) @under the pointer withS gthe selected color.q r} } Black OR Black = Black$ ;Black OR White = WhiteG ^White OR White = Whiteh is X=Exclusiv}e ORed-Logically Exclusive. EOR the color under theX rpointer with the selected} } color. & >Black AND Black = BlackJ bBlack AND White = Whiten White AND White} = Black  Y(Try setting it to X. Select white as your color and drawc some boxes that partially } overlap)  X19) (U)ndo & (Clear). Point to undo and press the buttonb the undo the last change ma}de to the graphic. Point to' Cclear to clear the graphic.M NX 20) Capture Options. First surround }an area using the Qcapture function then point to one of these options.[ (I)nvert captured area, (H)orizont}ally flip captured area,# D(V)ertically flip captured area.N OY 21) Load-Pointing the to top of the }screen will move toward" Xthe top of the list. Pointing near the bottom of theb screen will move toward the} bottom of the list. Point to) dfile you want to load and press the button. (Point on then edge or press [}ESC] to abort.) % ]22) Save-Point to the file you would like to replace org type a new filename. }  N23) View-Point to all the graphics you would like to viewX then press on the edge of the screen }Cto start viewing. ' b24) Convert-This function allows you to copy graphics froml a PrintShop forma}(t disk or a DOS 2.0 disk to a PrintShop2 jformat disk or a DOS 2.0 disk. Type the numbers of thet drives yo}3u are going to use. If your destination disk is a= xDOS disk you must supply a filename to save the graphic(s)} } Aunder. It is suggested that you use the extension .ICS forK your Icon Shop files. Files in DOS 2.0 format are} saved as follows.) :520 byte graphicG S16 byte name``j (520 byte graphic } 16 byte name)...' (2 m25) Format-Allows you to format disks comapatible with thew PrintS}hop or DOS 2.0 VV` ak The following keys} may be pressed for short cuts.* +5 J1-8 = select a colorT U_ hD = Drawr L = Lines } R = Rectangles" ,B = Boxes6 @O = OvalsJ TQ = Discs^ lF = Fill areav C = Cap} ture area  9M = Cycle through mirrorsC `T = Cycle through plot typesj ku U = Undo} last change 3SHIFT-CLEAR = Clear graphic= >H aI = Invert captured areak H = Horizontally f}lip captured area ?V = Vertically flip capptured areaI JT bCTRL-L = Loadl CTRL-G = Get (Sam} e as load) :CTRL-S = Save (PrintShop disks only)D `CTRL-P = Put (Same as save)j xCTRL-V = View} } CTRL-C = Convert 0CTRL-F = Format: \CTRL-R = Read Patterns (Dos diskso uonly)} }% CTRL-W = Write Patterns (Dos disks8 >only)H IS Most functions can be aborted by pressing }[ESC]  WIf ANYTHING is displayed in the bottom of the screen, a keya or the button must be presse}d.  HPrintShop is a trademark of Br0derbund Software.aak lv v}-}-( MThe following is for advanced users.W W{- }C >Icon Shop is setup to use any type of controller oneH desires. All that is needed is a driver for that } Ccontroller. To do this, make a driver less then 1024 bytesM long with it's entry point at $3000. The routin} e will be Ncalled at Vertical Blank and will be passed the current XX and Y positions in X and Y. The curr}ent button status will! [be passed in A. The routine must return the new positione in X,Y and the new butto}n value in A. # AX must be a number from 0-159K iY must be a number from 0-191s A must hav}e a value of 0 or 1! 61=button NOT pressedC U0=button pressed._ `j Make sure your file}( has the extention .OBJ then copy it to2 lyour Icon Shop disk and it will appear on the first menu.v w} } >The source files for the drivers that came with Icon ShopH are included on the disk. They were written for the }Atari JMacro Assembler. Feel free to improve on what's there orT nuse it in other programs.x y} } :NOTE:The last line of each source says " END INIT".D Drivers are loaded just as if you used the L option (Bina}ry @Load) from the DOS 2.0 menu. This means that INITJ addresses and RUN addresses WILL be called if there} is one Lin the file. "IT IS EXACTLY THE SAME AS BINARY LOAD FROMV DOS 2.0" Use this to your advantage to} initialize Nvariables or set up interrupts and in the mouse driver.X Yc PAGE 0 from $A0 to $FF is }free. )5o o--o o--o? @!O e! !1 ! !2 ! !3 ! !4 !o p!} )o-'o o--o o--o o--o o--o!6 M! !1 ! !2 ! !3 ! !4 !!\ s! o--o o--o o--o o--o!} } ! o--o o--o o--o o--o!+ L! !5 ! !6 ! !7 ! !8 !! GraphicQ h! o--o o--o o--o o--o!w ! o--o } o--o o--o o--o! 7! !9 ! !10! !11! !12!!F ]! o--o o--o o--o o--o!l ! o--o o--o o--o }o--o! ,! !13! !14! !15! !16!!; R! o--o o--o o--o o--o!a x! o--o o--o o--o o--o!} }C !! !17! !18! !19! !20!o0-Go o--o o--o o--o o--ooj-o! 21 ! 22 ! }23 ! 24 ! 25 !o9-;oL N26TT] rInstructions for the} } Icon Shop. *Copyright 19867 EGregg TavaresO eThe NightHawk Groupj The Icon Shop was d }esigned tomake up for the defficiencies in thegraphic editor included with thePrintShop. It was also designed toallow th }e user to save PrintShopgraphics in a DOS 2.0 compatibleformat so that the user's creationsmay be traded with other users' }2creations, especially over a modem.See Diagram.61-8) These are the colors andpatterns you may draw with. Point tothe } one you want to use and press thebutton (or a key 1-8). A blue framewill appear around the color. Colors3-8 are pattern }s. They may be usedjust like the first to colors. Ifyou don't like the ones included withthe Icon Shop you may edit them }.First, point to the one you want toedit. If the blue frame is notaround that pattern then press thebutton. Now, point }to a dot in thepattern and press the button. Thatdot will change to white if it wasblack, or to black if it was white.To } save your patterns, insert a DOS2.0 disk and press [CTRL]-W. Type alegal DOS 2.0 filename and pressreturn. To load patt }.erns you havepreviously saved press [CTRL]-R.29) (D)raw-Point on the graphic towhere you want to change a dot to thesel }ected color and press the button.10) (L)ine-Point to where you wouldlike to start a line and press thebutton. Point to w }here you wouldlike the line to end and press thebutton.11) (R)ectangle-Point to where youwould like one corner of a rect }angleand press the button. Point to whereyou would like the opposite cornerand press the button.12) (B)ox-Point to wher }e you wouldlike one corner of a box and pressthe button. Point to where you wouldlike the opposite corner and pressthe } button.13) (O)val-Point to where you wouldlike the center of an oval and pressthe button. Move the pointer awayfrom th }e center of the oval until youhave the size and shape you want,then press the button.13) (Q)Disc-Point to where you would }Glike the center of a disc and pressthe button. Move the pointer awayfrom the center of the disc until youhave the size a }nd shape you want,then press the button.14) (F)ill-Point to an area you wouldlike to fill and press the button.If the fi }Qll gets stuck press [ESC](This only happens occasionally ifthe mirrors are on).U15) (C)apture-Point to one corner ofthe } area you would like to captureand press the button. Point to theopposite corner of the area and pressthe button. A new }rectangle willappear. Move the new rectangle tothe area where you would like to putwhat you have captured and press theb }utton. (Also see 20-Captureoptions)16) (M)irrors-Point to the verticalline and press the button to togglethe vertical m }irror on or off. Pointto the horizontal line and press thebutton to toggle the horizontalmirror on or off. Mirrors affec }t ALLfunctions (Including LOAD and VIEW).The Fill function may go into aninfinite loop with the mirrors on(Press [ESC] }to interrupt the Fillfunction).17) (T)Plot type. Point to a letterand press the button to set the plottype. (Affects A }HLL functionsINCLUDING LOAD & VIEW).N=Normal-Replace the dot under theQ kpointer with the selectedt color.A= }ANDed -Logically AND the color( Cunder the pointer with theL selected color. Black AND Black = Black Blac }Ok AND White = Black White AND White = WhiteO=ORed- Logically OR the colorX ounder the pointer withx the s }elected color. Black OR Black = Black Black OR White = White White OR White = WhiteX=Exclusive ORed-Logically Excl }usive &OR the color under the/ Ipointer with the selectedR color. Black AND Black = Black Black A }ND White = White White AND White = Black(Try setting it to X. Select whiteas your color and draw some boxesthat partia }lly overlap)19) (U)ndo & (Clear). Point to undoand press the button the undo thelast change made to the graphic.Point }E to clear to clear the graphic.20) Capture Options. First surroundan area using the capture functionthen point to one of } these options.(I)nvert captured area,(H)orizontally flip captured area,(V)ertically flip captured area.21) Load-Pointin }g the to top of thescreen will move toward the top ofthe list. Pointing near the bottomof the screen will move toward the }Ǜbottom of the list. Point to fileyou want to load and press thebutton. (Point on the edge or press[ESC] to abort.)22) }I Save-Point to the file you wouldlike to replace or type a newfilename.M23) View-Point to all the graphicsyou would lik }e to view then press onthe edge of the screen to startviewing.24) Convert-This function allows youto copy graphics from }a PrintShopformat disk or a DOS 2.0 disk to aPrintShop format disk or a DOS 2.0disk. Type the numbers of the drivesyou a }re going to use. If yourdestination disk is a DOS disk youmust supply a filename to save thegraphic(s) under. It is sugg }estedthat you use the extension .ICS foryour Icon Shop files. Files in DOS2.0 format are saved as follows. 520 byte gra }phic 16 byte name(520 byte graphic 16 byte name)...25) Format-Allows you to format diskscomapatible with the Prin }tShop or DOS2.0$The following keys may be pressed forshort cuts.1-8 = select a colorD = DrawL = Lin }esR = RectanglesB = BoxesO = OvalsQ = DiscsF = Fill areaC = Capture areaM = Cycle through mirrorsT = Cycle through p };lot typesU = Undo last changeSHIFT-CLEAR = Clear graphic?I = Invert captured areaH = Horizontally flip captured areaV } = Vertically flip capptured areaCTRL-L = LoadCTRL-G = Get (Same as load)CTRL-S = Save (PrintShop disks only)CTRL-P = Pu }bt (Same as save)CTRL-V = ViewCTRL-C = ConvertCTRL-F = FormatCTRL-R = Read Patterns (Dos disksk only)CTRL-W = Wri }te Patterns (Dos disks only)Most functions can be aborted bypressing [ESC]If ANYTHING is displayed in thebotto }im of the screen, a key or thebutton must be pressed.PrintShop is a trademark ofBr0derbund Software.} }C%-KThe following is for advanced users.o-Icon Shop is }setup to use any type ofcontroller one desires. All that isneeded is a driver for thatcontroller. To do this, make adri }ver less then 1024 bytes long withit's entry point at $3000. Theroutine will be called at VerticalBlank and will be passe }d the currentX and Y positions in X and Y. Thecurrent button status will be passedin A. The routine must return thenew }position in X,Y and the newbutton value in A.X must be a number from 0-159Y must be a number from 0-191A must have a val }ue of 0 or 1 1=button NOT pressed 0=button pressed.Make sure your file has the extention.OBJ then copy it to your }Icon Shopdisk and it will appear on the firstmenu.The source files for the drivers thatcame with Icon Shop are included }onthe disk. They were written for theAtari Macro Assembler. Feel free toimprove on what's there or use it inother progr }ams.NOTE:The last line of each sourcesays " END INIT". Drivers are loadedjust as if you used the L option(Binary Load) }from the DOS 2.0 menu.This means that INIT addresses andRUN addresses WILL be called if thereis one in the file. "IT IS } EXACTLYTHE SAME AS BINARY LOAD FROM DOS 2.0"Use this to your advantage toinitialize variables or set upinterrupts and in }3 the mouse driver.PAGE 0 from $A0 to $FF is free.DM ! !4 !!\ s! o--o o--o o--o o--o!} D2the mouse driver.PAGE 0 from $A0 to $FF is free.DM ! !4 !!\ s! o--o o--o o--o o--o!} D;%-y;; ATARI Mouse Driver; written by Bernhard Engl; modified by Gregg Tavares;;}-} -PMBASE = $D407COLOR3 = $02C7GPRIOR = $026FPORTA = $D300SDMCTL = $022FGRACTL = $D01DH}POSM0 = $D004STRIG0 = $0284NMIEN = $D40EVDSLST = $0200SDLSTL = $0230SDLSTH = $0231ICSPRZ = $2CVCOUNT = $D40BDMACTL =} $D400SETVBV = $E45CXITVBV = $E462POKMSK = $10VTIMR1 = $210IRQEN = $D20EAUDC1 = $D201AUDF1 = $D200STIMER = $D209}CRITIC = $42 !ORG $3000( 0CPX XPOS8 D;Has X beenK eBNE KEYPRESSED ;changed?l tCPY YPOS| ;}C Has Y been BBNE KEYPRESSED ;changed?* No, so add changes.I MTXAT XCLC_ hADC XADDo xSTA XPOS} } LDX XADD BMI XMINUS$ -CMP #1604 >BCC XOKAYE NLDA #159U gBNE XNOTOKXMINUSn wLDA XPOS} } CMP #160 BCC XOKAY" 0LDA #0XNOTOK7 GSTA XPOSXOKAYN RTYAY ]CLCd mADC YADDt STA YPOS} LDY YADD "BMI YMINUS) 2CMP #1929 CBCC YOKAYJ SLDA #191Z lBNE YNOTOKYMINUSs LDA YPOS } CMP #192 BCC YOKAY' 5LDA #0YNOTOK< KSTA YPOSYOKAYR [LDX XPOSb vLDY YPOSKEYPRESSED} }LDA #0 STA XADD 'STA YADD. 7STX XPOS> GSTY YPOSN YLDA STRIG0` RTSINIT;; get old input;} LDA PORTA $STA OLPORT+ 2LDA #09 BSTA XADDI RSTA YADDY ]SEId wLDA #LOW READMOUSE} } STA VTIMR1 'LDA #HIGH READMOUSE. ;STA VTIMR1+1B FCLIM XLDA POKMSK_ fORA #1m xSTA POKMSK} } STA IRQEN LDA #0! +STA AUDC12 ;LDA #255B LSTA AUDF1S ^STA STIMERe RTS;; variables;MOUS}EX DS 1MOUSEY DS 1OLPORT DS 1OLBUTT DS 1PRTEMP DS 1MOTEMP DS 1MOMOVE DS 1XADD DS 1YADD DS 1XPOS DS 1YPOS DS} 1;;*-d;; TIMER: track mouse; movement and update position;;}-} -READMOUSE !TXA( ,PHA3 7TYA> DPHA;K OSEIV aLDA CRITICh tBNE BADNEWS{ LD}A #0 STA NMIEN 'LDA PORTA. 9STA PRTEMP@ KLDA OLPORTR XASL A_ jEOR PRTEMPq AND #$0A } STA MOMOVE !LDA OLPORT( 3EOR PRTEMP: ESTA MOTEMPL RLSR AY dORA MOTEMPk rAND #5y ORA }MOMOVE TAX &LDA MOVTAB,X- 8STA MOMOVE? JLDA PRTEMPQ ^STA OLPORT;e oLDA MOMOVEt ;Get stic}k value LSR A );Check up.0 :BCS NOTUPA PINC YADDNOTUPW \LSR Af s;Check down.z BCS } NOTDOWN !DEC YADDNOTDOWN( -LSR A7 D;Check left.K WBCS NOTLEFT^ oINC XADDNOTLEFTv LSR A  } ;Check right. *BCS NOTRIGHT1 EDEC XADDNOTRIGHT;L jLDA #$C0 ; enable DLI & VBIq STA NMIENBA }CDNEWS CLI PLA# 'TAY. 2PLA9 =TAXD HPLAO RTI;; movement translation table;MOVTAB  }  DB 0,4,0,8,1,5,1,9 4DB 0,4,0,8,2,6,2,10; FEND INITM WLDA STRIG0\ j;Read button.q RTSCNTR  }DS 1RESET DS 1INIT $RTS+ yEND INIT Driver; written by Bernhard Engl; modified by Gregg Tavares;;}-5** Controller routines.* This one is for a JOYSTIK. This* routine may be changed for any* type for controller}!. Values* returned must be-*& DX reg = X position of cursor*Q k(must not be higher than*x 159)}* $Y reg = Y position of cursor*0 J(must not be higher than*V \191)*a A reg = 0 = button pressed*} k1 = button not pressed** Previous values are passed TO this* routine in the same manner.q*** Equates}W for joystick controller.*STICK0 = $278STRIG0 = $284** ORIGIN MUST BE AT $3000*^ tORG $3000CONTROLLER{ LD} A STICK0 CMP #15 .BNE ACCELERATE5 =LDA #16D NSTA RESETU \LDA #1c wSTA CNTRACCELERATE} } DEC CNTR BPL NOTRIGHT% /LSR RESET6 @LDA RESETG QSTA CNTRX bLDA STICK0g x;Get stick value} } LSR A ;Check up.# -BCS NOTUP4 :CPY #0C R;Don't move upY bBEQ NOTUPh w;if already at} } ;top. 'DEYNOTUP. 3LSR A= J;Check down.Q ]BCS NOTDOWNd lCPY #191s ;Don't mov}e down BEQ NOTDOWN ,;if already at3 6INYB S;bottom.NOTDOWNZ _LSR Ai v;Check left.} } BCS NOTLEFT CPX #0" 3;Don't move left: EBEQ NOTLEFTI X;if already at_ bDEXn ;left edge.NOT}LEFT LSR A );Check right.0 =BCS NOTRIGHTD LCPX #159R d;Don't move rightk BEQ NOTRIGHT ;if } already at INX 6;right edge.NOTRIGHT= GLDA STRIG0L Z;Read button.a RTSCNTR DS 1RESET DS } 1INIT RTS END INITis one is for a JOYSTIK. This* routine may be changed for any* type for controller$1PADDL0 = $270PADDL1 = $271STICK0 = $2788 CORG $3000J SSTX XPOSZ dSTY YPOSk vLDA PADDL0} }CCMP #3 BEQ XNOTPRESSED& 1LDA PADDL08 DB 96,97,98,99E XDB 99,100,101,102_ sDB 103,104,105,105z DB 6} 106,107,108,109 ,DB 110,111,111,1123 GDB 113,114,115,116N bDB 117,117,118,119i DB 120,121,122,1237} DB 123,124,125,126" 6DB 127,128,129,129= QDB 130,131,132,133X lDB 134,135,135,136s DB 137,138} 8,139,140 %DB 141,141,142,143, @DB 144,145,146,147G [DB 147,148,149,150b vDB 151,152,153,153} 9}DB 154,155,156,157 /DB 158,159,159,1606 JDB 161,162,163,164Q eDB 165,165,166,167l DB 168,169,170,1:}71 DB 171,172,173,174% 9DB 175,176,177,177@ TDB 178,179,180,181[ oDB 182,183,183,184v DB 185;} ,186,187,188 EDB 189,189,190,191XPOS DS 1YPOS DS 1X0J RDS 1Y0W _DS 1X1d lDS 1Y1q yDS 1X2} <}C DS 1Y2 DS 1 1END INIT0 = $2788 CORG $3000J SSTX XPOSZ dSTY YPOSk vLDA PADDL0} %h()1279ddCB'DOS &SYSB-+AUTORUN SYSBXXP0 6BCS@ pBMOUSE MACBJOYSTIK MACB!KOALAPADMACEE