Thursday, June 30, 2022

Synertek MBC020 Serial Snags

Serial Cable

I spent a few minutes continuity testing the P3 card edge connector for the serial port so that I could build a serial cable for the MBC020. I was hopeful that this was just a 1:1 pinout for a card edge to DB-25 RS-232 IDC connector, like one I built for my Motorola MC68000 Educational Computer Board. It is almost exactly right except the send (TxD) and receive (RxD) data lines are swapped. I thought maybe it was wired as a DCE device, but in fact, only the data lines are switched. As annoying as this was, it wasn't too difficult to put a twist in part of the ribbon cable, swapping wires 3 and 5:

Card Edge to DB25 serial cable

Note the twist in the green, yellow, and orange wires near the DB25 connector on the bottom right of the picture.

Serial Output

With the serial cable constructed and a null modem adapter attached, it was time to power it up! I installed the card in my EXORbus "MULTI-PLANE" backplane, and booted it up. Unfortunately, no matter what baud rate I tried, I was only receiving data that looked like a baud rate mismatch. I double checked the MBC020 driver source code in mame to see if it provided any hints, and sure enough, it apparently set 9600 baud, 7 data bits with 2 start bits. This effectively eliminates a high bit 7, as you would also need in the Apple II monitor. However, after apparently configuring GNU screen, it still did not work. Examining a hex dump of the output showed: 00000000: 00d3 c5d2 d6cf cdcf cea0 d6c5 d2a0 b4ae ................ 00000010: b08d 8ac3 cfd0 d9d2 c9c7 c8d4 a0ca d5cc ................ 00000020: adb1 b9b8 b3a0 d4cf d2d1 d5c5 a0d3 d9d3 ................ 00000030: d4c5 cdd3 a0c9 cec3 ae8d 8abe c800 ..............

This appeared to be the data I wanted, but bit 7 was still set high, making the text unreadable. After a quick check of my screen command line parameters, I realized that screen expects the serial options to be comma separated. Duh! The command:
screen -L /dev/cu.usbserial 9600,cs7,cstopb
did the trick perfectly and allowed me to finally interact with the real SERVOMON monitor:
SERVOMON VER 4.0 COPYRIGHT JUL-1983 TORQUE SYSTEMS INC. >V 0000-000F 0000 BF BF 9F BF BF BF 9F BF,B8 0008 9F AF BF BF BF BF BF BF,80 0B80 >F 00,0000-00F >V 0000-000F 0000 00 00 00 00 00 00 00 00,00 0008 00 00 00 00 00 00 00 00,00 0000 >J 1 MPC DIGITAL DRIVE REV 4.0 JUL-1983. AXES FOUND ON-LINE : 4 Ok AUTO ER 00 >G SERVOMON VER 4.0 COPYRIGHT JUL-1983 TORQUE SYSTEMS INC. >

Success! Next I will test out composite video output! Special thanks to "andysa" on the 6502.org Forum for sharing his notes on this board with me.

No comments:

Post a Comment