I have been testing out QWord on the Aurora and can report that it works nicely under SMSQ/e.

However, I am having problems in getting it to work under the native Minerva o/s. The idea is that it talks directly with the Aurora display hardware and therefore avoids the need to have SMSQ/e running.

Before now, the program uses a small machine code routine to check if the machine it is running on is an Aurora and then it checked whether the GD2 drivers were present.

If they were present, then it presumed it was running under SMSQ/e, otherwise it knows it has to talk directly to the Aurora display. This used to work fine until I came to test it today.

The reason it no longer works is because the latest PTR_GEN and WMAN set up the system calls for GD2, even though the machine it is running on cannot handle it. So, what is the best way of overcoming this - ie. knowing that we are using Aurora - are the drivers available to output in full colour?

It is no good testing the ROM version, just in case someone releases a high colour version of Minerva.

The code I currently use is:

RW_GD2
* Routine to check for availability of GD2 colour drivers
moveq #0,d0 Presume default is #0
cmpa.l a3,a5
beq.s no_GD2CH No parameter
lea.l 1*8(a3),a0
cmpa.l a0,a5 One parameters?
bne bad_param
btst #7,1(a3,a6.l) First one preceded by hash?
beq bad_param
movea.w $0112,a2 SB.GTINT - Fetch the integer params
jsr (a2)
bne bad_exit
moveq #0,d0
move.w 0(a6,a1.l),d0 Get BASIC channel number
no_GD2CH
bsr GetChannelID Convert channel number to channel ID
tst.l d0
bne what_chan


* First of all check for pointer interface
          moveq     #$70,d0              IOP.PINF
          moveq     #-1,d3
          trap      #3
          tst.l     d0                   Is the pointer interface present?
          bne       no_ptr               Return -19 (no pointer interface)

moveq #$6F,d0 IOP.SLNK to get pointer device definition block
moveq #0,d1 Position in linkage to set
moveq #1,d2 Number of bytes to set (0)
moveq #-1,d3 Timeout
suba.l a1,a1 Pointer to data to set
trap #3
tst.l d0
bne no_ptr


          move.l    $128(a1),d1          Grab pt_ident
          moveq     #0,d5
          cmpi.l    #'PTR2',d1           Check for GD2 drivers
          bne       no_GD2
          lea.l     Hardware_Flag,a4
          moveq     #1,d1
          move.w    #0,(a4)              Store GD2 drivers present flag
          bra       float_ret

no_GD2
lea.l Hardware_Flag,a4
move.w #1,(a4)
lea.l PointerDef_addr,a4
move.l a1,(a4) Store pointer definition block address
moveq #0,d1
bra float_ret


no_ptr
          moveq     #-19,d1
          bra       float_ret

--
Rich Mellor
RWAP Services
26 Oak Road, Shelfield, Walsall, West Midlands WS4 1RQ

http://www.rwapservices.co.uk/

_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to