• Please review our updated Terms and Rules here

Msi 6800

falter

Veteran Member
Joined
Jan 22, 2011
Messages
6,573
Location
Vancouver, BC
On a roll lately!

Got myself a (I think) fairly rare MSI 6800 unit in decent condition. I've been waiting to try it out with my restored SWTPC terminals (still would kill for an original SWTPC 6800, but they seem to be ultra stupid rare unobtanium right now). Anyway, after repairing a few things (frayed power cord, etc), I finally am able to fire it up, but I can't get it talking in a language the terminals understand. The SI-1 serial card has a baud rate dip switch. For testing purposes I've set that to 1200 and hooked it up to my PC terminal. There is a reaction onscreen -- if I hit keys it spits stuff back to me -- but just gibberish. Knowing the baud rate, I've tried different bit, stop bit, hardware control and so on settings but no dice thus far.. it just changes the gibberish produced.

I suppose it could be a RAM issue or something else going on with the computer... I just can't find any info via google other than an advertisement, so I wouldn't know how to reduce the system to a minimal config like we did with my Z80 to get started and see what's working. It has a lot of cards in it.

I'm wondering if I should be using a null modem cable too.. or just a straight serial..
 
Last edited:
Nullmodem or straight is quite easy to establish:

Check the voltages on the TX and RX pins, 2 and 3, of the serial port connectors on both the terminal and the MSI, if both pins 2 (or both pins 3) carry the same voltage you should use a nullmodem cable. You can use the ground as reference.
 
Could be a RAM thing, true.

What generates the baudrate for the UART? whatever that is could be skewed by a faulty component etc.

If you have access to the source code, or just an EPROM reader, you could dump the memory, and find out what the actual UART settings are.
If you know the UART port, finding that in ROM, and then deciphering the control word should be possible.
 
I know for sure I have a null modem cable.. just wondering if the typical computer-to-terminal setup used null modem or just direct serial.

There seems to be literally no documentation out there on this thing, so I'm kind of flying blind.

The EPROMs for the system say 'Weebug'
 
I tried a straight serial cable.. no difference really. Every key produces garbage.

Not sure there's a way to figure this out without documentation magically coming to light. There are three other dip switches after the baud rate and they have traces to them.. they could do just about anything.

In case anyone out there has an idea, there are several SS-30 cards:

MSI SI-1 serial
Newtech Model 68 Sound Card
'JPC TP-3' - has a Fairchild 6821P on it.
CLK 68-1 card (clock I assume for some purpose)
JPC PA-15 with Motorola 6820 IC on it going to female DB25

For the bigger SS50 boards we have:

CPU Board w/Weebug ROMs
3x 16k RAM boards
PERCOM Mini Disc Floppy board (LFD-100B) w/ MInidos V1.41 EPROM
 
Mystery solved.

20160520_192608.jpg

I hooked this thing up to my big PC -- tired of leaning over on my old Thinkpad and going through the steps with HyperTerminal to try different speeds, etc to get it working. Anyway, I hooked it up to my main PC running teraterm, which by default runs serial connections at 9600,8,1, no parity. And boom, there it was. Weebug. The dip switch on my serial card apparently has little or no effect. I had it set at 1200. If I lower the speed to 1200 on Teraterm it produces the same gibberish I was seeing elsewhere.

This screen was achieved with the Percom floppy card out. If put it in, it tries over and over to initialize a disk. I'm going to assume finding a floppy drive that would work with this card is somewhere on the order of impossible.. so I'm open to ideas on how I might 'fake it' or otherwise manipulate Weebug to load other 6800 software in its absence.

Note: I apologize for the upside down image. That is not my lousy photography, that is the forum software insisting on rotating it 180 degrees. No idea why.
 
Here's some pictures.

This is the front panel:

20160520_194439.jpg

A top view showing the massive caps (?) on the power supply:

20160520_194459.jpg

SS-50 cards and slots:

20160520_193915.jpg

'SS-30' cards and slots:

20160520_193925.jpg

CPU card:

20160520_194033.jpg

And floppy card:

20160520_194139.jpg
 
The dip switch on my serial card apparently has little or no effect. I had it set at 1200. If I lower the speed to 1200 on Teraterm it produces the same gibberish I was seeing elsewhere.
I assume the baud-rate is printed on the PCB? Sounds like some of the switches could be faulty. One may be stuck on, internally, so when you use other than that, you mix multiple freq's.
 
Yes.. it's printed on the PCB.. SW1 = 110, SW2 = 150 etc. But it's not working that way. I've determined SW2 gives me 110 for some reason now and then it slides up from there. I don't know if someone modded things maybe to get the higher 9600 speed..
 
Can you determine what generates the baudrate on the board? What UART is used?
There might be a dedicated chip near a crystal, or it might be discrete logic stuff, for the gen.

