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

Reply via email to