Testing for installed TURBO

Anything QL Software or Programming Related.
User avatar
Mr_Navigator
QL Fanatic
Posts: 782
Joined: Mon Dec 13, 2010 11:17 pm
Location: UK, Essex
Contact:

Testing for installed TURBO

Postby Mr_Navigator » Thu Aug 17, 2017 8:41 am

Hi community, I have searched for this on the forum but cannot find an entry but I am sure this has been asked before.

I currently test for the presence of the HBA ROM in a boot program using VER$ and would like to test for other toolkits, specifically the TURBO toolkit. Is there a way to do this automatically in a boot so that when subsequent runs of the boot it is not loaded again in one session?

e.g. for the HBA version I use:

Code: Select all

IF VER$<>"HBA" THEN
   LRESPR "WIN8_SMSQ_QEM"
END IF


I feel there must be a way to test for TURBO toolkit, any ideas?


-----------------------------------------------------------------------------------
QLick here for the Back 2 the QL Blog http://backtotheql.blogspot.co.uk/
User avatar
NormanDunbar
Aurora
Posts: 795
Joined: Tue Dec 14, 2010 9:04 am
Location: Leeds, West Yorkshire, UK
Contact:

Re: Testing for installed TURBO

Postby NormanDunbar » Thu Aug 17, 2017 9:02 am

Morning,

DJToolkit could help. It has a function called CHECK that looks for a particular function or procedure, so you could use that to determine if a given toolkit is installed.

Details at http://superbasic-manual.readthedocs.io ... html#check

Of course, how do you check that DJToolkit is installed? ;)

HTH

Cheers,
Norm.


Why do they put lightning conductors on churches?
If at first you don't succeed, don't take up skydiving!
If you think your job is pointless, remember, there's someone in Germany who fits indicators to BMWs.
Derek_Stewart
QL Wafer Drive
Posts: 1564
Joined: Mon Dec 20, 2010 11:40 am
Location: Runcorn, Cheshire, UK

Re: Testing for installed TURBO

Postby Derek_Stewart » Thu Aug 17, 2017 9:18 am

Hi,

There is a keyword: TK_VER$, but only returns the version of Turbo Toolkit, which is the same for the SMS and QDOS versions.

A simple way would be to add "SMS" in the version number. Which would mean a new version of Turbo Toolkit.

The SMS version calls the SMSQ/E extended traps, where the QDOS does not, so maybe a test for SMSQ/E extended traps is the way, but I would favour the about alteration to TK_VER$.

George Gwilt used to maintain Turbo and maybe the Toolkit. I think this message needs to be posted in the QL-USERS mailing list, George Gwilt reads that list.


Regards,

Derek
Martin_Head
Gold Card
Posts: 479
Joined: Tue Dec 17, 2013 1:17 pm

Re: Testing for installed TURBO

Postby Martin_Head » Thu Aug 17, 2017 9:37 am

Could you use the WHEN ERROR trapping (JS ROMs upward).

Try to use a Turbo Toolkit command, if the toolkit is not installed the command will be trapped in the WHEN ERROR clause, and then the toolkit can be loaded.


User avatar
Mr_Navigator
QL Fanatic
Posts: 782
Joined: Mon Dec 13, 2010 11:17 pm
Location: UK, Essex
Contact:

Re: Testing for installed TURBO

Postby Mr_Navigator » Thu Aug 17, 2017 9:51 am

Derek_Stewart wrote:Hi,

There is a keyword: TK_VER$, but only returns the version of Turbo Toolkit, which is the same for the SMS and QDOS versions.

A simple way would be to add "SMS" in the version number. Which would mean a new version of Turbo Toolkit.

The SMS version calls the SMSQ/E extended traps, where the QDOS does not, so maybe a test for SMSQ/E extended traps is the way, but I would favour the about alteration to TK_VER$.

George Gwilt used to maintain Turbo and maybe the Toolkit. I think this message needs to be posted in the QL-USERS mailing list, George Gwilt reads that list.



Many thanks Derek I have now done this


-----------------------------------------------------------------------------------
QLick here for the Back 2 the QL Blog http://backtotheql.blogspot.co.uk/
User avatar
Mr_Navigator
QL Fanatic
Posts: 782
Joined: Mon Dec 13, 2010 11:17 pm
Location: UK, Essex
Contact:

Re: Testing for installed TURBO

Postby Mr_Navigator » Thu Aug 17, 2017 9:53 am

Martin_Head wrote:Could you use the WHEN ERROR trapping (JS ROMs upward).

Try to use a Turbo Toolkit command, if the toolkit is not installed the command will be trapped in the WHEN ERROR clause, and then the toolkit can be loaded.



