This evening I was contemplating the idea of adding a “disk certification” option in IECHost, as per Inside Commodore DOS – program on page 91, which uses direct access programming, including job execution.
I was admiring how beautifully error checking is done within the BASIC listing there when I was struck again by something I noticed quite some time ago when I was first testing the IECHost firmware. Long story short, the following INPUT# command hangs if device 8 is not present on the IEC bus:
I hadn’t really tracked down the cause of the hanging so far, so I decided to look into it.
I found out that the Commodore Kernal code that sends the secondary address after TALK (at $EDC7) does not check ST before requesting a bus turnaround. Within the bus turnaround process a few things happen, one of which is that the IEC master waits for the CLOCK line to be pulled low: that never happens in absence of the device for which the TALK request is sent on the bus.
I’ve now changed the IECHost firmware (which was designed using the Commodore Kernal code as reference) so that a bus turnaround is not initiated if the secondary address after TALK fails to be transmitted: that’s the case when the addressed device is not on the bus.
Another way to address the issue is to not send the secondary address after TALK if sending TALK itself failed.
Happy days 🙂
As the IECHost client might not be provided with some low level features required to e.g. set all 5 bytes of the disk ID, I decided to also update my “D64 Browser” application in order to add a number of useful features to prepare custom D64 files.
D64 Browser: Edit menu
In fact, working on D64 files using my libd64fs library is way easier for low level stuff than using the direct access paradigm (block read, RAM read, RAM write, block write, buffer pointer, etc.).
However, the direct access stuff is quite exciting to use and the IECHost firmware is capable to handle direct access commands fully. You never know, I might actually progress both routes 🙂
Motivated by the manufacturing of a few more DC2N5-LC PCBs, I decided to also submit an order for IECHost PCBs.
It would be great to get access to a 3D printer to print ad-hoc cases for these new PCBs 🙂
IECHost client running on Windows 10
TAPClean Front End version 0.37 has just been published! Binaries are available for Windows and Linux on my Software page. For user convenience these binaries also provide the latest released version of TAPClean, 0.34.
An updated version of the user manual is provided too, covering the latest change, i.e. the ability to generate IDX records using the tape split tool 🙂
This morning I sent the PCB design for DC2N5-LC to manufacturing. Including shipping and currency conversion they ended up being about 5 GBP each, which is more than what I’d have liked to pay, although there was a premium to pay due to the gold finish I requested.
I guess inflation and weakness of the Pound Sterling make manufacturing more expensive but the latter might balance out for buyers paying in Euros or USD.
DC2N5-LC from the tape port edge
The displays I ordered for a second batch of DC2N5-LC devices arrived today. I was able to test them all successfully in my DC2N5-LC development board: compatible with my firmware and all healthy 🙂
DC2N5 TXT viewer
In the next few days I will order some extra components and send the PCB design to manufacturing. Since the first batch I managed to correct a PCB errata, therefore the DIY experience should be quite enjoyable if you know how to read a silkscreen and you have experience soldering SMD components.