PDA

View Full Version : Altair 88-SIO(C) to Model 33 Teletype



Moonferret
August 19th, 2018, 03:34 PM
Hi Folks!

I'm currently trying to connect a model 33 Teletype up to my Altair with a 88-SIO C card however, I'm a little bit confused as to how to wire it up. The connections on the Teletype are...

+ Transmit
- Transmit
+ Receive
- Receive

Pretty simple. The SIO-C pinout on the other hand...

SROT
SRIN
SRSI
SBIN
SBOT
STSO
GND
+5V

From what I understand, the the SBIN line is the output and SRSI is the input. Do I connect the + lines from the Teletype to these and the + lines to ground?

Anybody have a wiring diagram that might help for this setup?

Cheers,
Dave

billdeg
August 20th, 2018, 06:13 AM
Dave,

They're reverse perspective. From the Altair perspective, whatever those pinouts translate to it should be:

-Transmit Data --> Teletype's Terminal Strip 6
- Received Data --> terminal strip 3
+ transmitted data --> TS 7
+ received data -->TS 4

Please advise if I am wrong, I *believe* this is correct, but I'd like a 2nd to confirm as I don't have an Altair with this card attached to my TTY at the moment.

The SWTPC 6800 manual sort of compares the SWTPC 6800 to the Altair set up, in effect showing you how to set up the Altair. The SWTPC is not the same as the Altair. I remember discovering this. Also the Processor Technologies 3P+S manual compares that card with the Altair SIO I believe. That might help. If you're really stuck I can check.
b

Moonferret
August 20th, 2018, 06:25 AM
Hi Bill,

Thanks for the reply. I'm ok with the Teletype side of things. It's the connections on the 88-SIO-C that I'm confused with. Eg, what pin on the 88-SIO-C do I wire the -Transmit Data to?

I've a diagram for using an 88-2SIO board which I understand but I've not been able to translate this wiring to the 88-SIO-C.

In fact, I've found surprisingly little on wiring up the 88-SIO-x cards. I'm guessing the later 88-2SIO was more popular.

Cheers,
Dave

jhalbrecht
August 20th, 2018, 06:27 AM
Hi Folks!

Anybody have a wiring diagram that might help for this setup?

Cheers,
Dave

I hooked up my ASR33 with Martin's 88-2SIOJP Perhaps you can correlate his documentation with the Altair doc. Check out these two pages



