SSM IO4 as Mits 88-2SIO

I’ve got a few Altair 8800 computers. One a 8800 kit that my father never completed before moving on to Imsai and other systems – most of my experience back in the day started with his Imsai, a California Computer Systems and CompuPro equipment that I purchased. The other Altair system is a 8800b Persi era that I purchased off of eBay. Neither of these have a serial I/O card. I want a serial card so I can experiment with my newly acquired FDC+ Enhanced Floppy Disk Controller for the Altair 8800 from Mike Douglas. I’ll be able to emulate a disk loading cp/m from a serial port. The board will also be helpful when I attempt to create a floppy boot disk for this fairly complete Altair 8800b.

I do have dad’s Solid State Music IO4 and along with help from this great article by Theo Karagiris  “Configuring SSMIO4 for use in an Altair 8800” I got the IO4 working first try. Well first try after replacing a capacitor that lost it’s smoke with a substantially loud BANG! I had a radial cap on hand where the original used an axial but there was plenty of room to lay the radial flat enough not to get hung up on adjacent cards.

To test the board I disassembled the octal listing from the article, apparently originally from the Mits SIO documentation, modified it to run under cp/m 2.2 with an ORG 0h100 and placed it in my Imsai running Josh Bensadon’ JAIR. To verify I had disassembled it correctly I put the octal opcodes in excel and converted them to hexadecimal then compared the output of the assembly listing, sioecho.prn, to my hex opcodes from the assembly listing. I wonder if there is an option to force asm to produce octal listings?

; 5/8/2015 JHA SIOECHO.ASM 
; Testing the SSM IO4 for Mits 88-sio compatibility. 
; Should echo characters on serial A port. Or B port see CTLPORT/DATAPORT EQUates.
; disassembled from Mits SIO code and recompiled to run under cp/m
; works on my S100 running JAIR cp/m 2.2

CTRLPORT    EQU    20o    
;CTRLPORT    EQU    22o    ; Second serial port 'B'
DATAPORT    EQU    CTRLPORT+1

        ;ORG    0        ; start at 0 to compare / verify against opcode listings.
        ORG    0100h    ; cp/m tpa I'm running my test under cp/m.
INIT:        MVI    A,3    ; disable interrupts for both ports A and B.
        OUT    CTRLPORT
        MVI    A,17
        ;mvi    A, 021    ; Set port 1 to 8,2,n
        OUT    CTRLPORT
LOOP:        IN    CTRLPORT
        RRC
        JNC    LOOP    ; wait for input.
        IN    DATAPORT
        OUT    DATAPORT
        JMP    LOOP
        END
; I wonder how many times I'll forget to leave a blank line
; so asm doesn't croak?



After disassembling I found someone else had too. Check it out Geoff Harrisson’ Solivant.com site was worth a bit of exploring to me.

Here’s a photo of the screen with the echo working.

SioEchoTestScreen

May 18, 2015; Day 2

Well perhaps I shouldn’t have been so exuberant! After removing the board, snapping an image of it and tweeting the above screen image I have yet to be able to get it to successfully perform the echo test again. Running survey.com I don’t see any of the four IO4 ports showing up. I reseated all the ICs check out how dirty this one was even after abrading some built up crud off while pulling it out of the socket.

SSM IO4 Dirry Legs

Now the ports show up in survey.com but still no echo. Found a bent leg that must have been for port B. Also one of the opto-isolators was in backwards. It’s amazing it worked that first time, and pretty frustrating that I can’t get it going again after easily another four hours. Tick tock… found a transistor cold soldered, continuity checked the cable I made – looks good. Still negative function. Might break out the oscilloscope and / or the logic analyzer next.

May 19, 2015; day 3

Found a discussion with some troubleshooting techniques from Mike Douglas. OK first some TMI in the form of a self deprecating confession; “I’m a bonehead!” First tip was check the regulated voltage. Spent yesterday checking so many things other than rechecking the power, remember I had it working yesterday. We all remember about “when we assume” right?

There was no –16vdc from the motherboard to SSM IO4 card. The extender I was using had two blow traces. A ground and the -16vdc. Plugged the card in directly as I’m running out of extenders to let some more smoke out, kinda bummed no BANG for the smoke. This time from C12 across the –16vdc input to U14, an LM320-12, for the –12vdc.

It’s working again. Tested both ports.

I hope I remember this lesson about my errant assumptions next time I’m troubleshooting. Something stops working don’t assume and check the power supply!

I’ll order up a set of axial capacitors and replace them all, I only have radial versions on hand. And I think I’ll build one of the N8VEM S-100 extender boards too. It uses PPTC resettable fuses has power indicator and a logic probe. My old Bob Mullen extender has trouble on + / – rails from previous shorts.

Leave a Reply

Your email address will not be published. Required fields are marked *