Many thanks, Duncan, this is indeed the info I needed.

The subject will quieten down now (partly because I'm away for
aweek!!!)

--
Dilwyn Jones
[EMAIL PROTECTED]
http://www.soft.net.uk/dj/index.html
-----Original Message-----
From: Duncan Neithercut <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: 13 January 2002 19:23
Subject: RE: [ql-users] Patching SMSQ Mouse routines


>Hi
>
>The pointer record is attached to the channel #0 driver.
>It can be found by :
>chbas=PEEK_L(svbas+120) : REM svbas is start of system variables
>Channel0driver=PEEK_L(PEEK_l(chbas)+4)
>and if
>addr=Channel0driver
>then
>pointermove=PEEK_L(addr+126): REMark read x+y positions
>ptrkey=PEEK(addr+49)+PEEK(addr+50) : REM read any mouse key pressed
>
>These bad bodges have worked for me across SMSQ/E 2.76 to 2.99 and
from a
>black box JS QL with Extended Environment to Aurora with SMSQ/E or
Minerva
>and finally to the Q40 suggesting that the addresses are fundamental.
>The info for the addresses came from the QPTR manual - not an easy
read -
>and are used for my screen save controller program. I have used these
bad
>peeks because otherwise to legally read the pointer requires an
outlined
>window which becomes locked when it is covered by another window.
Therefore
>they are necessary for a screen saver module contoller. I assume you
have
>this in mind.
>
> Duncan
>
>-----Original Message-----
>From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On
>Behalf Of Dilwyn Jones
>Sent: Saturday, January 12, 2002 3:52 PM
>To: [EMAIL PROTECTED]
>Subject: Re: [ql-users] Patching SMSQ Mouse routines
>
>
>Richard Zidlicky wrote:
>>> Is there a way to directly read the pointer position [take the
>example
>>> of a screen saver program which is displaying a screen saver
module
>>> (external program) but needs to monitor the mouse to see if it's
>been
>>> moved in order to to restore the screen]  which is compatible
>across
>>> all or most platforms. Reading the QIMI registers will obviously
>only
>>> work in QIMI systems! Cuedark and a screen saver program from
>Thierry
>>> seem to do this but no documentation. The Jonathan Hudson Qeyes
>>> program also seems to allow a program to monitor pointer position
>[to
>>> position its own 'eyes] without affecting the currently active
job.
>>
>>get it from the scr/con driver, it is at 0x20 and 0x22 offsets off
>the
>>base of the screen driver linkage block, the one cdb+4 should point
>>to. Not quite sure now if the 0x18 has to be added or not.. try
>>a few peeks.
>
>Can you elaborate a little on this...I tried the following routine
and
>got nowhere, just a continuous stream of 21845 output:
>
>100 REMark try to read pointer co-ordinates
>110 driver_address = CHAN_L(#0,4)
>120 REPeat loop
>130   PRINT
>PEEK_W(driver_address+HEX('20')),PEEK_W(driver_address+HEX('22'))
>140 END REPeat loop
>
>Adding $18 as you suggested made no difference at all.
>
>(CHAN_L is Simon Goodwin's routines for extracting info from channel
>definition block).
>
>
>
>
>

Reply via email to