From: "Mike Davis"
<ipscone(a)msdsite.com>
Let me start off by saying "I hate RS-232". Anyway, now that that's
out of the way, I am having a problem with an RS-232 interface on an
IMSAI SIO board.
I've been debugging a North Star drive and I was having problems with
it booting (DOS 2) in my IMSAI. I would get the "*" prompt but OS
would not recognize my Soroc terminal input. At first I thought it
might be buggy code on my DOS floppy.
Anyway, to make a long story short, I have multiple of everything and
have ruled out everything but something to do with my RS-232
configuration (I guess). I have 2 SIO board and both behave the same
way.
I'm documenting what I have here, in case someone sees something
wrong that I've overlooked. BTW, this was previously working without
any different configuration or hardware, with the exception of the RS-
232 cable from the Soroc to the IMSAI. This is a brand new cable
that was working just a few weeks ago so I'm having a hard time
believing there is anything wrong with this cable. I have only one,
if you can believe that. I'm going to get another this weekend, if I
have not figured this problem out by then.
Anyway...
I'm using Port A (on the SIO) and have configured the A3 Jumper to
have
TD Pin 1 to Pin 15 RD
RD Pin 2 to Pin 16 TD
RTS Pin 4 to Pin 12 CTS
CTS Pin 5 to Pin 13 RTS
DTR Pin 7 to Pin 9 DSR
DSR Pin 8 to Pin 10 DTR
By the way, the SIO manual shows DTR-DSR as through straight throuh
in stead of crossover, as shown above. Seems that it should be
crossed over like the others. In any case, I have tried both ways
but it doesn't seem to make any difference.
I'm using a straight through DB-25 cable from my Soroc to my IMSAI.
I'm using the following CIN and COUT routines.
2900 DB03 CIN IN STAT
2902 E602 ANI IBIT
2904 CA0029 JZ CIN
2907 DB02 IN DATA
2909 E67F ANI 7FH
290B C9 RET
290C DB03 COUT IN STAT
290E E601 ANI OBIT
2910 CA0C29 JZ COUT
2913 78 MOV A,B
2914 D302 OUT DATA
2915 C9 RET
Areas I'm wondering about.
1) Is the A3 header correct for the IMSAI as the computer end and the
Soroc as the terminal. 3 pairs crossed over. It does write to the
Terminal properly and when I press the Break Key, I get an echo from
the IMSAI of *?, which seems normal.
I have tested the input routine, which is part of the DOS input
routines, and was working previously, by modifying it to display the
status to the programmed output on the IMSAI with this code.
0000 DB03 CIN IN STAT
0002 DBFF OUT FFH (programmed output port)
0004 E602 ANI IBIT
0006 CA0000 JZ CIN
0009 DB02 IN DATA
290B E67F ANI 7FH
290D C30000 JMP CIN
Hi
There may already be a status in the port, that maybe
why you see no change. You need to put a dummy read first.
This will cause the drop of alternate characters when
working right but this is for debug. Try:
CIN IN DATA
CIN1 IN STAT
OUT FFH
ANI IBIT
JZ CIN1
IN DATA
ANI 7FH
JMP CIN
If you don't see any change, try some of the other ports,
near by for STAT, like 0 , 1 or 2.
If that fails, you could be having a problem with the
serial lines someplace. You need to check the levels
on the serial chip inputs.
Dwight
Seems that this should show whatever is read in the status port for
Port A. But when executed, the status never changes after I tap any
key.
My system is behaving as if it just can't receive any data from the
terminal. It's driving me buggy as this is a relatively simple
problem. Like I said, I have multiple SIO and they all behave the
same. I even tried another terminal and get the same results. I
have also even tried different ribbon cable from the SIO to the RS-
232 connector.
Anyone see something bonehead that I overlooked?
Thanks,