On 06/07/2021 16:18, desin via Ql-Users wrote:
Am 06.07.21 um 15:07 schrieb Graeme Gregory via Ql-Users:

On Tue, 6 Jul 2021, at 1:59 PM, desin via Ql-Users wrote:

I agree with Francois, using LOOKUP% as alternative for EXISTS.
I use it a lot. It returns the place in the name table which can also be
used to test for conflicting keywords if found out of place.


Lookup% can not distinguish between

if SCRXLIM_cde is loaded
print Lookup% ("SCR_XLIM") gives 160
print Lookup% ("SCRXLIM") gives 162

SMSQE -> Function_code

That looks right to me, assuming uQLx based code.

Lookup%(SCR_YLIM) will give 161 (its the last extension installed by uQLx), and SCRXLIM is the first user one at 162.

QL-Users Mailing List

On the other hand; would it be safe to presume; for all Systems;
if SCR_XLIM is not present; the default screen resolution is used ?

my reason is a simple system info
depends on

 IF EXISTS ("EMU_VER$")     : PRINT " SMSQmulator"
 IF EXISTS ("QPC_EXIT")     : PRINT " QPC2 "&QPC_ver$
 smsqe% = 0 : min% = 0 : tk% = 0
 IF "HBA"  INSTR VER$ : smsqe% = 1
 IF "JSL1" INSTR VER$ : min%   = 1
 IF EXISTS ("ED")     : tk%    = 1
 IF smsqe%                  : PRINT   " SMSQE "      &VER$ (1)
 IF min%                    : PRINT   " Minerva ROM "&VER$ (1)
 IF NOT min% AND NOT smsqe% : PRINT " ";VER$ &" ROM"
 IF fr_mem% >  1024:PRINT " "&FDEC$ (fr_mem%/1000,4,1) &" Mb free"
 if fr_mem% <= 1024:PRINT " "&fr_mem%&" Kb free"
 if tk%                and not smsqe% : PRINT " Toolkit2 enabled"
 IF EXISTS ("HIS_USE") and not smsqe% : PRINT " History  enabled"
 IF exists ("PINFO")   and not smsqe% : PRINT " Pointer  enabled"
 IF EXISTS ("RAM_USE") and not smsqe% : PRINT " Ramdisk  enabled"
 PRINT " Screen "&xx%&"x"&yy%


If it were only that easy.. :o(

I havent gone through all of it, but just a couple of things:

MACHINE would be better for sorting out wots wot, except not all systems implement it. However, you can get the same info directly from the system variables. I dont have the details to hand, but Im sure someone will produce them any moment now..

EMU_VER$ was a result of my nagging to get some semblance of conformity across the various emulators (Why does each emulator have a different command to do the same thing!) The idea was that EMU_xxx would replace JVA_xxx and QPC_xxx and anything else like it. Sadly, that didnt happen only SMSQmulator complied (but then still kept the old JVA_xxx) However, one day QPC (and/or any other) may conform and then BANG! goes your test for SMSQmulator. If you want to do it that way, better target JVA_VER$.

Just a wee logical slip up: You cant use FDEC$ unless either TK2 or SMSQ/E (or some other toolkit I dont know about) are present.


QL-Users Mailing List

Reply via email to