Quill for CP/M file format

I hadn’t realised until quite recently that there was a CP/M version of the Quill - the only place I’ve seen it is in the port of the Very Big Cave Adventure to the Amstrad PCW. I’ve studied the file format and added it to my UnQuill page at UnQuill

Unlike other Quill versions I’ve seen, this version has a separate database and interpreter. It doesn’t appear to have had a wide circulation – even Tim Gilberts, the original publisher of the Quill, wasn’t sure if it had existed.

I’ve also written a standalone tool (qdblist) to list the contents of the database files.

10 Likes

I wonder if the CP/M quill has any relation to the DOS version of Adventure Writer.

Is ST. BRIDES SCHOOL also mad with The Quill?
https://www.habisoft.com/pcwwiki/doku.php?id=en:companias:brides_school&s[]=quill

An according to the developer could it be the second generation: called PAW
https://web.archive.org/web/20060115102205/http://www.yeandle.plus.com/advent/history.html

There is an unPAWS that might become handy: GitHub - Utodev/unPAWs: Decompiles Professional Adventure Writer and The Quil databases

1 Like

The DOS version of Adventure Writer is similar in some respects (such as not having separate lists of conditions and actions) but in other respects looks closer to the original Spectrum Axx versions; there’s no automatic mapping from words to objects, for example. Its copyright date is 1983, which tallies with it being further back in the development process.

St Bride’s School was a software house; their first game, ‘The Secret of St Brides’ was written with the Quill and released on a number of platforms, but I’m not aware of a PCW version.

2 Likes

The Quill for CP/M, which John has discovered here powering the PCW port of Very Big Cave appears to be a stepping stone between the original versions of Quill and the successor system PAW. PAW itself had a CP/M version for Amstrad machines & BBC that was quite different to the version that appeared on the Spectrum and later formed the basis of SWAN and DAAD. The major difference between the early Quill and the later CP/M PAW was that you coded in a text file (rather than in an database editor on the target system). This source was then compiled before it could be run with the interpreter. We don’t yet know how this CP/M Quill worked but I suspect it may have been like the latter. There’s not yet any indication it was ever intended for use by the wider public or if any of the tools that were used to make Very Big Cave survived.

John’s analysis shows that this PCW version of the Quill had some more advanced features than standard Quill. Quite a few of them are in the QL version of the Quill but there are several that didn’t make an appearance elsewhere until the Spectrum & CP/M PAW.

(For clarity regarding other comments - the US version of the Quill, for machines such as Atari, DOS, Apple and C64, was based on the initial UK Quill releases; they had a license off Gilsoft to produce them for the US market. See my IFwiki article for more details: The Quill - IFWiki

This PCW code seems to be something that was potentially contracted by CRL/St. Brides perhaps just for this release… they had at one point also requested a “four word” version of the Quill for C64 that never seemed to have been used in a commercial product… We await to see if Tim finds anything in his Gilsoft archives about it. I will certainly need to update my article and my Quill version guide at any point. We don’t even have the PCW version of Very Big Cave listed on CASA… although there is plenty out there about it in the PCW magazines. The PCW version will run on other CP/M machines; such as under CP/M+ on the Amstrad CPC, btw.)

6 Likes

I’ve been doing a bit more work on this:

  • I’ve created tools (qdb2txt / txt2qdb) to convert QDB files to/from a text format (which I’ve called .QSE) which is based on the source format used by CP/M PAW.
  • qdblist, qdb2txt and txt2qdb are now included in the UnQuill distribution.
  • UnQuill 0.15.0 can now output in .QSE format.

I’ve also updated my notes on the .QDB format to fix a couple of places where I got things wrong.

This should make it reasonably straightforward to convert Quilled games from the Spectrum, CPC or C64 to CP/M Quill. Maybe to CP/M PAW too.

2 Likes

Very cool. Will have a look at the weekend. (Version 0.15.0 doesn’t yet seem to be uploaded on the site btw)

1 Like

Should be there now.

PS: I was wrong about the DOS version not having separate lists of conditions and actions. It does, just like original Quill in that aspect.

