[comp.sys.atari.st] legal way to find SPECIAL addresses

pvf@bridge2.ESD.3Com.COM (Paul V. Fries) (07/08/89)

Sorry to ask again, I am sure I have seen this some time in
the past.

I need to know a "legal" way to determine the locations of
the GEMDOS mouse variables.  I have a mouse trapping
program that was written for the particular ROMS that are
in my 1040ST.  As we all know, TOS 1.4 will soon be here.
I want to fix up the program to be more general so I don't
get bitten when the new TOS arrives.

FYI

My mouse trapping program implements a "gate" at the menu
bar.  To open the gate and enter the menu bar, the right
button must be pressed while attempting to traverse the
gate.  All other mouse functionality remains the same.

The program intercepts mouse packets from the keyboard
processor and modifies the Y coordinate in the new packet
to limit the vertical travel.  It needs to know what GEMDOS
has recorded as the mouse position in order to make the
decision.

The program is about 180 bytes of code written in Laser
"assembly" language.  NO "C" code is used.  The in-line
assembly code is linked as the very first and only object.
Even init.o is not included, so the OS just dumps control
at the first instruction.  The program sets some hooks and
then does a Ptermres() call (in assembly, of course).

It is run from the auto folder, and has never seemed
anything but invisible since, i.e., it seems quite bug-free
to me.  I would be happy to post the source if there is any
interest.

The functionality was inspired by some other mouse trapping
program that I got from somewhere, but didn't like the
particular way it was done.  I wrote my program instead.

apratt@atari.UUCP (Allan Pratt) (07/11/89)

pvf@bridge2.ESD.3Com.COM (Paul V. Fries) writes:

> I need to know a "legal" way to determine the locations of
> the GEMDOS mouse variables.  I have a mouse trapping
> program that was written for the particular ROMS that are
> in my 1040ST.  As we all know, TOS 1.4 will soon be here.
> I want to fix up the program to be more general so I don't
> get bitten when the new TOS arrives.

You can do this legally, but you might not be able to do it from the
AUTO folder, and you can't do it legally the way you describe (linking
into the trap and clobbering the Y movement value).  What you should do
is use the VDI exchange-mouse-movement-vector call. It will have the
same effect as you describe, but will be legal.

Another way is to use the negative Line-A variables... If you're a
developer, get SALAD (Still Another Line A Document).  If you aren't,
then you should become one because you get cool stuff like Landon
Dyer's assembler, my linker, my debugger, and SALAD.

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

uace0@uhnix2.uh.edu (Michael B. Vederman) (07/14/89)

Speaking of mouse movement and the such...  Is there a way to *prevent* the
AES from getting mouse clicks at the desktop?  In other words, can one turn
off mouse packet handling to AES?  Like taking over the AES mouse handler?

Unfortunately, the AES mouse handler is not at all documented (VDI, yes).

- mike


-- 
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