[Coco] DS-69B Reverse Engineering
Arthur Flexser
flexser at fiu.edu
Sat Aug 5 19:57:31 EDT 2006
My guess (unless you've ruled this out) is that it's code that doesn't actually
get executed, existing in a gap between assembled code segments and containing
junk left over from previous assemblies.
Art
On Fri, 4 Aug 2006, Joel Ewy wrote:
> L. Curtis Boyle wrote:
> > On Fri, 04 Aug 2006 09:18:08 -0600, Joel Ewy <jcewy at swbell.net> wrote:
> >
> >> ...
> >> 2. Does anybody have any bright ideas about what the following code
> >> snippet
> >> could possibly be doing? It may be corrupt. It may be
> >> intentionally obfuscated.
> >> Maybe there's some other place in the code that I haven't noticed
> >> yet that
> >> modifies this section so that it makes sense. I don't think that's
> >> likely, but it
> >> certainly doesn't make much sense to me as it is.
> >> The code segment is part of the routine that reads brightness values
> >> of a pixel.
> >> I think we are doing successive approximations, at least partially
> >> in software,
> >> which is why it takes about 4 hours to digitize a 256x256x6-bit
> >> image with this
> >> software, unless you use the high-speed POKE.
> >> ...
> >> 7F9D 8607 8: LDA #7
> >> 7F9F B7FF71 STA $FF71 -> PIA register on the DS-69B
> >> 7FA2 10AC9DDEF4 CMPY ( 57076,PC) Mysterious section begins
> >> We haven't been using Y, and
> >> don't seem to later
> >> 7FA7 12 NOP
> >> 7FA8 12 NOP
> >> 7FA9 12 NOP
> >> 7FAA 1012 ???? The disassembler chokes on this, and
> >> it does
> >> appear to be an illegal opcode
> >> (on the 6809).
> >> 7FAC E661 LDB 1,S Now we start making sense again
> >> 7FAE B6FF22 LDA $FF22 I think we're enabling an IRQ
> >> here
> >> 7FB1 B6FF70 LDA $FF70 Ditto in the DS-69's PIA
> >> 7FB4 13 SYNC Here we wait for the IRQ. This
> >> makes sense
> >> 7FB5 E484 ANDB X+0
> >> 7FB7 ...
> >> 3. If anyone is interested I can email the rest of the code and
> >> comments and
> >> scans of my provisional schematics.
> >> JCE
> >>
> >
> > 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.
>
> JCE
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>
More information about the Coco
mailing list