88-2SIOJP (https://wiki.theretrowagon.com/wiki/88-2SIOJP)
20ma current loop to RS-232 conversion (https://wiki.theretrowagon.com/wiki/20ma_current_loop_to_RS-232_conversion)

deramp5113
August 20th, 2018, 07:13 AM
Is your SIO a Rev 0 or Rev 1 board? If Rev 0, does it have the mods to make the control register look like a Rev 1 board? (virtually all boards do). The original version of the SIO boards required a hardware handshake for each byte sent and received like a parallel port. The teletype does not do this, and frankly, I've never know of a serial device that used a hardware handshake for each byte, so the mod to eliminate the handshake is the norm.

This mod is documented as the "MODIFICATION FOR INTERNAL HARDWARE INTERRUPT." See http://deramp.com/downloads/altair/hardware/sio_serial_interface/88-SIO%20Rev%200%20&%201.pdf for more information.

For a Rev 0 board (even with the mod described above):

STSO to TTY Transmit Data + (TS pin 7)
Gnd to TTY Transmit Data - (TS pin 6)

+5v to TTY Receive Data + (TS pin 4)
SRSI to TTY Receive Data - (TS pin 3)

The receive circuit on the Rev 0 board only puts 5v across the teletype distributor, which due to the relatively high resistance of the carbon wiper, is not enough potential for reliable operation. In the Rev 1 board (and in the 88-2SIO), MITS went to 30v (+/-15v) on the receive circuit to improve reliability.

For a Rev 1 board :

STSO to TTY Transmitted Data + (TS pin 7)
Gnd to TTY Transmitted Data - (TS pin 6)

The Two pins of SRSI to TTY Receive Data + (TS pin 4), and - (TS pin 3)
Polarity doesn't really matter, but if you have OCD like me, then connect the SRSI pin that
goes to R5 to Receive Data + and connect the SRSI pin that goes to R8 to Receive Data -
Mike

Moonferret
August 20th, 2018, 03:54 PM
Thanks Mike, that was exactly what I was after. I was mainly going from the manual which doesn't mention that there are two SRSI pin's. It was only after reading your post and having a close look at the board, it became obvious.

I've wired it all up and it is kind of working. I'm currently loading BASIC 1.0 into the machine via an 88-SIO-A (RS232) from a laptop. The SIO-A is set to use ports 2 & 3 and the SIO-C is on the default ports 0 & 1. When I run BASIC, I only get some random characters on the Teletype. Pressing a key will just print the wrong character (So BASIC is at least echoing data) The SIO-C is configured to 110 Baud, 8N2.

I believe the Teletype was originally used on a PDP 8/e and might have been set to 7bit with even parity. Looking at the Teletype schematics, I think I can change this to Level 8, Mark or Level 8 Space

Cheers,
Dave

PS. Both SIO boards are Rev 1

billdeg
August 20th, 2018, 04:43 PM
Thanks Mike, that was exactly what I was after. I was mainly going from the manual which doesn't mention that there are two SRSI pin's. It was only after reading your post and having a close look at the board, it became obvious.

I've wired it all up and it is kind of working. I'm currently loading BASIC 1.0 into the machine via an 88-SIO-A (RS232) from a laptop. The SIO-A is set to use ports 2 & 3 and the SIO-C is on the default ports 0 & 1. When I run BASIC, I only get some random characters on the Teletype. Pressing a key will just print the wrong character (So BASIC is at least echoing data) The SIO-C is configured to 110 Baud, 8N2.

I believe the Teletype was originally used on a PDP 8/e and might have been set to 7bit with even parity. Looking at the Teletype schematics, I think I can change this to Level 8, Mark or Level 8 Space



ports matter. I thought port 20 was required. But you should see nothing if you're using the wrong port. you have to work systematically hrough everything.

The teletype is always the same bits and parity. 8n2,
If it was used in a pdp8 it may have a reader run relay but that will not effect anything at this point.
http://www.vintagecomputer.net/teletype101.cfm
After you load BASIC using 8n2, you may have to change the 7n2 or 7n1 to actually use it on the teletype. The baud and settings to load could very much be different to actually run the program.

THere could also be a cross in the reader line to cause chars to be garbled. The teletype could be wired incorrectly, a million things.

b

deramp5113
August 20th, 2018, 07:17 PM
Where did you find the BASIC 1.0 image and the loader you're using? Note that the original, unpatched version of BASIC 1.0 expects the unmodified SIO rev 0 board at I/O address 0. If you loaded this version of BASIC 1.0, then you're probably running into communication errors because the software is looking at the wrong bits (and polarity) in the SIO control register when checking for the receive data available flag and the transmit register empty flag.

Since the modified rev 0 boards and rev 1 boards are much more common, I posted a patched version of BASIC 1.0 for these versions of the boards at http://deramp.com/downloads/altair/software/papertape_cassette/ (see the "BASIC Version 1-0.xxx" files).

I could not find a BASIC 1.0 manual with the official MITS loader listing, so I created a loader (also for the modified rev 0 and rev 1 SIO boards) at http://deramp.com/downloads/altair/software/papertape_cassette/SIO%20Loaders/ (see the "LOAD10.xxx" files). Note that BASIC 1.0 was released before development of the bootstrap and "checksum loader" technique we're all more familiar with.

Mike

Moonferret
August 21st, 2018, 02:41 AM
ports matter. I thought port 20 was required. But you should see nothing if you're using the wrong port.

I could be wrong but I think that is the correct port for the later 2SIO board


The teletype is always the same bits and parity. 8n2,

I have the original manuals & schematics for the Teletype. There is mention of jumpers for changing the parity. I believe these changes are made on the keyboard connectors. Will grab a photo of the document later.

The BASIC is Mike's modified 1.0 with his loader. Initially, I tested the machine with just the SIO-A on port 0/1. Using Mike's loader, I was able to load & run BASIC via a laptop. I didn't have to change any communications settings from loading BASIC to running it. (All settings are done in hardware on the SIO cards unlike the later 2SIO)

I've managed to pick up an RS232 - Current Loop adapter. Will try that this evening to test the 88-SIO-C.

Cheers,
Dave

deramp5113
August 21st, 2018, 06:37 AM
It doesn't sound like parity is the issue. If the parity feature is present on an ASR33, it is keyboard parity only (i.e., Teletype to the computer). Your SIO-C board is configured for 8N2, so the UART on the SIO-C is not generating a parity error, and Altair BASIC ignores parity errors from the UART and strips the MSBit anyway. The 8th bit from the Altair to the Teletype is ignored by the Teletype print mechanism and only shows up as a paper tape is punched.

it is very common for a Teletype that needs a bit of work to print the wrong character for each character received. Is this a known working Teletype that functions properly today with a different computer?

Mike

Moonferret
August 21st, 2018, 06:47 AM
Is this a known working Teletype that functions properly today with a different computer?

Yes, I've had the Teletype working with a KIM-1 a couple of months ago. I'm going to try out the CL->RS232 adapter on the Teletype later so hopefully that will rule that one out.

Cheers,
Dave

deramp5113
August 21st, 2018, 08:11 AM
In that case, it sounds like time to drag out a scope and verify the baud rate clock and the shape/timing of transmit and receive data from/to the SIO-C.

You can also poke around with software to look for possible bus interface problems (i.e., getting some garbage when reading or writing the SIO-C board). For example, single step an SIO echo program like http://deramp.com/downloads/altair/software/utilities/other/SIOECHO.PRN.

Single step the echo program on the front panel until the code is clearly staying in the status poll loop at addresses 0-5. Then press a key on the Teletype and resume single step to see what comes in from the SIO-C board. For the original 8800, look at the data on the LEDs during the final INP cycle of the IN 01 instruction at address 6. For the 8800b, you'll have to look at the data LEDs during the final OUT cycle of the OUT instruction at address 8 (8800b).

Compare the value received to what you typed. Sometimes a single bit error or two will jump out at you. This could be a bad bus driver on the SIO-C. The 8T97's MITS used frequently degrade or fail. Replace with a 74LS367. Garbage could also be caused by a bad chip in the buffer enable logic for the bus driver.

If the value received is correct, then the data written to the SIO-C might be corrupted by the receive buffer between the Altair bus and the UART on the SIO-C.

Finally, of course, garbage could be caused by problems at the serial bit transfer level in which case checking the baud rate clocks and the shape of the waveforms with a scope will probably be required.


Mike

Moonferret
August 21st, 2018, 01:37 PM
Ok, A little progress I think. Teletype all checks out and I think I've narrowed the problem down to the SIO-C. I've tried the simple echo program. Runs ok, detects a character on the status port but then reading the data port always returns 00h.

I'm going to check out the address decoding first.

Moonferret
August 25th, 2018, 06:54 AM
I've not found the problem with the SIO-C yet but I decided to configure a SSM IO-4 to act as a SIO board and that seems to work fine. Have managed to get BASIC 1.0 to load from paper tape :)

Cheers,
Dave