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_retno_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
