My website is moving!
GeoCities will close on 26th October 2009, so I will be moving this page to my new website (when I have thoroughly checked and edited it):
Please update your links and bookmarks ASAP, because there will be no redirection after 26th October.
I have written a Java system called SPECSAISIE which enables me to perform surgery on SNA and TAP files, and various other gubbins (some functions relate to Spectrum emulation in general, and there are even some that are specific to Manic Miner and Jet Set Willy!). SPECSAISIE gives me a pretty powerful Spectrum toolkit, especially when combined with other great utilities such as SPConv, SCR2GIF, BAS2TAP and SnapList!
7th July 2003: I have reissued SPECSAISIE version 1.2 with links to my new website in the README.TXT.
Java itself is freely downloadable, and I have extended my instructions on how to install the Java Development Kit so that you can compile and run SPECSAISIE.
SPECSAISIE currently supports the following functions:
General Spectrum functions
- PrintHeaders: Print the header of each Spectrum file on a tape.
- Split: Split a TAP file into separate TAP files for each Spectrum file on the tape (the resulting TAP files can be recombined using simple file-concatenation).
- TAPtoSNA: Convert a TAP file to an SNA file by loading the Spectrum files on the tape into memory.
- SNAtoTAP: Convert an SNA file to a TAP file by saving Spectrum files onto tape from memory.
- TAPtoBinary: Convert a (singleton) TAP file to a raw binary by stripping off its header. For example, to create an SCR screenshot from a SCREEN$ file.
- SNAtoBinary: Save a raw binary from a range of addresses in an SNA file.
- BinaryToTAP: Convert a raw binary file to a TAP file.
- BinaryToSNA: Patch a raw binary file onto an SNA file.
- FixChecksum: Fix any checksum-errors in a TAP file. So you could edit a TAP file in a text-editor, for example, and then run it through this to correct the checksums.
- Peek: Print the byte-value(s) stored in an address or a range of addresses.
- Poke: Write a byte-value into a specified address.
- Compare: Compare two SNA files byte-by-byte, reporting addresses for which the two memories have different values, and what the value is for the second memory.
- Saisie: Generate a BASIC program for typing data from emulator files into a real Spectrum. The program includes a DATA line for each eight bytes, and a checksum for each line.
- CSaisie: Combines Compare and Saisie to generate a listing of changes from one file to another, calling Saisie for clusters of many differences.
- Count: Generate hash totals for an SNA file for quick checking, i.e. add up all the byte values between specified intervals.
- ASCII: Print an address-range from an SNA file as ASCII text.
Manic Miner/Jet Set Willy functions
- RoomsMM: Given an SNA file of a Manic Miner game, print the 20 room-titles.
- RoomsJSW: Given an SNA file of a Jet Set Willy game, print the 64 room-titles.
- RoomMM: Given an SNA file of a Manic Miner game, generate an ASCII preview of a given room.
- RoomJSW: Given an SNA file of a Jet Set Willy game, generate an ASCII preview of a given room.
- BGB_JSW: Detect occurrences of the block-graphics bug in a JSW game (an experimental implementation).
15th September 2007: I've been working on SPECSAISIE 1.3 over the last four years, but progress has been slow, and it's hardly in a quiescent state for a gamma-release. If you really can't wait, I have uploaded Beta 5 of SPECSAISIE 1.3 to the Files section of the Manic Miner and Jet Set Willy Yahoo! Group (you have to join the Group first; please do not spread it outside the Group).
New functionality in SPECSAISIE 1.3 already includes:
- a function to list the items in a JSW game requiring collection (Beta 2 adds functions to handle JSW128 and JSW64 games in a rudimentary manner);
- a function to look up connections to a given JSW room;
- functions MirrorMM and MirrorJSW to laterally invert a given MM/JSW game (Beta 4 adds extra mirroring operations to MirrorJSW);
- functions to convert a MM game to JSW;
- functions to look up guardian-classes in a JSW game for a given range of positions;
- ASCII-text representations of 8x8 and 16x16 graphics;
- a prototype Z80-disassembler (new as of Beta 2);
- bidirectional comparison;
- checksums for BASIC programs;
- support for hexadecimal command-line arguments and hexadecimal output (covers more functions as of Beta 4).
Furthermore in SPECSAISIE 1.3, most functions can take as input either an SNA file or a TAP file (in SPECSAISIE 1.2, most functions only accept SNA files).
Email me