On 6 Sep 2006, at 17:10, Marcel Kilgus wrote:
>
>> I have discovered why some of my programs are so slow with v3.12 on
>> the Q60. It is because changing the window size is now much much
>> slower than with v3.10. The code causing the trouble finds the
>> biggest dimensions of window. The width is easy to find but, on older
>> systems than SMSQE the height is not and I use trial and error to
>> determine the maximum height.
>
> Erm, why don't you just use iop.flim? It does, after all, tell you the
> maximum dimension a window is allowed to have, which sounds exactly
> like what you're trying to do.
1. I now remember that I tried iop.flim in the past and found it no
use. It returns the maximum window size and its position for the
channel ID presented to it. If the window is a primary the maximum is
the whole screen, at 0,0. If you open two windows in a program and
present the second ID to iop.flim it returns the size and position of
the first. No good for my purpose.
2. Just calling trap#3 involves a lot of instructions. My program to
find the maximum screen using pt_xscr and assuming a0 points to
system variables is :
movea.l sys_clnk(a0).a0
move.l pt_xscr(a0),d0
or for a 68020+
move.l ([sys_clnk,a0],pt_xscr),d0
This is nice and short and does what I want.
3. SMSQE now has a new vector block. Its address, says QPC2's manual,
is at pt_vecs(a3) where a3 is the address of the CON linkage. This
declaration implies that the value of pt_vecs will not change in
future versions of SMSQE. I hope that the same can be assumed for
pt_xscr.
George
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm