[Coco] DS-69B Reverse Engineering
jcewy at swbell.net
Sat Aug 5 01:43:46 EDT 2006
> L. Curtis Boyle wrote:
>> Is there self modifying code later on, that fills in the NOP's? Or
>> have you disassemlbed from an incorrect offset, and are looking at a
>> data table?
>> --L. Curtis Boyle
> I'm fairly sure this doesn't get modified anywhere else though it's
> possible I'm missing something. I'm almost positive it's disassembled
> from the correct offset. There's quite a bit before and after this that
> is perfectly sensible code. It's just this little section that lapses
> into apparent lunacy. It would be far too much of a coincidence if all
> the rest of it just happens to look sensible even though it's
> disassembled wrong.
> I've remembered that in addition to the RANDACB.BAS for the DS-69B there
> is a RANDAC.BAS for the older DS-69 model. I should do a hex dump of
> that and see if it has corresponding wackiness.
OK, according to my hex dump, RANDAC.BAS also has the mystery code
in it: 12 12 12 10 12. Both files can't be corrupted the same way.
This isn't bit rot. Either there is an intentional illegal opcode in
here, or the code gets modified sometime before it runs. I wouldn't
swear to it, but I think that 10 12 codes to an instruction on the
6309. So these programs might really misbehave on an upgraded CoCo.
But a stock 6809 should just treat the unrecognized opcode as a NOP,
no? I guess I'd better start plowing through the code looking for
something that might modify the mystery section. Anybody interested in
looking at the whole program?
More information about the Coco