Showing posts with label MBC020. Show all posts
Showing posts with label MBC020. Show all posts

Wednesday, October 4, 2023

RetroChallenge Day 4: MBC020 video and troubleshooting

A while back, I tested out the video output on my new-to-me SYNERTEK MBC020 ExorBus SBC, and noticed problems with the upper half of the video. I wanted to make sure it was not my LCD monitor that was at issue so, I went out and bought a 9" black and white CRT security monitor to use for further testing. Unfortunately, when I recently went to connect it to the monitor, I could not get the MBC020 to boot anymore!

This is a good excuse to share some troubleshooting tips for these vintage SBCs.

With a multimeter or voltage tester:

  1. Check the power rail voltage- this may seem obvious, but is an important first step, especially since these boards usually do not have any power indicators.
  2. Verify that RTS or DTR goes low on the ACIA (or high on the serial connector)- This is a very simple check and you don't need an oscilloscope. If RTS or DTR goes low at the ACIA on boot, it indicates that the microprocessor is able to access ROM (to read the firmware) and the ACIA (to configure the ACIA), and is probably running OK. If it does go low but there is no activity on the serial connection then you may have a cable configuration problem, a terminal settings misconfiguration, or a problem with the RS232 driver ICs.
  3. Verify that RESET goes high-

With an oscilloscope or logic analyzer:

  1. Test clock signal to processor.
  2. Test chip select signals to RAM, I/O chips
  3. Test data bus and buffers

With this procedure I was able to pretty quickly determine that I had no clock signal to the CPU. After I swapped a few ICs in the circuit around the oscillator with no improvement it became apparent that the crystal was likely at fault. This problem seemed consistent with my nearly 2-year-old son knocking the board off of the dining room table a few months ago. I ordered the crystal and that brings us to now, the first week of RetroChallenge.


Replacing the crystal was pretty straight-forward, despite the large amount of solder on the board in that area. I did have to use a small drill bit to completely clean out one of the vias, but no big deal. I really dreaded turning the board on for the first time though. If the problew was something other than the crystal, I would be very stumped and my RC2023/10 would get stalled right out of the gate.

Fortunately, everything came right back to life! The CRT monitor initially showed the same skewed image as the LCD, but after some heavy adjustment to the vertical hold, I ended up with a nice clear display. Although everything seemed to be working, I did notice some spurious "E" characters popping up after a command is completed. I am not sure if this is normal, or some new fault in the board, but I do not recall it happening before.

With everyting up and running, of course I had to mess with video connector and sudddenly I lost video and the terminal stopped responding. I tracked the problem down to a blown 5V fuse on the backplane. I must have short-circuited something. Fortunately, I still have a few hundred fuses left over from when I first built the backplane, so a new fuse and little soldering got it working again. I think I would definitely make the fuses easier to replace if I make another run of these backplanes.

Sunday, July 24, 2022

SYNERTEK MBC020 Video Output and More RAM

After figuring out the location of the video output on the MBC020's P4 connector (pin 20), I noticed that the video and ground signals are also connected to some large through-hole pads nearby. These may be solder points for a video coax cable, or some sort of connector. thumbnail

I hoped to avoid soldering directly onto the board, so I first tried some "9mm Through-Hole Loop Test Points". These fit nicely in the holes in the board, but I struggled to get them connected to a coax video cable. Withe the added weight of a cable, they pulled out too easily and were generally awkward to solder and secure.

The obvious choice for this was a PCB mount RCA/phono jack for the composite video. Unfortunately, there was just no clearance on the front of the board since an IC and the board ejector interferred with the placement. Only after my failure with the test points did I realize that, after bending up one of the ground legs, there was plenty of space on the back of the board:

PCB mount RCA jack, bent and original RCA jack mounted on back of MBC020