If you want to get the database out of a compiled DOS game, the rule seems to be that the EXE header and code segment are 1330h bytes long. Then the rest of the file is the data segment and the database is at offset 1548h in that segment. Shouldn’t be hard to knock up qdb2txt and listqdb equivalents for that variant of the format.

2 Likes

Just curious if anyone knows: Can The Quill for CP/M be used with a Commodore 128 in CP/M mode?

And can the games access the disk while playing or are the games just singe load games, like the C64 version of the Quill, so the entire game must be kept in memory while playing?

2 Likes

I know that games created with PAWS CP/M are playable on the 128… as I’ve played some of my own ones using it. The Quill CP/M code seems similarly quite portable… one of the major advantages of CP/M… I’ve played the PCW Big Cave on a Amstrad CPC under CP/M+. I guess it may be down to which version of CP/M the Quill requires but you can easily drag the files off the PCW disk using an emulator such as WinApe (or a disk file editor) and then pop them onto a suitable disk image to test on the C128. It’s been a while since I did anything for the C128. The only other thing that tends to be an issue is the clear screen code.

(PAW CP/M games all run in memory (rather than load content from disk; unless you’re using external routines/loading images) so I guess CP/M Quill, as an earlier iteration will be the same)

2 Likes

That’s very interesting, thanks!

The interpreter may need to be patched with the C128 ‘clear screen’ escape sequence if it isn’t ESC E ESC H, but other than that it should run correctly. It requires a Z80 processor but other than that doesn’t seem to demand much from the host operating system. I’ve had it running on CP/M 2, and it should even work on CP/M 1 if anyone’s got a copy to hand.

It loads the entire database into memory (at address 0F00h) with no paging or swapping.

2 Likes

I’ve now updated Unquill again, with tools that can dump DOS AdventureWriter executables, and (hopefully) compile a .qse script to an AdventureWriter executable (a copy of the original AdventureWriter editor executable is required).

I’m well aware that this is turning Unquill into something of a fractured mess, with some platforms handled by the original executable and some with separate do-one-thing tools. But at the moment it’s the best I can manage.

2 Likes

That is likely the case. Tim did a lot of contract / custom work for CRL. Just take the C64 Version of Jack the Ripper as an example. This is a PAWs game on the C64. How? Well it runs in a PAWs interpreter for Commodore 64. There also is a tool existing that allowed to alter a Spectrum PAWs game database and prepared it to run on C64 using said PAWs interpreter.

Back in 2018/2019 Tim told me that he had found the above in his archives and actually wanted to share it with me but we recovered the English DAAD version instead.

Reminds me that I need to ask him about this again. I think it would be quite cool having this publicly accessible

EDIT: I do have the source of a Commodore 16 Quill interpreter which Tim shared with me. That one actually doesn’t have a Quill application, just the interpreter. Tim says they did stuff like that a lot. So it could totally be that there never was a Quill for CP/M. Only an internal converter tool for the database, for example from Spectrum to CP/M and the interpreter

1 Like

Yes. I made an early version of Hibernated run on Commodore 128.[CSDb] - Hibernated 1: This Place is Death by XmikeX (2018)

1 Like

You can change the clear screen code with the PAWS for CP/M config utility. I did that with Hibernated back in the day to make it run properly on C128. Only thing I don’t remember is to which value it has to be set.

1 Like

Ah, that’s very cool. We’ve been missing a way of looking into the DOS version’s game database so that’s a very useful facility to add to our arsenal alongside the other formats already supported by unQuill and the Atari Adventure writer disassembly tool which is part of The Quill Adventure Guides site.

There are several “Quilled” DOS games for the PC, such as those by Philip Bourne, that are unique to the platform so having a way to poke around in them is great.

2 Likes

Yeah, the [currently unarchived but exists on Tim’s Gilsoft disks] Commodore 64 version of St. Brides’ Silverwolf ran on that engine (or a slightly later version) and the procedure was that the author would write the game in Spectrum PAWs, use the C64 version of The Illustrator for the graphics, and then Tim would convert those to run on “pi”, the PAWS/Illustrator engine. When I was researching Silverwolf, Tim kindly shared the document he sent St. Brides after doing this process which can be read here: http://8bitag.com/info/dogboy/silverwolf-c64.txt

2 Likes

It’s amazing that he kept all this stuff. Very impressive what they did back in the day.