QLiberator section
|
|
Last updated: 20/01/2025
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_338.zip
version 3.38, for posterity. (97K)
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)
Please note that if you downloaded any of v3.37 to v3.44 before
10/03/25, there have been some changes at the suggestion of Martin
Head, to make things work "more out of the box", so it may be worth
downloading again. In v3.38 this consisted of renaming QLIB_BAS_337_OBJ
to QLIB_OBJ. In all versions, the modified QLiberator runtimes are now
installed by the boot program. And the OUTLN statement in the boot
program is now only used on SMSQ/E systems (added a line which says
v$=VER$:IF v$="HBA":OUTLN ).
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.
This distribution comes in the basic form of two disks - those with 'u'
in the filename are 'user' disks, while those with 's' in the filename
are 'sources' disks. The sources disks are not required to compile or
run Q-Lib programs. Please read Per Witte'sQlib346.txt for a better understanding of which file below is which.
Qlib346.txt Notes as to which file is which below. (2K)
Qlib346ui.zip is the zipped version of an
image of this disk. Once unzipped, the image can be mounted directly
into most emulators and the software run from there (78K)
Qlib346ud.zip is the zipped contents of the
User disk. Unzip it to a suitable location yourself, such as a floppy
disk or hard drive. The device's driver must support directories (101K)
Qlib346u.zip is the zipped contents of the
User disk without directories. Unzip it to a suitable floppy or RAM
disk (it wont fit on a microdrive) (101K)
Qlib346si.zip contains the 1440k floppy
image of the source disk. Once unzipped, the image can be mounted
directly into most emulators and used from there (185K)
Qlib346sd.zip contains the contents of the
Qlib346s source disk and can be unzipped to any suitable location, like
a subdirectory on your hard disk (190K)
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)
Qlibodge - unlink runtimes from a QLiberated program. Needs Toolkit 2 and QLIB_RUN. Qlibodge.zip (4K)
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