QLiberator v3.38

Anything QL Software or Programming Related.
EmmBee
Trump Card
Posts: 184
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

QLiberator v3.38

Postby EmmBee » Wed Apr 15, 2020 11:52 am

Hi all,

Attached is QLIB v3.38. I've added to the Release notes in the README file. Here is what I say ...

RELEASE 3.37 March 2020
-------------------------

The past 27 years have witnessed huge strides in technology. Television and
Monitor screen sizes have increased far beyond the original QL's 512x256.
Emulators have appeared and allow many thousands of QL files to be stored on
PCs hard drives, requiring longer filenames. Hex values (base 16) and Bin
values (base 2) can now be used with the latest SMSQ/E SBASIC language. This
update is an attempt to keep QLIB fully abreast of the latest in technology.

+ Now able to detect larger screen sizes than the original QL's 512x256

+ Able to move QLIB's front panel outside of 512x256

+ Filename entries up to 41 chars can be entered

+ Hex and Bin values now recognised. Eg. $FF = 255 %1111 = 15

+ REMark's can now be placed anywhere - as with S*BASIC.

+ QLIB_Patch now writes a "Written" message to confirm successful patching.


RELEASE 3.38 April 2020
-------------------------

An update to cure a bug introduced in the previous version, and to make some
improvements to the existing code.

+ Checking of REMark on top line of structures now correctly written.

+ Binary-chop method added to screen size detection - improving start-up time.

+ Environment Vars record the front panel position, even outside of 512x256.

+ er = Q_ERR : IF er .. is now used to improve error messages.

+ Ambiguous names are now reported - instead of just saying so.

+ Missing names in FOR/REPeat loops (allowed in SBASIC) now reported.

+ The name after END DEFine is now spell checked .. Reported if incorrect.

+ Literal strings over 512 chars now detected and reported.

+ "ED", "LIBERATE" and "INSTR_CASE" added to list of names which don't compile.

+ Work file now DELETED AT END to enable several compiles in one QLIB session.

+ Patch program now avoids odd-sized object files to avoid QL crashing.

+ Can now be called with an object filename (optional).

+ "_obj" added to the end of filename if not entered.

+ Job name limited to 22 chars as in v3.36 and previous versions.

+ QLIB Compiler and Patch program now more fully integrated.

Note that the ENV_BIN should be LRESPRd in the Boot file, as all programs in the QL can use it.

Qlib_338.zip
(96.85 KiB) Downloaded 26 times


User avatar
RalfR
Gold Card
Posts: 409
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator v3.38

Postby RalfR » Wed Apr 15, 2020 12:05 pm

Many thanks, I am looking forward to give it a try.


Derek_Stewart
QL Wafer Drive
Posts: 1827
Joined: Mon Dec 20, 2010 11:40 am
Location: Runcorn, Cheshire, UK

Re: QLiberator v3.38

Postby Derek_Stewart » Wed Apr 15, 2020 1:12 pm

Hi,

Thank you for the great work, once I had changed my boot file, every thing worked great.

Is there an environmental variable that can be preset to define the screen location of the compiler front end?


Regards,

Derek
User avatar
pjw
Super Gold Card
Posts: 682
Joined: Fri Jul 11, 2014 8:44 am
Location: Norway
Contact:

Re: QLiberator v3.38

Postby pjw » Wed Apr 15, 2020 1:23 pm

Thank you! Looking forward to take it for a spin :)


Per
Be wary of large West-Coast corporations bearing gifts!
- Ancient Trojan proverb
EmmBee
Trump Card
Posts: 184
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator v3.38

Postby EmmBee » Wed Apr 15, 2020 2:38 pm

Derek_Stewart wrote:Hi,

Is there an environmental variable that can be preset to define the screen location of the compiler front end?

Yes, use ... SETENV "QLIB_wA=" & wA : SETENV "QLIB_wD=" & wD where wA is the front end left x and wD is the top y position. I.e. top left corner.


User avatar
RalfR
Gold Card
Posts: 409
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator v3.38

Postby RalfR » Wed Apr 15, 2020 3:19 pm

BTW: Line 32558:

SCRXLIM = x : SCRYLIM = y

Both VAR names will clash with Dilwyn's "scxlim.zip", where he used SCRXLIM and SCRYLIM as functions.

You should also patch QLib7.bin, that is the config block. Change "3.30" to "3.38" ;)


EmmBee
Trump Card
Posts: 184
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator v3.38

Postby EmmBee » Wed Apr 15, 2020 7:52 pm

RalfR wrote:BTW: Line 32558:

SCRXLIM = x : SCRYLIM = y

Both VAR names will clash with Dilwyn's "scxlim.zip", where he used SCRXLIM and SCRYLIM as functions.

I was perhaps going to use Dilwyn's code, but he has pointed out in his notes that it might not work for the uQLx emulator, which is an exception. Since QLIB is designed to work on all platforms, perhaps we should use my simple detection method, instead.

You should also patch QLib7.bin, that is the config block. Change "3.30" to "3.38" ;)

I was also thinking that since the QLIB Patch program is now so much integrated with the compiler QLIB_obj, we should rename all three of these with the Version number v3.38.


User avatar
mk79
Super Gold Card
Posts: 600
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: QLiberator v3.38

Postby mk79 » Wed Apr 15, 2020 11:02 pm

EmmBee wrote:I was perhaps going to use Dilwyn's code, but he has pointed out in his notes that it might not work for the uQLx emulator, which is an exception.
I'm sure when the PE is loaded uQLx would work like any other platform.
In any case, this is Since QLIB is designed to work on all platforms, perhaps we should use my simple detection method, instead.
If the method is "increase a channel until it hits the limit" then please, for the love of god, don't do this. Really. Pretty please! :roll: I've been working so hard on everything from the PE to SMSQ/E to avoid nonsense like this.

Marcel


User avatar
tofro
QL Wafer Drive
Posts: 1958
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: QLiberator v3.38

Postby tofro » Wed Apr 15, 2020 11:23 pm

Proposal:

  • Check if PE is there (an iop_pinf call will do - If it comes back with no error, it's there. If not, it will simply return an error.
  • If yes, use an iop_flim PE call to determine the screen size. PE knows best how big the screen is (and, it's much faster)
  • If no, fall back to your method,

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
RalfR
Gold Card
Posts: 409
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator v3.38

Postby RalfR » Thu Apr 16, 2020 8:31 am

EmmBee wrote:I was perhaps going to use Dilwyn's code, but he has pointed out in his notes that it might not work for the uQLx emulator, which is an exception. Since QLIB is designed to work on all platforms, perhaps we should use my simple detection method, instead.
I think, you have misunderstand Dilwyn's REMark.

---------
Standard QDOS without pointer environment does not support higher resolutions,
although there are exceptions such as the uQLx emulator which supports a
small set of higher resolutions under QDOS)
---------

This just means, that higher resolutions without PE are possible under uQLx. So there is no reason, why it should not work. With Q_ERR_ON "WM_Rptr" you have checked the presence of PE, so you can safely use Dilwyn's extensions. For non-PE you can stick with your other way.



Who is online

Users browsing this forum: No registered users and 4 guests