Saga20110214

=Lone Survivor and Beta Release= Right, it's time to do a quick beta release. The game for this is Lone Survivor which is a non-Mysterious Adventures Brian Howarth game, only released on the Commodore 16/Plus 4. Most of the time spent on this was in extracting the data file from the C16/+4 executable!

I did fix some bugs at this point. The most annoying one was fixing my logic with the flags; I'd initially tried to be memory efficient and use only 1 bit/flag for all 32 flags. After messing around with some minor annoying bugs, I decided to copy the original Brian Howarth BBC driver and just use a byte as they're stored in reserved memory where I have plenty of space. This reduced the size of the code for flags massively as I now only have to do:

lda flags,x rts

To read from them (and an sta for a set). So code size is down to &c53 bytes.

I fixed some more bugs, including the load/save bug, which required me to recreated the osfile block each time. I've probably not done this in the most efficient way, but it works for now!

I also found a problem in my compression routine: for counters, the argument of the condition can go over 255, Lone Survivor uses several counters that are set to 300. For now I'm just hacking this by setting them to 255, if this is going to be a problem I've got a work around, where I can set up a 16-bit argument if necessary, but I'm not going to change anything unless this is found to be a problem.

Current to do/bugs list is as follows:
 * flag 16 should be light out of fuel
 * 16 rooms flags?
 * time machine - dig doesn't quit after success!
 * time machine - break generator finishes game!
 * Golden Baton - No message if SALT is got when inventory is full
 * Unimplemented:
 * SCORE
 * Unused system messages
 * 13
 * 21
 * 24

Release
Beta release, including the .ssd file and the raw .dat file (for use in ScottFree or other interpreter):