Backups [was Re: Is tape dead?]

tony duell ard at
Sun Sep 20 14:43:03 CDT 2015

> It is possible to create an executable file that identifies the OS that it
> is running on and does a conditional jump to different code, assuming that
> the processor uses the same instruction set.

In some cases it should be possible to write a machine code program that executes
on 2 processors with wildly different instruciton sets.

One way that spring to mind (assuming instructions are a 1 or more bytes long) is to
find a byte which : 

Processor A interprets as a single byte instruction

Processor B interprets as a 16 bit load to a register, hence taking 2 bytes of operand

Start the program with that byte, then put a 2-byte relative branch instruction in 
Processor A machine code.

Processor A then reads the single byte instrucion and executes it (not doing a lot), then
runs the relative branch, goes off somewhere where there is pure Processor A code

Processor B reads the values for the relative branch into a register (which does no damage)
then contines with the 4th byte of the program, which is pure Processor B code.

There are plenty of other ways to do it, I suspect certainly in some cases the right instruction
bytes exist.

> It is even possible to make a disk that is readable as multiple disk
> formats, so long as each is expecting the DIRectory tracks to be in
> different places.

The OS-9 Level II distribution disk for the CoCo 3 is like that. It is mostly OS-9 format (which
assumes some kind of pointers, if not the root directory, in cylinder 0). One file, carefully postioned
at the middle track number, is actually a Color TRS-DOS directory and a couple of programs. Said
directory appears to contain a very large (non-contiguous) file covering most of the disk, along with 
a couple of utilities (a bootstrap for the older version disk controller ROM being the main one).

So when used under OS-9 it acts normally (directory where the OS expects to find it), just with
this apparently useless file. Ditto under Color TRS-DOS. 


More information about the cctalk mailing list