And while I'm on the subject - when I write a test bootsector, create
an interrupt handler, and enable interrupts, the handler only gets called
once (this is on a real PCW). How do I get more than one interrupt? I
_think_ I've tried everything obvious with EIs, RETs and RETIs.
------------- http://www.seasip.demon.co.uk/index.html --------------------
John Elliott |BLOODNOK: "But why have you got such a long face?"
|SEAGOON: "Heavy dentures, Sir!" - The Goon Show
:-------------------------------------------------------------------------)
I've got some stuff from old 8000 Plus's; unfortunately my web pages
are still out of date because the host's disc is full :-( No info on
the Keymouse, but I imagine Creative have a nice printed document on
it.
AMX mouse - ports #A0-#A7 (160-167 decimal)
Input: according to the info I have only the first three ports are
needed.
Port #A0 records vertical movement. It consists of two 4-bit counters.
The counter in bits 0-3 is incremented when the mouse is moves up, and
the counter in bits 4-7 is incremented when it is moved down. Port #A1
records horizontal movement in a similar fashion; the low nibble
counter is for rightward movement and the high nibble counter for
leftward movement.
Port #A2 shows button states (0 if button pressed, 1 otherwise):
bit 2: right button
1: middle button
0: left button
This information came from 8000 Plus (Jan 1990, p73, due to C Black of
Oxford) and I can't vouch for it.
Kempston mouse - ports #D0-#D4 (208-212 decimal)
According to 8000 Plus this device is "similar" in use to the AMX
mouse.
Hope this is helpful.
J.
--
+-----------------+-----------------------------------------+
| jt...@cam.ac.uk | http://dwmw2.robinson.cam.ac.uk/~jtn20/ |
+-----------------+-----------------------------------------+
> And while I'm on the subject - when I write a test bootsector, create
> an interrupt handler, and enable interrupts, the handler only gets called
> once (this is on a real PCW). How do I get more than one interrupt? I
> _think_ I've tried everything obvious with EIs, RETs and RETIs.
You've done IN A,(&F4), I trust?
--
Richard Fairhurst http://www.systemed.u-net.com/
A million years on and still in trouble:
put down your fists and enter with a shovel
: AMX mouse - ports #A0-#A7 (160-167 decimal)
:
: Kempston mouse - ports #D0-#D4 (208-212 decimal)
Thanks; both these Mouse Pointing Devices now seem to work (at least as
far as Stop Press is concerned). FYI, the Kempston seems to work like this:
IN (0D0h) - gives an X coordinate
IN (0D1h) - gives a Y coordinate
IN (0D4h) - gives buttons, bit 0 for right and bit 1 for left. As with the
AMX, a button's pressed if the bit is 0.
I don't know what IN(0D2h) and IN(0D3h) do; Stop Press works nicely if
they consistently return 0.
Thanks; it's been added to my page (not that that's much use to
anyone at the moment. Sigh). FWIW I've also got a bit of information
on other devices, such as the Spectravideo joystick, and the
MasterScan scanner (although there are probably better ways of
getting images into an emulator :-).
>I don't know what IN(0D2h) and IN(0D3h) do; Stop Press works nicely if
>they consistently return 0.
Does that imply that it doesn't if they don't?
Cheers,
Jacob
That reminds me... Stop Press has some sort of digitiser
I/O on some of the 0D0h-0DFh ports not used by the Kempston.
But as for getting images in, just use IMPORT and PCWGIF.
: >I don't know what IN(0D2h) and IN(0D3h) do; Stop Press works nicely if
: >they consistently return 0.
: Does that imply that it doesn't if they don't?
No. I merely started by having all the ports return 0, and then connected
various x, y, dx or dy signals to them one at a time. Since it seems happy
with 0 on 0D2h and 0D3h, I didn't change them :-)