Personal Computer News


Speed Up QL's Quill

 
Published in Personal Computer News #101

Give your QL's word processing package added zing by speeding it up with Alan Turnbull's three routines.

Speed Up QL Quill

Cue For Alternatives

Give your QL's word processing package added zing by speeding it up with Alan Turnbull's three routines

Among the problems with QL Quill, the word processing package supplied by Psion for the QL, are lack of speed and the fact that the Microdrive 2 is used as a temporary "scratch pad" for text which cannot currently be held in the QL's memory.

This anomaly arose from problems Psion had when writing Quill: the code is, quite simply, too bulky.

The applications software was developed in a high-level language - C - on a 'host' machine and then 'downloaded' onto the QL when Sinclair engineers had finalised the design. Unfortunately, this meant that the code ran very slowly for a code that had been written directly for the 'target' machine - in the QL's case, the Motorola MC68008 processor.

Added to the problems with Quill are the rumours that Microdrive 2 suffers as a poor relation to Microdrive 1 because of overheating from the heat-sink which sits directly behind it.

Early this year Psion is to release a major upgrade to Quill which, I hope, will be a lot faster, take up less valuable QL memory space and hence rely on Microdrive 2 less. But this doesn't help version one owners.

I hit upon the idea of making Quill use Microdrive 1 as the scratch pad - leaving Microdrive 2 for loading and saving archived documents as and when needed.

Using mdv1, rather than having the Quill program cartridge on mdv1 and your own data cartridge on mdv2, means that the cartridge in mdv2 may be changed at any time and as many times as you wish.

Unfortunately, this also means that all loads, saves, etc, default to mdv1 and you must specify mdv2 explicitly. This could be dangerous if you try to save a large document on mdv1.

The problem could be circumvented by changing only references to mdv2-def-doc to mdv1-def-doc rather than all occurrences of the string mdv2 to mdv1, but it would not really be worth the effort.

Even with large documents, mdv1 can cope because the scratch pad file never holds the whole of the current document.

The actual mechnics of altering Quill to use mdv1 (except for document storage) involve:

  1. Taking the back-up version of the Quill cartridge and making a copy of the Quill machine code.
  2. Examining this and replacing every occurrence of the string mdv2 with mdv1.
  3. Deleting the help file, QUIL-HOB, from the cartridge to make room for the scratch pad file. (When you press function key F1, the help page option should be overlaid by Quill. Operating this option even when you have deleted the QUIL-HOB file will not crash Quill - it will simply tell you "No help file on mdv1".
  4. Saving the modified Quill machine code - in a suitable format - back to the back-up cartridge.

Type in Listing 1, a very slow SuperBasic method of carrying out all the major tasks.

Listing 2 replaces the time critical searching operation by Motorola MC68008 machine code. When assembled, this routine converts into the list of bytes included as data in Listing 3 - the final version of the modifier program which will carry out all the necesary operations as in Listing 1, but much faster.

The final program in Listing 3 will modify the back-up cartridge holding version 1.03 of Quill so that it uses mdv1 as its scratch pad and not the unreliable mdv2. Note that if you have broken the 'write-protect' tab off your back-up Quill cartridge then you will not be able to carry out these modification.

Remember, too, that version 1.03 of Quill is 61632 bytes long. It would be worth checking on the length of your version of Quill and altering the modifier program accordingly.

As a footnote, if you wish to connect floppy disk drives to the QL, as I am in the process of doing, you should be able to use this modifier program (suitably modified itself, of course) to make Quill recognise the new devices.

Alan Turnbull