W1S

This is a method used only by Sherston Software for all their titles and relies on a file called W1S.

The original discs are all part formatted and have tracks 2 or 9 formatted with a CRC Data Error. This is enough to prevent *BACKUP and most disc cloning software from working.

Not all programs needed by the title are shown in the disc catalogue; they are hidden on the disc surface in unused tracks. Using *COPY *.* will be defeated by this method.

This method also allows more files than the 31 DFS maximum to be stored on the disc. It also works on ADFS titles.

The file, W1S, serves two purposes;

  1. it checks for the CRC error and crashes if it is not found, needing a Ctrl-Break to restart the computer; this also clears memory,

  2. it loads 'hidden' programs directly from the disc surface.

W1S loads and executes from &480 in memory. It loads a default program, usually a menu, to the correct PAGE and then this is run.

W1S is also used to load other programs as needed by the suite of programs. Its use in this way is *RUN W1S LOAD1. This command is instead of PAGE=&1800:CHAIN"LOAD1", for example.

The list of programs loaded by W1S is given at the end of the code disassembly. This list includes some dummy names.

At about mid-program W1S places OLD|MRUN|M into the keyboard buffer so that the loaded program runs.

DEFEATING
This turned out to be simplicity itself. The word RUN, as mentioned above, was changed to LI., which is an abbreviation for LIST. When W1S runs it now lists the program rather than running it.

W1S also issued a VDU21 command and set FX3 to prevent output to screen and printer. Ctrl-F undid the VDU21 command, allowing output to screen and blind typing *FX3,0 restored the output to screen as well. (Not all variants of W1S needed the *FX3,0. This seems to be a later addition.)

The program can now be saved to disc, using the name from the W1S code. PAGE can also be determined.

Each component BASIC program was examined to find calls to W1S and replaced this with setting PAGE to the right value and CHAINing the correct program.

Removing the need for W1S had a side effect of allowing most titles to run on ADFS, NFS and RAMFS. This was because W1S called disc drive 0 each time it ran.

 

2018 - 2019 flaxcottage.com