Re: 6809 / 6702 puzzle

From: Rhialto <rhialto_at_falu.nl>
Date: Wed, 11 Apr 2012 23:05:05 +0200
Message-ID: <20120411210505.GA24250@falu.nl>
On Wed 11 Apr 2012 at 12:14:10 -0500, Jim Brain wrote:
> Before folks forget, can a document of inputs that the SW sends and
> expected responses from the unit be stored somewhere?

This is the table of values that are returned by the 6702. Some values
are dummies, since the dongle check routine doesn't actually use them.
All values stored in the 6702 register are ignored. So the real
functionality hasn't been discovered yet! Also, this sequence isn't the
only one that is accepted, there are more that satisfy the check.

Dave, do you want to publish your C version of the dongle check? It may
be interesting and maybe someone can work out what it is *really* doing.

/*
 * Emulate the 6702 dongle by returning a sequence of fixed values.
 * We even ignore the values that are written to it!
 * Idea and recovery of values by Dave Roberts.
 *
 * Code references to Editor 1.1, bank 0. The dongle check routine
 * starts at $9852.
 */
static BYTE dongle_values [ 29 ] = { 	// Indexed as 0 to 28.
    /* Used once at the start of the subroutine.        */
    0x04, /* 9860: LDA  [<$06,S] ; [ 0]                 */

    /* Iteration 1 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0x91, /* 987F: EORB [<$06,S] ; [ 2]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0x3C, /* 988A: LDA  [<$06,S] ; [ 4]                 */

    /* Iteration 2 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0xAC, /* 987F: EORB [<$06,S] ; [ 6]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0xC7, /* 988A: LDA  [<$06,S] ; [ 8]                 */

    /* Iteration 3 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0xF0, /* 987F: EORB [<$06,S] ; [10]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0xE3, /* 988A: LDA  [<$06,S] ; [12]                 */

    /* Iteration 4 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0x36, /* 987F: EORB [<$06,S] ; [14]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0x5A, /* 988A: LDA  [<$06,S] ; [16]                 */

    /* Iteration 5 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0xBB, /* 987F: EORB [<$06,S] ; [18]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0xC3, /* 988A: LDA  [<$06,S] ; [20]                 */

    /* Iteration 6 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0x6A, /* 987F: EORB [<$06,S] ; [22]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0x75, /* 988A: LDA  [<$06,S] ; [24]                 */

    /* Iteration 7 of the 'outer' loop.                 */
    0xFF, /* 987C: ASL  [<$06,S] ; Can ignore!          */
    0xA3, /* 987F: EORB [<$06,S] ; [26]                 */
    0xFF, /* 9887: ASL  [<$06,S] ; Can ignore!          */
    0x3E  /* 988A: LDA  [<$06,S] ; [28]                 */
};

> Jim
-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- There's no point being grown-up if you 
\X/ rhialto/at/xs4all.nl    -- can't be childish sometimes. -The 4th Doctor

       Message was sent through the cbm-hackers mailing list
Received on 2012-04-11 22:00:05

Archive generated by hypermail 2.2.0.