Darren, another question,
There are some inputs on pins 30,31,32 (called A13, A12, A11) that
correspond to P45, P44, P43 on the HD6301.

Port 4 of the HD6301 is hooked up to pins 73.36,35,32,32,30,29,28 for
P40-P47.

I'll go look at the code, but these 3 inputs are configurable.   I wonder
what they do?

Steve





On Sun, Jan 28, 2024 at 8:21 AM Stephen Adolph <twospru...@gmail.com> wrote:

> Thanks Darren.
>
> Now that we have the real tpdd firmware I wonder what we can do with it.
> Some of those variables look tempting, like side and # of tracks.
>
> Another question.. it looks like was there a second unpopulated serial
> port on the drive?  Anything in the code on that?
> P7 is unpopulated and not in the schematic, but it is there.
>
> Steve
>
>
>
>
>
>
> On Sunday, January 28, 2024, Darren Clark <biggran...@gmail.com> wrote:
>
>> Spent some time digging through the source of the TPDD2 firmware, adding
>> comments, labels, and variable names.
>>
>> It's documented (as far as I got so far) here:
>> https://github.com/BiggRanger/Tandy_PDD/blob/master/PDD2.ASM
>>
>> Doesn't look like any hidden commands exist in the firmware. This is the
>> list from the command table at 0xFFB9:
>>
>> code    0xF230 Command_FMT00_CreateDirectory
>> code    0xF4D0            Command_FMT01_FileOpen
>> code    0xF495            Command_FMT02_FileClose
>> code    0xF69D            Command_FMT03_FileRead
>> code    0xF63D            Command_FMT04_File_Write
>> code    0xF425            Command_FMT05_FileDelete
>> code    0xF212            Command_FMT06_DiskFormat
>> code    0xF6F3            Command_FMT07_DriveStatus
>> code    0xF137            Command_FMT_Invalid
>> code    0xF75F            Command_FMT23_DriveVersionInfo
>> code    0xF746            Command_FMT0C_DriveCondition
>> code    0xF365            Command_FMT0D_FileNameChange
>> code    0xF801            Command_FMT30_SectorModeReadWrite
>> code    0xF76B            Command_FMT31_DriveMemorySet
>> code    0xF78E            Command_FMT32_DriveMemoryGet
>> code    0xF757            Command_FMT33_SystemVersionInfo
>> code    0xF7DC            Command_FMT34_ExecuteProgram
>>
>> Some other interesting tables are at 0xFF67 and 0xFF6D
>>
>> [FF67]    [80         ]    [    ] Table_SysInfo:    DB    0x80    ;Hard
>> sector data port address MSB
>> [FF68]    [13         ]    [    ]        DB    0x13    ;Hard sector data
>> port address LSB
>> [FF69]    [05         ]    [    ]        DB    0x05    ;Buffer size MSB
>> [FF6A]    [00         ]    [    ]        DB    0x00    ;Buffer size LSB
>> [FF6B]    [10         ]    [    ]        DB    0x10    ;CPU type. 0x10 =
>> HD6301
>> [FF6C]    [E1         ]    [    ]        DB    0xE1    ;Model code
>>
>> [FF6D]    [41         ]    [A   ]    Table_Version:    DB 0x41    ;System
>> Version Number MSB
>> [FF6E]    [10         ]    [    ]        DB    0x10    ;System Version
>> Number LSB
>> [FF6F]    [01         ]    [    ]        DB    0x01    ;Number of sides
>> [FF70]    [00         ]    [    ]        DB    0x00    ;Number of tracks
>> MSB
>> [FF71]    [50         ]    [P   ]        DB    0x50    ;Number of tracks
>> LSB
>> [FF72]    [05         ]    [    ]        DB    0x05    ;Sector length MSB
>> [FF73]    [00         ]    [    ]        DB    0x00    ;Sector length LSB
>> [FF74]    [02         ]    [    ]        DB    0x02    ;Sectors per track
>> [FF75]    [00         ]    [    ]        DB    0x00 ;Directory Entries MSB
>> [FF76]    [28         ]    [(   ]        DB    0x28 ;Directory Entries LSB
>> [FF77]    [00         ]    [    ]        DB    0x00    ;Max files
>> [FF78]    [E1         ]    [    ]        DB    0xE1    ;Model code
>>
>> There is also a BAUD rate table at 0xFF85, I see logic for reading the
>> dip switch setting from the CPLD at the program initialization. 2 switches
>> for the BAUD rate and the other 2 for some other mode settings. Just a
>> w.a.g. it almost looks like the programming on the CPLD could be the same
>> on the TPPD2 as the TPPD1. It might be possible to set 9600 and 38400 BAUD,
>> just guessing though as I don't have any TPDD2 hardware to play with.
>>
>> Overall an amazing amount of work went into this firmware. From what I
>> can see, it's all hand coded and has a lot of space saving optimizations in
>> it. Out of 4K of available space, there is only 15 bytes of unused space,
>> and the author put his name into it (with one byte filled with a 0xFF):
>>
>> [FFDF]    [***********]    [    ] DB    '(C) M.FUTAMURA',0xFF    ;Author
>>
>>
>>
>> Darren Clark
>>
>>
>>
>>
>>
>>

Reply via email to