Toolkit II – The sequel

By | 2017-03-19

As any QL owner will know, the Toolkit 2 from QJUMP/Tony Tebby was THE toolkit without which a QL was almost unusable, arguably its contents should have been in the ROM from the start. And I always thought it was quite a shame that such an important toolkit hasn’t been updated in two decades. This got me thinking that most TK2 source files at one time were incorporated into SMSQ/E and that with a little bit of work it should be possible to re-create something resembling TK2 from them again. Turns out I was right, but also completely wrong in how “little” that work is. But still, too many hours later, I can now present to you a brand new Toolkit II release I arbitrarily labeled version 2.30.

This is now based on the latest SMSQ/E source code, with new SMSQ/E features left intact if it was feasible (e.g. the “LOAD” command now automatically tries to append a “_bas” extension to the filename) plus many commands that have been added in the last 20 years (EXF, EX_M, FET, FEW, FEX, FEX_M, HGET, HPUT, JOBID, LGET, LPUT, UPUT, WGET and WPUT).

Unfortunately there are also parts of the source code that were completely missing, like the extended MDV driver. In this case I completely reverse engineered it from an existing ROM binary in a way that you can’t tell anymore that this isn’t the original source code.

The old network server code is actually still supplied with the SMSQ/E source code even though it’s not actually used there. The problem with that is that it’s just too big to fit into the ROM anymore and it probably doesn’t make much sense to run it from RAM because of the different timing. Therefore I didn’t include it. The ALARM and CLOCK commands had a similar fate.

The ALTKEY code, too, is included in SMSQ/E without seeing any usage. I didn’t want to include it at first, because with the Hotkey System II it’s very much obsolete. But when tinkering with my QL system the HK2 is often not loaded yet and it drives me crazy when ALT+ENTER doesn’t work to recall the last line. So it went back in. Problem then was that the result was about 200 or 300 bytes too big, so I removed the ALTKEY code but left the ALT+ENTER code in. The result was still 20 bytes too big, but with a few tweaks I now actually have 8 bytes left 🙂

So without further ado, here it is:

TK2 v2.31 ROM version
TK2 v2.31 RESPR version (full ALTKEY support because space doesn’t matter here)
TK2 v2.31 source code (needs rest of SMSQ/E source code to compile)

Recap: latest code, including extended MDV driver (not necessary and therefore disabled on Minerva), all new commands, no ALTKEY, but ALT+ENTER support.


2017-03-27: Updated to version 2.31 to fix a bug in CDEC$

4 thoughts on “Toolkit II – The sequel

  1. Martyn Hill

    Hi Marcel

    Another terrific initiative and thank you for it!

    As I myself am playing with the network driver quite a bit in a project I’m working to link a standard QL via a NET to USB adapter for my laptop running QPC, I’d love to reintroduce the network driver in to your updated TK2 v2.30.

    As my QL RAM expansion runs uncontended, I would expect the network to run in (high) RAM precisely as in ROM, so am interested to know of any tips you might have gleaned in your latest efforts so that I could take the TK2 NW code from the SMSQ/E source and add back to a RESPR version of your v2.30.

    I know the code pretty well after several months reviewing the asm, but have been put-off tinkering with it due to the apparent dependencies of the SMSQ/E source-tree.


    1. Marcel Post author

      Hi Martyn,

      it’s fairly easy actually. Uncomment the nd_init stuff in init_asm and recompile/link using tk2_link. You might have to double the dd_qlnd_lib line in the link file for some reason if you get undefined symbols, I’m not sure why.

      Have fun 😉

  2. Martyn Hill

    Thanks Marcel – I’ll have a go and post back here my findings in due course 🙂


Leave a Reply

Your email address will not be published. Required fields are marked *