QLiberator section
|
|
Last updated: 20/03/2024
QLiberator is a comprehensive BASIC compiler for the Sinclair
QL's on-board SuperBASIC language. Originally marketed by Liberation
Software as a commercial product, the compiler and some associated
utilities were made freeware in 2017 by the authors, Ian Stewart and
Adrian Soundy.
QLiberator 1
- sometimes referred to as the Budget QLiberator, it was the original
version 1 compiler. Included here as it has less demanding
requirements, able to run on smaller memory systems. (36K) (Liberation
Software) [13/06/17]
QLiberator
1 manual - PDF of the manual for v1 of the compiler. (563K)
[13/06/17]
QLiberator 3.36 - the
last official version of the compiler. (64K) (Liberation Software)
[13/06/17]
Q_Liberator manuals, now with the Chapter 15 missing from some versions of the manual added, thanks to Norman Dunbar.
QLiberator 3.36
manual
- PDF of the manual for v3.36 of the compiler. (2.3MB) (Jon Slater & Norman Dunbar) [13/11/17]
Q_Liberator 3.36 manual - Word DOC version of the QLiberator 3.36 manual. (1.2MB) (Jon Slater & Norman Dunbar) [13/11/17]
Q_Liberator 3.36 manual - Word DOCX version of the QLiberator 3.36 manual (396K) (Jon Slater & Norman Dunbar) [13/11/17]
Some
versions of the Q_Liberator manual omit chapter 15, which deals with
enhancements in Release 3.3 and later. To rectify that, here's a PDF
and Word doc file of just that chapter:
QLib Chap 15.pdf (154K) PDF file version.
QLib Chap 15.doc (212K) Word DOC file version.
Per
Witte has further improved the QLiberator manual, adding headings,
making it simple to get bookmarks into the resulting PDF version. The
original manuals will remain above for now, for posterity.
Q_Liberator 3.36+ manual.docx (447K) - Word .docx version.
Q_Liberator 3.36+ manual.pdf (894K) - PDF version
Qlib_337.zip
- otherwise known as "The Sinclair QL Forum Edition 2020". Martin Head
decompiled the QLib 3.36 object files back into QL SuperBASIC source,
and QL Forum member EmmBee did some work renaming variables and
routines and compiled a new version for 2020, dubbing it v3.37. He says
that four main improvements have been made -the front panel can be
moved beyond the old 512x256 on a high resolution screen, longer
filename entries (up to 41 characters), hex and binary values via the $
and % prefixes, and REM statements can now go anywhere, including the
top line of a multi-line structure. The Patch program has also been
updated. The source files are included, along with every file needed. (88K)
Qlib_341.zip - Update files for QLiberator version 3.41. (99K)
Qlib_342.zip - Update files for QLiberator version 3.42. (99K)
Qlib_343.zip - QLiberator compiler and decompiled sources, version 3.43. Main change
is that more machine code files can be linked now. (99K) [04/09/2021]
Qlib_344.zip - Latest update files for the
QLiberator compiler and decompiled sources, version 3.44. Tidied up
code, including ON...GOTOs converted to SELect ON, multiple line IFs
converted to single line IFs and Per Witte's QLIB_run v3.42 now
included. (96K) [20/09/21]
Qlib345.zip - Version 3.45 of the compiler. (102K)
Qlib345s.zip - Source files for v3.45. (189K)
QLiberator v3.46, prepared by
Per Witte, released March 2024. It is now split into the runtime
720K disc (i.e. all you need to compile programs), and a 1.4MB sources
disc. The first couple of files to download are floppy disc image
(.IMG) files. For the few who have systems which don't support IMG
files, I've prepared a couple of traditional zip files as well. There
is a folder with the documentation files which you should read to get
up to date with changes. For now, at least, I will leave the older
versions on this page for posterity and in case anyone has difficulty
with the current versions, you can go back to an older version
temporarily.
Qlib346u.img.zip - QLiberator v3.46, user disk image (77K) [20/03/24]
Qlib346s.img.zip - QLiberator v3.46 source files disk image (182K) [20/03/24]
In case anyone has a system which does not support floppy disc images,
here are a couple of traditional .zip files with the loose files. Note
that the zip file contains sub-directories, so should be unzipped on a
level 2 filing system. Note that all of the v3.4x versions need Toolkit
2, and if you are running an older QL system, it may be better to stick
with one of the v3.3x versions above.
Qlib346u.zip User disk. (103K)
Qlib346s.zip Sources disk. (188K)
QLOAD and QREF - QLOAD is
a fast loader system for SuperBASIC (it's built into SBASIC). QSAVE
saves tokenised BASIC programs for faster loading. QREF is a
cross-reference utility for BASIC programmers - list variables,
procedures, functions etc. Version 1.9 of QLOAD and 1.3 of QREF. (15K) (Liberation Software)
[13/06/17]
QLoadRef.pdf - PDF of the manual for QLOAD and QREF. (249K) [13/06/17]
QLoadRef.docx - Word version of the QLOAD and QREF manual. (25K) [13/06/17]
QLib Patch - An
enhanced patch program for QLiberator, to
allow the Heap to exceed 512K bytes. Needs the Pointer Environment.
Available to download from the Programming Utilities page.
QLIB_RUN modified -
Original versions of the QLiberator compiler runtime extensions up to
and including v3.36 include a problem where the ERNUM and ERLIN error
returns can be reversed, causing problems for programs whichuse these
functions, for example several programs written by Thierry Godefroy.
Thierry has patched the runtimes v3.35 and v3.36 to work around these
problems. If the program documentation states you need these, here they
are.
qlibrun335mod.zip
(10K) (Thierry Godefroy) [07/02/06]
qlibrun336mod.zip
(10K) (Thierry Godefroy) [07/02/06]
The instructions with the above are in the original French. Here is a version with an English translation too:
Word Format (29K)
PDF Format (56K)
QLIB_RUN modified 2 -
with the original QLiberator compiler up to and including v3.36 it was
not possible to get External compiled procedures working on SMSQ/E
systems. The SMSQ/E master disks included a pair of programs to patch
the compiler runtimes QLIB_RUN to allow free running procedures to be
compiled with QLiberator. Three versions are in the zip file, modified
original QLIB_RUN plus re-modified versions of Thierry Godefroy's
ERLIN/ERNUM modified versions above.
qlibrunmod2.zip (25K)
QCopy is a pointer driven utility for handling QSAVEd files - BASIC
programs saved in _sav format. Can be used to extract routines from
_sav program files, for example. (Barry J. Ansell) - available to download from the Programming Utilities page.
BASIC Linker - A
formerly commercial program from Wolfgang Lenerz, who has now made it
freeware. Like a traditional linker program, this allows you to split
up your program into manageable sized sections which you can edit in QD
editor, then 'link' or join them all up into one final output file when
program editing is complete. Parsing, _sav files for QLiberator
compiling, checking for presence of given machine code extensions etc.
all possible. Available to download from the Programming Utilities page.
Config Block Utilities
- if you'd like to make standard level 1 or level 2 config blocks for
your compiled programs to make it easier to configure default drives
etc, see programs such as BasConfig on the Config Utilities page.
Structured SuperBASIC
- a Tim Swenson program
that takes SuperBasic programs written in the SSB style and converts
them to full running SuperBasic programs. It supports the following
features: No line numbers, Blank lines between lines of code, Labels
for GOTOs and GOSUBs, Conditional compilation, Multiple part programs,
Programs written using a text editor. In other words, an aid to
producing and compiling programs. Available to download from the Programming Utilities page.
SuperBASIC source book
- a useful little book by Tim Swenson for the BASIC compiler user, a
lot of information for QLiberator users. Available in several formats
on the eBooks page.
RPM - Resident Program Manager
is a utility for creating resident files. A resident file contains one
or more program or SuperBASIC procedures and functions designed to be
permenently linked to the QL and thus available instantly when
required. RPM produces a resident file by copying one or more source
files and some special interface code into a new file. The source file
in this context may be SuperBASIC extensions, executable program, a
QLiberator object program, possibly with externals, a SuperBASIC
program, or data files (for sequential reading onl). Either RAM
resident or ROM resident files may be produced. ROM resident files
should be position independent, not be self-modifying and contain no
data areas in the code. (21K) (Liberation Software) [13/06/17]
Word file version of RPM manual (48K)
PDF file version of RPM manual (336K)
Return
to the home page. | Return
to Downloads Index