Backups [was Re: Is tape dead?]
ard at p850ug1.demon.co.uk
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
> 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