I will try this also Martin, thanks


-----------------------------------------------------------------------------------
QLick here for the Back 2 the QL Blog http://backtotheql.blogspot.co.uk/
Derek_Stewart
QL Wafer Drive
Posts: 1564
Joined: Mon Dec 20, 2010 11:40 am
Location: Runcorn, Cheshire, UK

Re: Testing for installed TURBO

Postby Derek_Stewart » Thu Aug 17, 2017 10:43 am

Hi Lee,

Looking at my boot file for SMSQmualtor/QPC2/Q-EMulator, I use this If clause:

Code: Select all

1300 REMark Load Turbo Toolkit
1310 IF VER$=="HBA"
1320   LRESPR "WIN1_TURBO_SMS_CODE"
1330 ELSE
1340   LRESPR "WIN1_TURBO_TK_CODE"
1350 END IF


Seems to work for QDOS and SMSQ/E.

But I guess there are other solutions.


Regards,

Derek
User avatar
Mr_Navigator
QL Fanatic
Posts: 782
Joined: Mon Dec 13, 2010 11:17 pm
Location: UK, Essex
Contact:

Re: Testing for installed TURBO

Postby Mr_Navigator » Thu Aug 17, 2017 11:23 am

Derek_Stewart wrote:Hi Lee,

Looking at my boot file for SMSQmualtor/QPC2/Q-EMulator, I use this If clause:

Code: Select all

1300 REMark Load Turbo Toolkit
1310 IF VER$=="HBA"
1320   LRESPR "WIN1_TURBO_SMS_CODE"
1330 ELSE
1340   LRESPR "WIN1_TURBO_TK_CODE"
1350 END IF


Seems to work for QDOS and SMSQ/E.

But I guess there are other solutions.


Thanks, but that would not work for me and perhaps I should clarify a little further.

Using Q-emuLator, my boot first loads SMSQ_QEM and restarts with the same boot

Where this

Code: Select all

IF VER$<>"HBA" THEN
   LRESPR "WIN8_SMSQ_QEM"
END IF


fails the second time around (as designed, so all good)

I then load (still in the same boot) the TURBO_SMS_CODE appropriate for SMSQ based system.

This is all fine, however, I am developing the boot for different setups and change them a lot depending on what project I decide to work on.

This means running the boot several times in the one session to test what I am trying to do and I don't want to keep using up space re-LRESPR the TURBO toolkit.
Using another toolkit to test for the existence of a keyword in the TURBO toolkit would then mean using another method to test for that additional Toolkit, as you said a catch 22.


So

Code: Select all

1300 REMark Load Turbo Toolkit
1310 IF VER$=="HBA"
1320   LRESPR "WIN1_TURBO_SMS_CODE"
1330 ELSE
1340   LRESPR "WIN1_TURBO_TK_CODE"
1350 END IF


would not work for me :cry: .


-----------------------------------------------------------------------------------
QLick here for the Back 2 the QL Blog http://backtotheql.blogspot.co.uk/
User avatar
Mr_Navigator
QL Fanatic
Posts: 782
Joined: Mon Dec 13, 2010 11:17 pm
Location: UK, Essex
Contact:

Re: Testing for installed TURBO

Postby Mr_Navigator » Thu Aug 17, 2017 2:03 pm

Thanks for all the suggestions guys

Code: Select all

220 IF TK_VER$<>"" THEN
230  PRINT "Done":STOP
240 ELSE
250  LRESPR win8_turbo_sms_code
260 END IF


this works exactly how I wanted it to, so congrats to Tobias.

I have also been able to get this method to work with TURBO ptr extensions as well by using the following

Code: Select all

220 IF ACR<>0 THEN
230  PRINT "Done":STOP
240 ELSE
250  LRESPR win2_tptr_ext
260 END IF


(ACR being a function within the TPTR_EXTs) So as to Derek's suggestion about other toolkits, this method could be adapted if suitable extension's functions allow.


I name this process either EORMT or RMTEO

(Run Many Times Execute Once)

I thankyou, I'm here 'til thursday, no wait, what!


-----------------------------------------------------------------------------------
QLick here for the Back 2 the QL Blog http://backtotheql.blogspot.co.uk/
User avatar
tofro
QL Wafer Drive
Posts: 1733
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: Testing for installed TURBO

Postby tofro » Thu Aug 17, 2017 2:45 pm

That method should work with any toolkit function that
  • does not require any parameters
  • can be relied upon to return anything different from 0 or an empty string in the default case

Toolkit II DATAD$ could be an example to test for Toolkit 2.

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO

Who is online

Users browsing this forum: daniel_baum and 4 guests