[comp.sys.atari.st] Mouse Addresses...

KOST@TRIUMFCL.BITNET (10/14/87)

 Previously we had obtained the following from the Atari Digests
 to allow GIN input pre-positioning for our graphics terminal
 emulator as follows:

 mouse X 0x26E0        All three words can be read or written. If you
 mouse Y 0x26E2        write them, the mouse cursor will jump to the
 mouse buttons 0x26E6    desired position.

 As expected these addresses no longer works on the Mega ST.
 Could anyone tell me what they might now be or how I can
 determine these "magic" addresses. ?

kost@dac.triumf.CDN (CORRIE KOST) (10/14/87)

 Previously we had obtained the following from the Atari Digests
 to allow GIN input pre-positioning for our graphics terminal 
 emulator as follows:
       
 mouse X 0x26E0        All three words can be read or written. If you
 mouse Y 0x26E2        write them, the mouse cursor will jump to the
 mouse buttons 0x26E6    desired position.

 As expected these addresses no longer works on the Mega ST. 
 Could anyone tell me what they might now be or how I can 
 determine these "magic" addresses. ?

avp@garfield.UUCP (Anthony Paul) (02/16/88)

Back in October, the addresses went by for the mouse,
0x26E0 - x pos
0x26E2 - y pos
0x26E6 - buttons.

My problem, the article said these don't work on the mega.
Anyone know what they are on the Mega?

Thanks

Anthony Paul

avp@garfield.UUCP
avp@garfield.mun.cdn

P.S.

Anyone have the pinout of the Mega's expansion port?

apratt@atari.UUCP (Allan Pratt) (03/12/88)

From article <4484@garfield.UUCP>, by avp@garfield.UUCP (Anthony Paul):
> Back in October, the addresses went by for the mouse,
> [deleted] - x pos
> [deleted] - y pos
> [deleted] - buttons.
> 
> My problem, the article said these don't work on the mega.
> Anyone know what they are on the Mega?

These variables are in fixed locations relative to the Line-A base you
get in A0 when you use Line-A init ($A000).

MOUSE_BT	equ	-596
M_HID_CT	equ	-598
GCURY		equ	-600
GCURX		equ	-602

	dc.w	$a000
	move.w	MOUSE_BT(a0),d0		; mouse bits (bit 0 is left button)
	move.w	M_HID_CT(a0),d1		; mouse hide depth (0=visible)
	move.w	GCURY(a0),d2		; mouse pointer Y
	move.w	GCURX(a0),d3		; mouse pointer X

These variables are read-only -- unpredictable things will happen if
you write to them.  The exception is the hide depth of the mouse.
If you want to show the mouse, do stuff, then restore it to the previous
depth, do this:

	dc.w	$a000			; get line-A base to a0
	move.l	a0,save_base		; save this for later
	move.w	M_HID_CT(a0),d7		; get old depth
	beq.s	already_shown		; already visible
	move.w	#1,M_HID_CT(a0)		; set new depth of 1
	dc.w	$a009			; show mouse

already_shown:
 	... do stuff ...

	tst.w	d7			; was it shown before?
	beq.s	all_done		; yes - no need to do anything
	dc.w	$a00a			; hide it
	move.l	save_base,a0		; get line-A base again
	move.w	d7,M_HID_CT(a0)		; set depth to old value
all_done:
	rts

.bss
save_base:	ds.l	1

The point here is that you can change the depth from one nonzero value
to another nonzero value safely, especially if you restore it later.
But remember if you don't restore it that AES will get out of sync.

============================================
Opinions expressed above do not necessarily	-- Allan Pratt, Atari Corp.
reflect those of Atari Corp. or anyone else.	  ...ames!atari!apratt

uace0@uhnix2.UUCP (Michael B. Vederman) (03/13/88)

In article <4484@garfield.UUCP> avp@garfield.UUCP (Anthony Paul) writes:
>Back in October, the addresses went by for the mouse,
>0x26E0 - x pos
>0x26E2 - y pos
>0x26E6 - buttons.
>
>My problem, the article said these don't work on the mega.
>Anyone know what they are on the Mega?
>
>Thanks
>
>Anthony Paul


The locations for the new ROM mouse x, y, and button are as follows:

x - (HEX) 2740
y - (HEX) 2742  (both are words)
button - (HEX) 2746






Hope this helps.

-Mike

Refer to an article recently posted which gives the line-a negative offsets
for more stable memory locations of these parameters.
-- 
for (;;)                              : Use ATARINET, send an interactive
        do_it(c_programmers);         : message such as:
                                      : Tell UH-INFO at UHUPVM1 ATARINET HELP
University Atari Computer Enthusiasts : University of Houston UACE