QLiberator section

QLiberator logo  

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