With the RCA/phono jack inserted, I booted it up. The video displays "SE" until the serial connection is made, and then is shows the exact same information as the terminal. Unfortunately, some testing uncovered that the top 1/4-1/2 of the screen has some apparent tearing and sync issues which improve progressively down the screen. The bottom 1/2 of the screen is very clear 80 column output. I am not sure why this is happening, but I would assume it is a damaged component on the board. Moving around the video jack to get a better connection did not improve the video quality. Since this monitor has proven to be compatible with many vintage video devices, if there is a compatibility problem I think it must be the board that is way out of spec.

distorted video output from MBC020

So, video is almost working.

Next, I tried adding the unmodified Mikul 6218 board with extra RAM installed in place of the usual ROMs. Although I did not test the I/O, the RAM addition worked great! Using SERVOMON commands, I was able to edit memory areas that were previously unassigned. This confirms my belief that the Mikul 6218 is a really nice and reasonably priced memory board for a variety of EXORbus systems, especially because the memory sockets are very configurable for a variety of RAM and ROM chips.

Next time I will document the memory map further and check out the keyboard connection to try to make it a complete terminal!

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.

Wednesday, June 15, 2022

Synertek MBC020

I recently acquired a Synertek MBC020 EXORbus single board computer, notably sporting a 6512 microprocessor. The 6512 is software compatible with the famous MOS 6502 processor used in the Apple ][. This is one step closer to the whole point of this blog! It may at first seem odd that this 6512 board uses the EXORbus card edge which was most commonly associated with Motorola MC6800, MC6802, and MC6809 processors. However, the 6500 family was always intended to be MC6800 bus compatible. In fact, Rockwell even produced an AIM 65 Expansion Motherboard that would allow their AIM 65 computer (which like the Synertek SYM-1, was a derivitive of the famous MOS KIM-1 6502 trainer) to use EXORbus card modules. Synertek also made a clone of the MC6800 based Motorola MicroModule MM01, named the MBC01A2, and various EXORbus RAM and I/O cards.

Any of these ExorBus systems I have seen are either trainers or PLCs (programmable logic controllers) for industrial applications. They appear in knitting machines, industrial ovens, industrial food processing machines, and silicon wafer exposure and inspection stations. Fittingly, the Synertek MBC020 is usually seen configured for use in an "EG&G Torque Systems" servo controller. This is the same configuration for the card I purchased:

The Synertek MBC020 MOS 6512 based Single Board Computer

In a strange stroke of luck, this board happens to be available in the MAME emulator (formerly:"Multiple Arcade Machine Emulator"). I'm not sure why an industrial controller would be included in a emulator focused on arcade and console video games. Anyway, the ROMs available online appear to be the same as my own, so it is nice that I can see what I should be expecting when booting the board. Once I compiled MAME and added the ROMs, I was greeted with:

After a bit of trying out different key combinations, I discovered that the commands are predictably very similar to the SYM-1's SUPERMON monitor. Here is an incomplete summary:

SERVOMON COMMANDS: [] is optional parameter, $ is a hex digit (0-9,A-F)
Command and FormatDescription
M [[$$,]$$$$[-$$$$]]MEM: Memory examine, modify, [search,] hex data editor starting at address [-end]
R REG: Examine and modify user registers PC,S,F,A,X,Y
G [$$$$]GO: Restore all user registers [except PC=address, S=FD] and resume execution.
V [$$$$[-$$$$]]VER: View/Verify display data and checkums [starting at address [-to end]]
D [$$$$]DEP: Deposit hex data to memory [starting address]
C [$$,]$$$$[-$$$$]CALC: Calculate two's complement [-displacement], with [,offset]
B $$$$,$$$$-$$$$BMOV: Move data to address, from start -to end
J $JUMP: Restore user registers, except PC=listed entry in jump table, S=FD, and jump to it
J 1 MPC DIGITAL DRIVE REV 4.0 JUL-1983.
AXES FOUND ONLINE : 1
Ok
SD $$$$-$$$$SDBL: Store double byte from address -to address
F $$,$$$$-$$$$FILL: Fill data, from memory address -to address
S1 [$$$$]Save ASCII data to memory [starting address].

Next post: let's try out the real board!