Hi Lee, If booting from a Win drive on the first instance of needing to load the Turbo toolkit check for the existence of a file on the boot device called "TTKLoaded", or similar. If the file does not exist create it and load TurboTK. If the file is found to exist do not load the toolkit. At the end of the session tidy up the boot device by deleting this file. Not elegant but practical.
Duncan -----Original Message----- From: Lee Privett via Ql-Users <ql-users@lists.q-v-d.com> To: ql-users <ql-us...@q-v-d.com> CC: Lee Privett <lee.priv...@gmail.com> Sent: Thu, 17 Aug 2017 18:14 Subject: Re: [Ql-Users] TURBO and testing it exists Perhaps I should clarify this a little further.Using Q-emuLator, my boot first loads SMSQ_QEM and restarts with the sameboot, I will always do this or use QPC2, I am not really looking for a BBQLsolution 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) asthe same boot loads again, I then load (still in the same boot) theTURBO_SMS_CODE appropriate for SMSQ based system.This is all fine, however, I am developing the boot for different setupsand 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 testwhat I am trying to do and I don't want to keep using up space re-LRESPRthe TURBO toolkit.Using another toolkit to test for the existence of a keyword in the TURBOtoolkit would then mean using another method to test for that additionalToolkit, a catch 22.So I may try the WHEN_ERR method as soon as I find the documentation on it.LeeLeeOn 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