jhalbrecht
Experienced Member
I'm repairing a Solid State Music (SSM) IO4 card. I'm configuring it as an Altair 88-2SIO which I've accomplished previously on another board. I verified my cables and TeraTerm config using Martin's 88-2SIOJ card first.
I cleaned up some questionable solder spots, checked voltages. The board I'm currently working on has a problem with a nibble. Any suggestions for further troubleshooting? I used a logic probe to verify S2 and S1 configuration switches.
Check out this table of what I typed and what is displayed along with the characters in binary and bad bits circled.
I've tried this with identical results on both serial ports.
This is the echo program I used for testing.
I cleaned up some questionable solder spots, checked voltages. The board I'm currently working on has a problem with a nibble. Any suggestions for further troubleshooting? I used a logic probe to verify S2 and S1 configuration switches.
Check out this table of what I typed and what is displayed along with the characters in binary and bad bits circled.
I've tried this with identical results on both serial ports.
This is the echo program I used for testing.
Code:
; 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
0005 = BDOS EQU 5 ; BDOS entry
0006 = RAWIO EQU 6
0009 = WRITESTR EQU 09h ; BDOS write string call. Terminate string with $
000D = CR EQU 0dh
000A = LF EQU 0ah
0010 = CTRLPORT EQU 20o
;CTRLPORT EQU 22o ; Second serial port 'B'
0011 = DATAPORT EQU CTRLPORT+1
; ORG 0 ; start at 0 to compare / verify against opcode listings.
0100 ORG 0100h ; cp/m tpa I'm running my test under cp/m.
0100 0E09 mvi C, WRITESTR ; setup for BDOS string print call
0102 112401 lxi D, MSG1
0105 CD0500 call BDOS
INIT:
0108 3E03 MVI A,3 ; disable interrupts for both ports A and B.
010A D310 OUT CTRLPORT
010C 3E11 MVI A,17
;mvi A, 021 ; Set port 1 to 8,2,n
010E D310 OUT CTRLPORT
LOOP:
0110 0E06 mvi c, RAWIO ; give operator a chance to cancel with ^c (NOT WORKING)
0112 1EFF mvi e, 0FFh
0114 CD0500 call bdos
0117 DB10 IN CTRLPORT
0119 0F RRC
011A D21001 JNC LOOP ; wait for input.
011D DB11 IN DATAPORT
011F D311 OUT DATAPORT
0121 C31001 JMP LOOP
0124 4563686F20MSG1: DB 'Echo from IO4 serial data Port.',CR,LF,'$'
0146 END