Thats a nice solution. Not sufficient for all manner of keywords, though. A
more general solution for checking for relevant toolkits in boot programs,
without having to load a toolkit to do so can be found in this article:
http://www.hunggartorino.it/ql/findkey/ (also available in Italian!)

Per

On 17 August 2017 at 13:54, Lee Privett via Ql-Users <
ql-users@lists.q-v-d.com> wrote:

> I have also been able to get this method to work with TURBO ptr extensions
> as well by using the following
>
> 220 IF ACR<>0 THEN
> 230  PRINT "Done":STOP
> 240 ELSE
> 250  LRESPR win2_tptr_ext
> 260 END IF
>
>
> Lee
>
> Lee
>
>
>
>
> On Thu, Aug 17, 2017 at 12:22 PM, Lee Privett <lee.priv...@gmail.com>
> wrote:
>
> > Thanks for all the suggestions guys,
> >
> > 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 ūüéĶ to Tobias.
> >
> > Many thanks to you all
> >
> > Lee
> >
> >
> >
> >
> >
> >
> >
> >
> > Lee
> >
> >
> >
> >
> > On Thu, Aug 17, 2017 at 11:47 AM, Tobias Fröschle via Ql-Users <
> > ql-users@lists.q-v-d.com> wrote:
> >
> >> Lee,
> >>
> >> in case your question is really only Turbo Toolkit specific, you can
> very
> >> well do away with a much simpler solution than WHEN ERRor clauses:
> >>
> >> 1000 IF TK_VER$ <> ""
> >> 1010   REM do whatever you want to do when Turbo Toolkit is loaded
> >> 1020 ELSE
> >> 1030  REM Do whatever you want to do if it is not loaded
> >> 1030 END IF
> >>
> >> This relies on the fact that the interpreter will interpret TK_VER$ as a
> >> FUNCTION returning a string in case the toolkit is loaded, and an unset
> >> string variable in case it is not. And unset string variables are by
> >> convention "empty".
> >>
> >> Tobias
> >>
> >>
> >> > Am 17.08.2017 um 12:37 schrieb Lee Privett via Ql-Users <
> >> ql-users@lists.q-v-d.com>:
> >> >
> >> > Perhaps I should clarify this a little further.
> >> >
> >> > Using Q-emuLator, my boot first loads SMSQ_QEM and restarts with the
> >> same
> >> > boot, I will always do this or use QPC2, I am not really looking for a
> >> BBQL
> >> > solution as it is development for other things.
> >> >
> >> > Where this
> >> >
> >> > [code]IF VER$<>"HBA" THEN
> >> >   LRESPR "WIN8_SMSQ_QEM"
> >> > END IF[/code]
> >> >
> >> > loads SMSQ and fails the second time around (as designed, so all good)
> >> as
> >> > the same boot loads again, 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 re-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, a catch 22.
> >> >
> >> > So I may try the WHEN_ERR method as soon as I find the documentation
> on
> >> it.
> >> >
> >> > Lee
> >> >
> >> >
> >> >
> >> >
> >> > Lee
> >> >
> >> >
> >> >
> >> >
> >> > On Thu, Aug 17, 2017 at 10:49 AM, Derek Stewart via Ql-Users <
> >> > ql-users@lists.q-v-d.com> wrote:
> >> >
> >> >> Hi Tobias,
> >> >>
> >> >> The WHEN solution is great, but on some version of QODS, the WHEN
> ERRor
> >> >> did not work.
> >> >>
> >> >> There are some people still using AH,JM, roms which may have problems
> >> with
> >> >> WHEN ERRor
> >> >>
> >> >> --
> >> >> Regards,
> >> >>
> >> >> Derek
> >> >>
> >> >>
> >> >> On 17/08/17 10:39, Tobias Fröschle via Ql-Users wrote:
> >> >>
> >> >>> After I sent this, I realised a bit of explanation might be in
> order,
> >> as
> >> >>> WHEN ERRor is not so well-known:
> >> >>>
> >> >>> When the interpreter passes a WHEN ERRor/END WHEN pair during normal
> >> >>> program execution, it doesn't do anything with the commands inside
> the
> >> >>> clause but remembering "I should do this in case an error occurs".
> >> So, line
> >> >>> 1020 is not executed if no error occurs in line 1050. But in case
> >> there is
> >> >>> an error (the interpreter choking on the MANIFEST statement it
> >> doesn't know
> >> >>> when TT is not loaded), line 1020 is executed, telling us TT is not
> >> loaded.
> >> >>>
> >> >>> After 1020 was executed, the program is continued at the point
> /after/
> >> >>> the error occurred.
> >> >>>
> >> >>> The empty WHEN ERRor clause (1060-1070) simply de-activates error
> >> >>> processing back to "normal".
> >> >>>
> >> >>> Line 1080 will thus have the variable TurboTkLoaded to 1, if 1050
> was
> >> >>> executed without a problem, and set to 0 in case there was an error.
> >> >>> Because we have made sure line 1050 is the only line that can be
> >> executed
> >> >>> while error processing is active, we clearly know the only problem
> in
> >> 1050
> >> >>> can only be "bad name". So it is important to pick a "test command"
> >> from
> >> >>> the toolkit you are testing for that cannot choke on a different
> >> error than
> >> >>> "bad name". MANIFEST is pretty ideal for this.
> >> >>>
> >> >>> Tobias
> >> >>>
> >> >>> Am 17.08.2017 um 11:25 schrieb Tobias Fröschle via Ql-Users <
> >> >>>> ql-users@lists.q-v-d.com>:
> >> >>>>
> >> >>>> Lee,
> >> >>>>
> >> >>>> there are a number of toolkits that allow you to check for specific
> >> >>>> other toolkit commands loaded or not - But this is a bit useless as
> >> it
> >> >>>> leaves you with a chicken-and-egg problem: How to check whether the
> >> >>>> checking toolkit is loaded?
> >> >>>>
> >> >>>> Your best bet on SMSQ/E would be a WHEN ERRor clause you place just
> >> in
> >> >>>> front of a Toolkit command you are about to execute:
> >> >>>>
> >> >>>> 1000 TurboTkLoaded = 1
> >> >>>> 1010 WHEN ERRor
> >> >>>> 1020    TurboTkLoaded = 0
> >> >>>> 1030 END WHEN
> >> >>>> 1040 REMark Execute a Toolkit command
> >> >>>> 1050 MANIFEST : x = 100
> >> >>>> 1055 REMark de-activate error checker
> >> >>>> 1060 WHEN ERRor
> >> >>>> 1070 END WHEN
> >> >>>> 1080 PRINT "Turbo Toolkit loaded:"!TurboTkLoaded
> >> >>>>
> >> >>>> On a QL with non-working WHEN ERRor commands (pre-MG) you are a bit
> >> >>>> doomed, the only thing I could probably come up with is writing a
> >> BASIC
> >> >>>> program that PEEKs the name list, which is not quite so simple.
> >> >>>>
> >> >>>> Tobias
> >> >>>>
> >> >>>>
> >> >>>> Am 17.08.2017 um 10:49 schrieb Lee Privett via Ql-Users <
> >> >>>>> ql-users@lists.q-v-d.com>:
> >> >>>>>
> >> >>>>> I originally posted this on the forum:
> >> >>>>>
> >> >>>>> 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 <http://qlforum.co.uk/viewtopic.php?f=3&t=2063#>
> >> >>>>> IF VER$<>"HBA" THEN
> >> >>>>>  LRESPR "WIN8_SMSQ_QEM"
> >> >>>>> END IF
> >> >>>>>
> >> >>>>>
> >> >>>>> I feel there must be a way to test for TURBO toolkit, any ideas?
> >> >>>>>
> >> >>>>> A reply from Derek suggested  the following:
> >> >>>>>
> >> >>>>> 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.
> >> >>>>>
> >> >>>>> Any views at all?
> >> >>>>>
> >> >>>>> Regards Lee Privett
> >> >>>>> _______________________________________________
> >> >>>>> QL-Users Mailing List
> >> >>>>>
> >> >>>>
> >> >>>> _______________________________________________
> >> >>>> QL-Users Mailing List
> >> >>>>
> >> >>>
> >> >>> _______________________________________________
> >> >>> QL-Users Mailing List
> >> >>>
> >> >>> _______________________________________________
> >> >> QL-Users Mailing List
> >> > _______________________________________________
> >> > QL-Users Mailing List
> >>
> >> _______________________________________________
> >> QL-Users Mailing List
> >>
> >
> >
> _______________________________________________
> QL-Users Mailing List
>
_______________________________________________
QL-Users Mailing List

Reply via email to