RISC World

A Secret History of DrawWorks


The story of DrawWorks goes a long way back, far beyond the setting up of iSV Products in 1994. Indeed the very first version of what was to become DrawWorks was being worked on in 1990 during my lunch breaks whilst I was working at EFF (Electronic Font Foundry) in Ascot. So what was this first DrawWorks? Well much to most peoples surprise it wasn't a piece of computer software at all, it was a book!

A Book?

Yes, a book. Let me explain why. At the time EFF were selling lots of DTP systems to small printers and publishers. Either Kevin or myself would do a demo of all the wonderful things you could do with Draw, Impression and the PostScript Printer drivers. However when the customers got the machines they got a bit stumped with Draw. How could a program that looked so simple be used to produce such impressive looking artwork? So we decided that a guide book was needed. We made notes on each of the effects we had both worked out and then turned them into simple step by step diagrams that showed how a user could achieve the same results. The book took a couple of months of lunchbreaks and evening sessions and was almost complete. Then two things happened.

Firstly we were asked if we could beta test a new piece of software called TopDraw (you may know this in its current form as ArtWorks) and secondly we were provided with a laser printed beta of the RISC OS 3 Programmers Reference Manuals by Acorn. Could we check the font section and make sure it was correct? Indeed we could check it and it wasn't correct. However we got somewhat distracted by one of the appendices that explained the Draw file format. Then a silly idea was formed, instead of having a set of instructions for people to follow why not write a program to automate the process? This would be much easier for the user and we could use the feedback we were generating for TopDraw for the still unnamed Draw add on.

What's in a name?

The first versions of what was to become DrawWorks were called DrawExtra, indeed the DrawExtra name survived on the applications Info window until the late 90's. Compared to a modern DrawWorks they were very simple. There was no feedback loop between Draw and DrawWorks and most of the DrawExtra functions were implemented by simply sending key presses to Draw as though the user had pressed the keyboard themselves. At this point I also started work on a set of stand alone applications that would process a drawfile that was dropped onto them, and allowed the user to save the result. The set of finished applications was far from intuitive, but was quite useful. However what name should the whole set of utilities be called?

The "DrawWorks" suite from 1993

At this point we were still playing with TopDraw and one day Kevin made the comment that he couldn't understand why Computer Concepts were bothering as "...draw works perfectly well." That was it, from now on the hotch potch of utilities was going to be called DrawWorks. Rather amusingly a few days later a new beta of TopDraw was delivered, this time called ArtWorks. So it's war!

Development in 1992/1993

Work progressed on tidying all the applications up and on bug testing (testing to make sure there were enough bugs present). Some time in late 92 or early 1993 the entire package was assembled and started to be sold under the EFF banner with me being paid (theoretically) a royalty. However although sales went quite well the royalty payments didn't and later in the year I took the entire DrawWorks package back and arranged for it to be sold by a third party, SmartDTP based in Derbyshire. By this time it was decided that EFF would continue finishing the book that had started the entire exercise off. However disaster struck and all the copies of the Impression files (including the backups) proved to be corrupted. Going back through the logs it looked as though at some point a defective copy had replaced the master copy and our home made incremental backup program had wiped out all the good versions...grrr... This was a great shame as the book had taken a lot of work and would have sold very well. I still have one copy of the book on an old floppy and dug it out while writing this article. Although I can get to the graphics the text is mangled beyond repair.

The launch of iSV products

As I explained earlier sales of DrawWorks had transferred to SmartDTP and for a number of reasons we needed a brand name to sell DrawWorks under. At the time the buzzword in the software industry was "ISV", standing for an Independent Software Vendor, so in the absence of any better ideas I decided that since I was setting up an ISV that sold products the company should be called ISV Products. The lower case i was introduced for no better reason than lots of cars happened to have lower case letter i after their names to signify fuel injection. In mid 1994 EFF underwent a restructuring which meant that I was out on my arse with a mortgage to pay. Since I was already making a couple of hundred pounds a month selling software indirectly I decided to go it alone and iSV products became my full time job. I needed software and DrawWorks was one of the packages that I owned 100% and could do what I liked with.

