> Dilwyn, methinks you are definitely following the correct route.
Add a
> default #channel=0 and you have the two functions I have already
written for
> QWord (almost verbatim, except I used the simpler:
>
> MOVE.L $128(a1),d7
>
> instead of:
> move.w #$128,d7 ;offset $128 in PE linkage block
> move.l 0(a1,d7.w),d6
Yes, I later realised that the offset can be 16 bit with this
addressing mode (doh!). Marcel also kindly pointed out a few other
things, like I put 0 into d0 instead of d1 before calling iop.slnk,
although with d2.w=0 by chance it didn't matter!

I hope to add such functions to my Display_Code extensions originally
published in QL Today, then anyone programming in compiled basic can
use them.

Having looked at iop.pinf (both traps documented on page 57 of QPTR
guide) another couple of useful functions I could add might bring the
new extensions to:

LET pe = PTR_ENV(#channel) : REMark 1=PE present, 0 = no PE
LET wm = WIN_MAN(#channel) : remark 1=Window Manager present, 0=no
window manager
LET v$ = PTR_VER$(#channel): remark pointer version
LET present = GD2(#channel): REM 1=GD2 present, 0=no GD2

The extensions were written on paper last night (watching the new
CSI:Miami series on Ch 5...great programme!) so allow a few months to
debug before appearing ;-)

--
Dilwyn Jones


Reply via email to