Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!decwrl!labrea!agate!pasteur!ames!umd5!purdue!i.cc.purdue.edu!j.cc.purdue.edu!pur-ee!iuvax!bsu-cs!cfchiesa From: cfchiesa@bsu-cs.UUCP (Christopher Chiesa) Newsgroups: comp.sys.atari.8bit Subject: Re: Track-ball Handler...Anyone? Message-ID: <2623@bsu-cs.UUCP> Date: 14 Apr 88 15:58:42 GMT References: <8804131218.AA13585@ucbvax.Berkeley.EDU> Organization: CS Dept, Ball St U, Muncie, Indiana Lines: 122 Summary: Trakball handler; E-mail to Scott bounced Sorry to "clog up" the newsgroup, but I tried to send E-mail to Scott, who asked about a Trakball handler. Copy of my intended message follows, Scott, and now anyone else who wants it can have it too.. -- C.Chiesa. In-Reply-To: your article <8804131218.AA13585@ucbvax.Berkeley.EDU> > > Does anyone have, know of, heard of, seen, or programmed a handler > for an Atari Track Ball? You know, the ones at Kaybee Toy Store for > $12. A mouse handler may work also, as it is the same principle. > Scott, Something of this nature was posted in this very newsgroup not long ago. In fact, I think I still have it on file. Let me do a quick shell-escape and see, and if you're lucky I'll tack it on the end of this file. * * * * You're in luck. I found it! I haven't used it, 'cuz I don't have a trakball (buy me one and I'll be happy to test it for you! :-) ) but it supposedly does the job! Chris Chiesa ------ >From iuvax!pur-ee!j.cc.purdue.edu!i.cc.purdue.edu!purdue!gatech!bloom-beacon!husc6!linus!alliant!lackey Wed Mar 16 16:53:22 1988 Path: bsu-cs!iuvax!pur-ee!j.cc.purdue.edu!i.cc.purdue.edu!purdue!gatech!bloom-beacon!husc6!linus!alliant!lackey From: lackey@Alliant.COM (Stan Lackey) Newsgroups: comp.sys.atari.8bit Subject: trak Message-ID: <1442@alliant.Alliant.COM> Date: 16 Mar 88 21:53:22 GMT Reply-To: lackey@alliant.COM (Stan Lackey) Organization: Alliant Computer Systems, Littleton, MA Lines: 77 Routines for interfacing the trak-ball by Stan Lackey ; ; Code to track the trak-ball ; OLDVAL = $CB HORIZ = $CD VERT = $CE JOYST = 54016 ORG $0600 TYA ; Save Y. The Atari saves A. PHA LDA JOYST ; Get new val TAY ; Save it in Y EOR OLDVAL ; Test for a change AND #2 ; Clear all but horiz motion bit BEQ TSTVER ; If not, test for vertical motion TYA ; get new val AND #1 ; Horiz change. Test direction. BNE RIGHT DEC HORIZ ; Left motion - decr coordinate. CLC BCC TSTVER RIGHT: INC HORIZ ; Right motion. TSTVER: TYA ; get new val EOR OLDVAL ; Test for change AND #8 ; Clear all but vert motion bit BEQ EXIT ; If no change, exit TYA ; new val AND #4 ; Vert change. Test direction. BEQ UP ; INC VERT ; Down - incr coordinate. CLC BCC EXIT UP: DEC VERT ; Up - decr coord. EXIT: STY OLDVAL ; Update old value PLA TAY ; Restore Y PLA ; Restore A RTI ; END Now - the interrupt vector and some other stuff needs to be set up. I just do it in Basic. 5 F=100 ; Timer frequency - This value seems to work OK 10 OPEN #4,4,0,"D1:TRAK.OBJ" ; The binary of the above prog 20 GET #4,X:GET #4,X:GET #4,X:GET #4,X ; Strip the header 30 GET #4,X:GET #4,Y ; Length is in X (less than 256) 40 ADDR=6*256 ; Start of page 6 50 FOR I=ADDR TO ADDR+X 60 GET #4,X 70 POKE I,X ; Load image 80 NEXT I 90 CLOSE #4 ; Done 110 POKE 528,0:POKE 529,6 ; Set up $600 into timer interr vector 130 POKE 53761,0 ; Set volume to off - enables counter 140 POKE 53760,F ; Set up interrupt frequency 150 POKE 53769,255 ; Turn on timers 160 POKE 16,193 ; Enable timer1 interrupt Now - a little program to test it 200 TRAP 200 ; Restart if coord's go offscreen 210 GRAPHICS 8+16 220 H=205:V=206 ; The coord's 230 POKE H,20:POKE V,20 ; Initialize coord's 240 PLOT PEEK(H),PEEK(V) 250 DRAWTO PEEK(H),PEEK(V) 260 GOTO 250 Good luck. Check for typo's (I don't think there are any, but who knows?) -Stan -- UUCP: !{iuvax,pur-ee,uunet}!bsu-cs!cfchiesa cfchiesa@bsu-cs.UUCP