As a historical note one of the other packages I owned was what would become the Font Designers Toolkit. I had offered this to EFF to be met with the immortal line from Edward "....yes...but we don't want to sell rubbish...". Oh well. Having worked at EFF it was a quick matter to design some simple fonts and produce a font pack. So at Acorn World 1994 iSV Products was launched with three packages, a pack of 100 fonts, Font Designers Toolkit and DrawWorks.

DrawWorks 1 toolbar from 1994

DrawWorks wasn't an instant hit, but sales increased month on month and it pretty soon became obvious that I was on to a winner. So more and more developement time was spent trying to improve what, with hindsight, was a fundamentally flawed package. Work continued on updating and improving the existing apps and in writing new ones, some of which never ever saw the light of day, including the aborted DrawTrix2. However as 1995 drew to a close it was clear that DrawWorks needed a complete overhaul. Some of the principles were sound (the extra toolbar, the functions provided by the new tools) but the implementation was very poor, so it was time to start work on DrawWorks 2.

DrawTrix2 (never seen before)

DrawWorks 2

This was a major re-write from the ground up. The first job was to work out how the app was going to work. I quickly decided that I wanted to add a toolbar to draw that followed the draw windows around and contained buttons not just for the draw tools, but also to interface with all the separate apps that processed draw files. As such I decided that I wanted a seemless link between DrawWorks and Draw, so that to the user it seemed like one program.

The key to this was two library routines. The first was the DrawWorks OLE library. This allowed DrawWorks to extract the current selection from the draw window, process it in some way and insert the result back replacing the original. The other library was designed to reproduce clicks on draws menus. Earlier versions of DrawWorks had only been able to access menu commands that had a keyboard shortcut. The new DrawWorks needed to be able to open all sorts of menus as though the user were clicking on the menu themselves. Both of these sound quite simple, but run into one major stumbling block, there is no way of properly doing either on RISC OS.

To cover just one problem, the OLE library needs to save out the current selection, but you don't want to see the draw save window flashing up. So what DrawWorks has to do is send a save selection key press to Draw and then see what happens. if no save window opens then nothing was selected and DrawWorks should go no further (although some versions do pop up a silly error message). However if a new window opens then this must be the save dialogue box, but we don't want to see this so we must first disable the VDU drivers to stop the window being drawn. Then with the VDU drivers disabled we need to drag this new window off screen and then re-enable the VDU drivers before RISC OS gets the hump. Having got this out of way DrawWorks then needs to type a special save path name into the dialogue box to save the file where it needs to be saved. Then DrawWorks presses return and DrawWorks waits for the file to appear.

So assuming the file appears DrawWorks can then load it, process it in some way, and save the result back. Then Draw has to be convinced that a user has just dropped this file into the right place in the Draw window. Depending on the version of DrawWorks some extra mangling needs to be done to delete the existing selection from the Draw window before the new file is inserted.

If all the above sounds nasty then you are right, it's very nasty, but it does work and it's the only way I could find to make DrawWorks work on everything from RISC OS 3.1 or above.

Acorn World 96

DrawWorks2 was launched at Acorn World 1996. Having undergone a couple of months of intensive bug testing it went wrong within an hour of the show opening with a rather nasty bug. All the stock sold at the show had to be patched afterwards as although the bug was a bit obscure I didn't really want users to lose their work.

As well as the new insides DrawWorks2 had all new icons as well as a redesigned toolbar.

DrawWorks2 (Yuk)

As you can see this new toolbar was too big and too ugly, as users were quick to point out. However before re-working the front end I decided to get the internals working faster and better, which resulted in a number of upgrades culminating in DrawWorks 2.33 (DrawWorks Turbo) released at Acorn World 97. Now I was happy enough with the insides I again turned my attention to the front end and was wondering what to do with it when I started playing with a few Windows applications. One of these, and I forget the name, had two rows of tool icons, the ones shown on the bottom row being determined by which main button was pressed on the top row. This allowed the program to have lots of buttons without covering half the screen, which was a major DrawWorks2 failing. This was the solution and work started on a new DrawWorks called DrawWorks Designer. This and the later versions of DrawWorks that were developed from it will be covered in the next issue.

The Software Directory

I have dug through my old backups and have found versions of DrawWorks from each year from 1993 to 1996 and have put them in the software directory so that everyone can have a good chuckle at how awful they are. In some cases I have fixed a few old bugs and in the case of DrawWorks2 I have had to re-assemble a copy from various different backups due to floppy disc failure (hence the 1997 copyright date).