> 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
