While looking for a way to test the SCELBI current loop interface, I discovered that an early Apple II peripheral card, the Serial Interface Card, supported current loop. This card was designed to interface to printers and supported half duplex baud rates up to 19200 baud. Since I only need 2400 baud for SCELBI and the SCELBI only supports half duplex, I thought that I could use it for testing the SCELBI TTY interface card.
I found that I had a serial interface card in my stash and tried it out, using the RS232 mode to see if it would work. However I found that it would only output 1 byte and then hang. I had a friend who scanned the manual for me and sent a PDF to me. Looking over the manual at first, I couldn’t determine what was wrong. However dumping the firmware revealed that the firmware was different than that listed in the manual. After some web searches, I determined that there was a second version of the firmware that supported RTS/ACK software handshaking and that this second version did not work with some printers.
Since I couldn’t find a copy of the second version’s manual, this started me off on an reverse engineering investigation. This was a more difficult process than I first anticipated. Along the way I learned about some clever 6502 programming tricks, including a way to implement a primative 6502 skip instruction. I also have come up with a partly annotated listing that may be of interest to Apple II peripheral interface designers. This doc details some of the tricks involved in initializing Apple II interface cards. As the input and output functions are not of much interest, they are not well documented.
Apple Serial Interface Firmware
By the way, with the second version of firmware, there is no way to disable the RTS/ACK software handshake, so I’m going to have to find or make a copy of the first version firmware to test my SCELBI current loop interface.
Pingback: SCELBI TTY and Apple II Serial Card Update « Mike's Hobby Blog