I think an Arduino (328P) would have enough horsepower to emulate the TPPD protocol and read/write to a SD card. Could probably even burn the utilities disk image to the 328P and start it up in "utilities" mode to download the disk manager to the 100 or 200.


On 3/20/21 6:58 AM, Stephen Adolph wrote:
this is quite interesting, and nice detective work.
It would seem like an interesting use case here could be to modify this firmware to make it target a standard 1.44MB floppy disk drive. Maybe it would seem a bit backwards because SD cards are more mainstream, but still interesting to think about.

I see you have the disassembly in place.

On Fri, Mar 19, 2021 at 8:36 PM Darren Clark <biggran...@gmail.com <mailto:biggran...@gmail.com>> wrote:

    There are 2 memory modes on that processor, Mode0 which uses the
    internal RAM and ROM (which is how the PDD is being used), and
    Mode 1 which addresses external memory and masks the internal ROM.
    The modes are selected at startup and can't be switched until the
    chip is reset.

    I used an internal function of the PDD ROM to place a small ASM
    program into RAM and then execute it, which then read the ROM and
    output the contents to the UART of the chip. I do not know if this
    attack vector is present on the PDD2. Judging by the fact that the
    PDD1 uses almost 100% of the ROM (only 6 unused bytes out of 4K),
    that function may have been removed to allow for new functions on
    the PDD2.

    Attack vector described here:

    
https://github.com/BiggRanger/Tandy_PDD/blob/master/ROM_DUMPER/PDD1_Dump.INFO

    https://github.com/BiggRanger/Tandy_PDD/blob/master/ROM_DUMPER/PDD1_Dump.ASM


    For the PDD2 I would use probably a timing or glitch attack with
    external memory (read only); make the address 0x0100 to 0xE000 all
    NOPs with the code to initialize the UART, read the ROM, and send
    it to the UART between 0xE001 and 0xEFFF. With a bunch of timing
    and reset glitches it's possible to get the processor to start
    executing code somewhere between 0x0100 and 0xE000 and fly through
    all the NOPs until it hits the payload. In the release notes it
    states that location 0xFFFE and 0xFFFF (which store the reset
    vector) may get read externally in Mode0. I would also hard code
    these address with a reset vector to point to 0xE001, that way if
    a glitch forced a reset in Mode0 but accidentally read the
    external memory it would jump to the payload and run it.

    But for all this to work I would need to remove the processor from
    the board and put it onto a new PCB so I could have control over
    the clock, power, mode, and reset pins, and connect it to a
    suitable external memory. That is why I'm looking for a
    not-working PDD2 with a working processor.


    Darren Clark



    On 3/19/21 7:18 PM, Stephen Adolph wrote:
    I wonder if there is a way to boot that processor off of external
    memory, such that the firmware could be extracted...

    On Friday, March 19, 2021, Darren Clark <biggran...@gmail.com
    <mailto:biggran...@gmail.com>> wrote:

        That is awesome to see! I was hoping it would talk a little
        more about the firmware running on the HD63A01, but the
        information on the pinout of the gate array chip is
        interesting and matches up pretty well with what I reverse
        engineered from the firmware.

        I'll have to revisit my reverse engineering of the firmware
        on the TPDD and see if there is anything to update with this
        new information. Looks like the returned error codes may be
        something to add.

        Here is a link to the firmware I pulled and decoded from the
        PDD1:
        https://github.com/BiggRanger/Tandy_PDD/blob/master/PDD1.ASM

        And the whole project: https://github.com/BiggRanger/Tandy_PDD

        Maybe if someone has a bad TPDD2 or 2 I can try to get the
        firmware off of that too.

        Darren Clark





        On 3/18/21 9:59 PM, Brian K. White wrote:

            On 3/18/21 8:31 PM, Joshua O'Keefe wrote:

                On Mar 18, 2021, at 5:13 PM, Stephen Adolph
                <twospru...@gmail.com <mailto:twospru...@gmail.com>
                <mailto:twospru...@gmail.com
                <mailto:twospru...@gmail.com>>> wrote:

                    so I did it brute-force.
                    
https://bitchin100.com/wiki/index.php?title=TPDD_Service_Manual
                    
<https://bitchin100.com/wiki/index.php?title=TPDD_Service_Manual>


                In the interest of preservation and putting our eggs
                in multiple baskets, I have mirrored this file to my
                S3 bucket


            Similarly I put it in archive.org <http://archive.org>

Reply via email to