Qdos DIY Toolkit

Articles and programs from Sinclair QL World, updated August 2003

The DIY Toolkit was a long-running series of Qdos programming tutorials, packed with SuperBASIC and Assembler source, later distributed as Quill DOC files as well as the programs. It extends Qdos in many useful ways and documents lots of interesting system features.

This document is a brief guide to the 'Volumes', originally distributed on Microdrive cartridge (though some are too big to fit a cartridge - Volume sizes vary from 40K to 140K) and now collected in this archive. Original volumes had single-letter names, and have all been compiled into one 1200K archive for download. This ZIP file contains sub-directories corresponding to each volume. Unzip them with a QL port of INFO-ZIP, or the Qdos-compatible XAD package from Aminet, or executable files will lose the metadata they need to multi-task on Qdos.



[A] ALIAS and DEF$
Lets you add extra names for a given extension, and choose procedures and functions by name from a menu, for editing or programming.

[B] BASIC TOOLS
Explore SuperBASIC interpreter memory; ten demos e.g. FORGET (for keywords), POP (RETurns) and WHY, for structured debugging. Extensions: BPOKE BPOKE_W BPOKE_L BPEEK% BPEEK_W% BPEEK_L

[C] CHANNELS
USE sets SuperBASIC default channel; CHAN functions access window settings. Extensions: CHAN_B% CHAN_W% CHAN_L USE

[D] DISK TOOLS
SuperBASIC programs and Quill documents which explain how to speed up, test, repair and rename Qdos-format floppy disks.

[E] ERROR CONTROL
Full editing of default in limited space; avoid coercion errors; zap all tasks. Extensions: PURGE CHECK% CHECKF EDLINE$

[F] FILE TOOLS
CustomKit builds toolkits from _CODE & _BIN files. EPROM Compiler makes ROM images. Task Commander turns compiled tasks into multi-threaded SuperBASIC extensions. File header extensions: GetHEAD SetHEAD

[G] GRAPHICS
Faster and more precise graphics commands, to suit all QLs and Thor MODE 12, as well as several decorative demos. Extensions: PLOT DRAW PIXEL%

[H] HEAP & HOROLOGY
Four 20mS stopwatches; SHOW_HEAP RAM explorer & info. MAPper for memory. Extensions: LINKUP RESERVE DISCARD T_ON T_OFF T_START T_STOP T_COUNT

[I] SERIAL MOUSE
Routines to support a two or three button Microsoft or Mouse Systems 'PC' serial mouse under Qdos. Compatible with the Amiga Qdos 'bus' mouse driver at the SuperBASIC keyword level.

[J] JOBS
Multi-tasking the DIY way, with excellent compatability without gobbling RAM; Task Control toolkit plus TASKFORCE, TASKNAME{(names task taking input) PSION_PATCH TASK_RENAME & ADDNAME programs.

[K] HEWLETT PACKARD PCL PRINTER ROUTINES
Adjustable resolution shaded dump routines for HP PCL printers (DeskJet, LaserJet etc). Also documents PACKBITS compression and colour separations. Plus routines to do interesting things with text printed on an HP printer. Special versions for QXL high resolution screen (untested - alas no QXL!)

[M] MultiBASIC
Compatible multiple SuperBASICs for any QDOS/Argos system! The new version 4.0 can swap screens as well as programs & variables. Extensions: UNLOAD RELOAD RESAVE REMOVE SCR_SAVE

[N] NETWORKING
Three improved NETPAL tools issue commands remotely on QL, Minerva or Thor (these need 2+ QLAN networked computers with FSERVE in ROM, or maybe a QXL). MEM = a new QDOS device to share memory between tasks or computers (any Qdos).

[P] PIPES & PARAMETERS
Machine code power from SuperBASIC extensions, plus SEARCH_PROG & CAT columnar directory demos. Extensions: PARTYPE PARSEPA PARHASH PARNAME$ UNSET QLINK QCOUNT% QSPACE% QSIZE%

[Q] QUEUES & QDOS
QUEUE% types into programs; QLIST scans keyboard queues; CHLIST names all open channels. Extensions: CHBASE SYSBASE QUEUE%

[R] REPLACE
Exchange variable, array and device names, or look up details; case conversion functions also included. Extensions: LOWER$ UPPER$ NEWCHAN% LOOKUP% REPLACE

[S] QLIPBOARD
Scan characters in any size or colour into SuperBASIC strings or type them into any other task. Full task including text editor, for Qdos and Argos.

[T] TRAPS
Qdos, Minerva and Argos system calls ('traps') documented and demonstrated with easy-to-use SuperBASIC extensions and assembly code.

[U] ENVIRONMENT VARIABLES
Share strings and numbers between concurrently running tasks and SuperBASIC. Also includes documentation and a demonstration of 'User Heap' management.

[V] MORE
Page through files or memory quickly and easily, while indicating your current position.

[W] WINDOWS
How to save, restore and move images in Qdos windows.

[X] MSEARCH and VOCAB
Look through the vocabulary of your SuperBASIC interpreter for variables, resident commands and functions, or SuperBASIC DEFinitions. MSEARCH is a fast, flexible search routine.

[Y] FLEXYNET
A simple replacement driver for QLAN (the Sinclair network) which can go faster than the original and adjust to mis-matched system speeds. Needs original Sinclair network hardware.

[Z] ARRAY SEARCH ROUTINES
SuperBASIC numeric array and string array search routines in assembler, with source code and explanations. Extensions: INARRAY, MINIMUM, MAXIMUM




Click here to download 1200K ZIP archive of all DIY Toolkit files.


Click here for links to other programs and articles by Simon N Goodwin.

CREDITS
Thanks to Phil Borman, Richard Alexander, Bill Fuggle, Eros Forenzi, Fulvio Morsella, Luca Pivato and Phil Spink for contributions to these files. The remainder was written, tested and documented by Simon N Goodwin.