Some baudrate gens and UARTS just have a couple of pins that sets the baudrate prescaler.

Again, some switches could be stuck. If you have a multimeter, try opening all switches and measure resistance across them. They should of course measure open.
 
Unfortunately I don't know enough to know how the baud rate is being generated. All I know at the moment is the switches consistently produce the same, if incorrect, speeds. And continuity wise they seem good.

Something that is puzzling me though -- I've got the MSI down to the baud rate my SWTPC terminals need, have verified it working with the same bit and parity settings to my main PC.. but when I hook up to either terminal.. neither gets anything from it. Not even gibberish. However, if I hook the terminals up to each other, to the computer.. no problem.. they communicate perfectly.

I don't have a db25 male to db25 male null modem cable.. I have db 25 to db 9.. and plugging into the laptop or PC with the 9 pin, the MSI works just fine. When I connect to my terminals (for now), I'm having to use jumper wires. I had thought you needed to connect pin 1 (ground) and pin 2 and 3 for rx and tx on the db9 to the same pins on the female db25 of the terminal. I'm wondering if I'm getting something wrong there. I've tried reversing the wires in pin 2 and 3 just to make sure I didn't have tx/rx backwards. But yeah. I know the baudrate and all other settings are good, but no joy.
 
What handshaking are you using? If you have any kind of hardware handshaking, you'd also need to swap RTS to CTS, and DTR to DSR.
It could also be a voltage thing. I'll assume the RS232 is driven by MC1488 and MC1489's (either that or discrete transistors). If you can find the former, get the pinout for the MC1488 and check the +-12V supply. Might be that the modern PC can tolerate lower voltages better.

You could also check the TX line with an oscilloscope, if you have access to one.
 
Hmm.. you are correct, I think this MSI 6800 must have handshaking. Now I wonder if this will work with my older terminals. I have the following wires on my original CT1024 terminal:

Pin 1 - protective ground
Pin 2 - TX
Pin 3 - RX
Pin 7 - Signal ground
Pin 20 - DTR

Those are the only pins soldered in by the guy that built this thing, looking at the back of the terminal's DB25. There's no provision for CTS, etc.
 
If you don't have a DSR input for the DTR pin, there's no hardware handshaking. Similarly, an RTS without a CTS isn't handshaking. In other words, it does no good talking if there's no one to hear it--though my wife has made the same observation about me.:)

Of course, it's possible to use software handshaking (e.g. XON.XOFF) but that has to be coded into the I/O for both sides of the conversatin.

Understand that for something like a 6800, 9600 bps is a very high rate of speed. You can't even do 9600 on an IBM PC if it involves software scrolling (i.e. using the BIOS scroll routines) of the display.
 
So Chuck, is it possible I simply cannot use my ct1024 with this particular machine? Ie. That it requires handshaking, which my terminal doesn't sound like it supports? I'm wondering too why you'd have a DTR pin soldered in if it's effectively useless?
 
The SWTPC 6800 didn't support 9600 baud as far as I know. The SS-50 bus has pins for baud rate generators for 110, 150, 300, 600, and 1200 baud. The SS-50C variant, for the 6809, made the 150b generator bin switchable between 150 baud and 9600 baud (and the 600b pin could be switched for 4800 baud).
 
So Chuck, is it possible I simply cannot use my ct1024 with this particular machine? Ie. That it requires handshaking, which my terminal doesn't sound like it supports? I'm wondering too why you'd have a DTR pin soldered in if it's effectively useless?

The DTR pin is is pretty much standard for terminals (DTE), which generally is used to indicate to communication equipment (DCE) that there is a powered-up terminal present. Some modems, will not talk to a device not signaling DTR. DSR corresponds to the DTE signalling that it's present.

Here's a great tutorial on RS232 signalling.

There's no reason that the CT1024 can't talk to your MSI box--you may just have to slow things down a bit--2400 bps would be more appropriate for the time period.
 
The SWTPC 6800 didn't support 9600 baud as far as I know. The SS-50 bus has pins for baud rate generators for 110, 150, 300, 600, and 1200 baud. The SS-50C variant, for the 6809, made the 150b generator bin switchable between 150 baud and 9600 baud (and the 600b pin could be switched for 4800 baud).

That would be consistent with the jumpers on the serial card.. the max speed printed on the board is 1200. And yet.. it clearly does 9600 when switched to the 1200 setting.

This machine is a bit of an oddball. I cannot find any reference for 'Weebug 1.0'.. according to documentation it should have MSIBUG. It's quite possible this machine has been fiddled with to do things perhaps it wasn't designed originally to do. Although if the ss50 bus cannot actually do 9600baud I cannot explain how mine is doing it.
 
Back
Top