So I had some time to play with one of the TSE boards I had built up, and use it with an HP 712/100 PA-RISC system this past week. In doing so I found several bugs, and have made some changes to the project in response. Some of the changes that have been asked for relate to the missing flexbus defines in recent versions of the teensyduino SDK. The firmware repo now has a flexbus.h uploaded with those missing defines. When I get a chance to merge some of the changes between the various trees I have locally, I'll update the repo with the bugs I found last week fixed.
In the handling of SCSI messages, ABORT (6) wasn't handled correctly. Apparently the correct response is to drop everything and release the bus with no messages back to the initiator. And then there were bugs in the handling of reads & writes and conversion between different sector sizes. On classic mac these were not as easy to see, but on PA-RISC it was obvious that too much data was being transferred for the read requests.
As far as multi-target support, it has been made even more obvious to me that selecting one target immediately after deselecting another target when both are handled by the TSE is problematic. This is most evident when a host is scanning for drives at boot and it only finds the first one. I'm not sure yet what I can do there, but if you experience this, try leaving gaps of 1 or 2 IDs between your targets handled by the TSE.
I had planned on a 53c94 port, but as I found previously, that would only support one target ID per chip, and finding examples of target firmware for the 53c94 has been difficult. I do have a board that uses the 53c94 in a target role with a Z80 cpu, which I can run an emulator in circuit or a logic probe and dump all the I/O targeting the 53c94.
So even though this project has been quite dead for the past couple years, I haven't given up on it yet.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
You might look into the wd33c93 then, it supports sync. Only catch is the 40 pin version dosn't have parity but it really handles the bulk of command and selection handling.
Are you sure? yes | no