[comp.sys.m6809] Hires Joystk I/F

csantiag@potpourri.UUCP (Carlos Santiago) (09/02/87)

   Can someone explain how the RadioShack hires joystick I/f works?
 A friend of mine told me that it plugs into the cassette and right
 joystick port, but he does not know it can allow a resolution of
 640 for the joystick. Does the joystick scan routine in rom sense
 that the hires I/F is pluged in?
-- 
                  Gould, CSD, Home of the Firebreathers 
                    The opinions expressed are my own.
                   ...siesmo!gould!csantiago
                   ...mcnc!rti-sel!gould!potpourri!csantiag

knudsen@ihwpt.ATT.COM (mike knudsen) (09/03/87)

>    Can someone explain how the RadioShack hires joystick I/f works?
>  A friend of mine told me that it plugs into the cassette and right
>  joystick port, but he does not know it can allow a resolution of
>  640 for the joystick. Does the joystick scan routine in rom sense
>  that the hires I/F is pluged in?

The interface plugs in as your friend says and can indeed provide
640 (or even better) resolution, with a caveat mentioned later.
It contains an analog integrator (op amp with capacitor feedback)
and a couple of analog comparators whose outputs feed the Coco's
joystick ports.
	The Coco ROM knows nothing of this gadget; it's
still the 1980 vintage code.  Your program must explicitly
call new code to read the interface (supplied with Level 2 OS9,
Colormax, etc.  See August '86 Rainbow for the code.)
	To read, the code first sends a pulse out the Cassette port
that resets the analog integrator.  Then the code starts counting
in a timing loop while monitoring the original joystick X and Y
ports.  Inside the little black box, the integrator generates
a rising voltage as a linear function of time.  When it equals
your joystick's X or Y voltage, the corresponding comparator
in the box switches from 0 to 5 volts.  The internal (original)
comparator senses that, the code detects that and stores its
present count value in a memory slot for X or Y.
Once both X and Y are detected, the code breaks out of the loop
and returns the raw values, which more software converts to
whatever numeric ranges (eg, 0-649, 0-191) are desired.
	Resolution is limited only by how fast the timing
loop can count.  You can run separate loops for X and Y.
However, the whole process is a little jittery; if you write
a BASIC09 program to read the hi-res and push a graphics cursor
around, you'll see it constantly wiggling in both X and Y.
I've written some very simple hysteresis (backlash) code
to clean that up; will post on request.
	The little black box and its software were designed
by Steve Bjork, whose Delphi handle of "6809er" would seem
a little pompous, except that he probably deserves it as much
as anyone else.
	Unlike the CocoMax A/D converter, the HiRes box
perpetuates the Coco tradition of burning up CPU cycles
(software) to handle I/O interfaces in general.
I don't notice any slowdown in my OS9 music score editor,
but it could cut game performance a lot.  Of course games
can use the orignal interface (which BTW you can't use
on that side with the HiRes box plugged in).
-- 
Mike J Knudsen    ...ihnp4!ihwpt!knudsen  Bell Labs(AT&T)
    Delphi: RAGTIMER    CIS: <memory failure, too many digits>
		"Just say NO to MS-DOS!"

pete@wlbr.EATON.COM (Pete Lyall) (09/04/87)

In article <595@potpourri.UUCP> csantiag@potpourri.UUCP (Carlos Santiago) writes:
> A friend of mine told me that it plugs into the cassette and right
> joystick port, but he does not know it can allow a resolution of
> 640 for the joystick. Does the joystick scan routine in rom sense
> that the hires I/F is pluged in?
>-- 
>                  Gould, CSD, Home of the Firebreathers 

I believe that they are using the software that is resident in the
CC3IO module to interpret the hires mouse/js input. There are also
codes that can be diddled to select the type of input device. The ROMS
having nothing to do with it. If we can ever get Kent Meyers to
chirp up (...!chinet!draco), we'd know the nitty gritty of how it
works.


-- 
                                                   Pete Lyall

Usenet:     {trwrb, scgvaxd, ihnp4, voder, vortex}!wlbr!pete
Compuserve: 76703,4230 (OS9 Sysop) OS9 (home): (805)-985-0632 (24hr./1200 baud)

japplega@csm9a.UUCP (Joe Applegate) (09/11/87)

From Mike Knudsen's description the new Coco 3 joystick works exactly
the same way as the IBM/1000 joystick.... a definate step backward from
the straight forward joystick access of the Coco!  But then what can
you expect from a company that dares to advertize the Coco3 as Coco
compatible and the 1000 as an IBM compatible!!!

"Just say NO to TANDY"
"Tandy, because there are so many better values"

    Joe Applegate - Colorado School of Mines Computing Center
            {seismo, hplabs}!hao!isis!csm9a!japplega
                              or
 SYSOP @ M.O.M. AI BBS - (303) 273-3989 - 300/1200/2400 8-N-1 24 hrs.

       *** UNIX is a philosophy, not an operating system ***
 *** BUT it is a registered trademark of AT&T, so get off my back ***
 

jonh@tekgen.TEK.COM (Jon Howell) (09/13/87)

Another way to go about reading the BjorkBox is to obtain a little prog from
ColorVenture.  (Can I leak this, Eric?)  I have a copy I won.  Haven't gotten
to play with it--don't have a bjorkbox.  CV reports that it will change JOYSTK
inputs to a range of 0-639.  Believe 'tis scheduled for December release.  I
suggest we poke & prod CV for what else they've got lined up--Pyramix is a
really hot game!  With some luck, I might write for them, but that remains
to be seen.

--Jon

Eric--CVRamdisk is neat, and the Print Spooler is efficient..best of all, they
cooperate well...I'm going to be doing a bunch of hacks on Bells & Whistles
soon, so I'll put 'em to the test.

All--I've managed to coax some really nifty sounding drums (bass+snare) out of
the CoCo, w/o any xtras!  BW2 from Jn 87 Rainbow is very powerful.  I achieved
bass drums by modifying the waveform code to include a random factor in the
sine wave section.  I have these values: 1st harmonic, 1x.  2nd harmonic: .5x
and then randomize the wave by 
20 pixels.  Makes for neat sound!  BTW--play in "p" mode (1Mhz) for lower
beats.  If this resembles rambling, but you are somehow interested, write..

-- 
___ __ ,  __  __   _   ,   , __  ,   , ___ __
 |  |_ |  |_ /    / \  |\ /| |_\ |   |  |  |_  |  -- It's good for your
 |  |_ |_ |_ \__  \_/  | V | |    \_/   |  |_  *     health!