Using a second serial port with Kermit

186 views
Skip to first unread message

John Kennedy

unread,
Jul 4, 2019, 7:25:19 PM7/4/19
to Altair-Duino
OK, before I blow an entire evening on this, could someone tell me if it's possible?

At the moment, I use my Altair-Duino to connect to an external serial terminal connected to the serial port.

I would like to use a second serial port, and connect this to another RS232-based device (a fake modem thingy I'm working on).

Does the Altair-Duino support this?

I am connecting a USB->Serial adaptor to the USB port on the Arduino, but I've no idea if this will work.
If is does, what settings should I make in the setting menu (Stop, AUX 1 up)?
I have configured 2SIO Port 2 to the USB Native Port, which is where I've connected the USB->Serial adaptor.

On the software side, I have KERMIT running (build from HEX files, using MLOAD, build from .ASM files <- that took a while and I'm pretty smug I got it working)

So assuming that this is all possible, what would be the device that KERMIT would be set to use?

And then I could use CONNECT to talk to the external RS232 device.. so many "assumings" in there!

Tom Lake

unread,
Jul 4, 2019, 7:41:49 PM7/4/19
to Altair-Duino
Yes. Actually, you could use three serial ports. I have two hooked up. One using the Protect switch and one using the bluetooth connector. Both are usable in MITS Multuser BASIC. There are connections for a third serial port but I've never needed it so I didn't implement it.

Tom L

John Kennedy

unread,
Jul 4, 2019, 8:04:14 PM7/4/19
to Altair-Duino
Have you used Kermit to access these serial ports? Have you used a USB-Serial adaptor?

Tom Lake

unread,
Jul 4, 2019, 8:19:01 PM7/4/19
to Altair-Duino

John Kennedy

unread,
Jul 4, 2019, 8:24:42 PM7/4/19
to Altair-Duino
ok.. hmm. 

So now I'm thinking that maybe just plugging in a USB to RS232 adaptor isn't going to work, as it would require drivers that the Arduino simply doesn't have.

I will have to wire up one the MAXs (and I've at least one in my box of bits) to a suitable location. Ok. Thanks!

John Kennedy

unread,
Jul 4, 2019, 10:19:54 PM7/4/19
to Altair-Duino
My Altair-Arduino is now talking to my PC over the USB port.

Its connected to the dumb serial terminal (for testing) over the Serial port.

I've set up the ports like this:

Screen Shot 2019-07-04 at 7.13.32 PM.png

All speeds are set to 9600. 

When I start CP/M, and launch KERMIT, these are the ports it reports:

Screen Shot 2019-07-04 at 7.13.55 PM.png

My expectation is that if I select one of these ports, and use KERMIT to send a string (e.g. OUTPUT HELLO WORLD), then I would see that string appear on the dumb terminal - thus demonstrating that the serial port was recognized by CP/M, and working.


This doesn't happen.


So, I've got one or more of the following wrong:


* Setting up the initial Arduino-Altair settings, to use the 2SIO Port 2 as my external serial

* Hoping CP/M and Kermit would see this port and use it.


Are there any other CP/M apps that will use the serial ports? There's a very real chance that the Kermit I'm using KERM411.COM generic CP/M 2.2 simply doesn't see the right port.


Any pointers?

John Kennedy

unread,
Jul 4, 2019, 10:26:20 PM7/4/19
to Altair-Duino
"For this to work, the IOBYTE feature must be implemented in the BIOS. However, Altair CP/M 2.2 does not implement the IOBYTE. "

Is this the reason? Altair-Duino doesn't do whatever this IOBYTE thing is?

Tom Lake

unread,
Jul 4, 2019, 10:32:02 PM7/4/19
to Altair-Duino
IOBYTE is implemented in Mike Douglas' version of Altair CP/M. It runs on the AltairDuino as well.


Tom L

John Kennedy

unread,
Jul 4, 2019, 10:38:40 PM7/4/19
to Altair-Duino
Well, I guess that's the version of CP/M I am using. So either I'm using the wrong Kermit, or sending bytes to the terminal isn't doing what I expected. I'll tinker some more.

Frank P.

unread,
Jul 4, 2019, 10:43:12 PM7/4/19
to Altair-Duino
CP/M 2.2b is what appears to be the version on HDSK03.DSK. Is that what you're using John?

John Kennedy

unread,
Jul 4, 2019, 10:44:44 PM7/4/19
to Altair-Duino
Yes, but I'm now wondering about the version of Kermit, so I'm about to try altairClone's kermit disk.

Frank P.

unread,
Jul 4, 2019, 10:59:50 PM7/4/19
to Altair-Duino
John, I haven't tried Kermit, but I know this simple test works:
   Configure 2SIO port 2 to Serial (pin A6/A7), 9600 baud.
   Connect serial terminal or printer to AD second serial port at 9600 baud.
   Under CP/M, "STAT LST:=UL1:" followed by "PIP LST:=IOBYTE.TXT".
File should list on the second terminal.

John Kennedy

unread,
Jul 4, 2019, 11:12:24 PM7/4/19
to Altair-Duino
OK, I was using the other Serial pins for whatever reason - now it's working! Thanks Frank!

John Kennedy

unread,
Jul 4, 2019, 11:18:00 PM7/4/19
to Altair-Duino
These are the settings that work:

Screen Shot 2019-07-04 at 8.13.05 PM.png



Screen Shot 2019-07-04 at 8.14.08 PM.png

This display text on the dump terminal connected to the Altair-Duino's serial port. 


Kermit doesn't know about UL1; but is happy to use UR2:

When I write my CP/M, I can try both.

thank you!


John Kennedy

unread,
Jul 5, 2019, 9:28:32 PM7/5/19
to Altair-Duino
Well here's an historic post (for me anyway - it's my new DIY fake modem based on an Arduino UNO Wifi connecting to the internet, and sharing that good news over RS232 to the Altair-Duino, which is displaying the results in KERMIT running on CP/M.

modem2.jpg


Screen Shot 2019-07-05 at 6.23.18 PM.png


The dropped characters seem down to a wobbly serial cable. 


I'm pleased!



John Kennedy

unread,
Jul 5, 2019, 11:30:50 PM7/5/19
to Altair-Duino
Yup, I can read from the serial port..


;
; Code to read from the Reader serial input, and display a sequence of lights
;
; Enter this before calling: stat rdr:=ur2:
;

PRINT EQU 9
BDOS EQU 5
READ EQU 3

org 0100h

LXI D, STRING1
MVI C, PRINT
CALL BDOS

loop:

MVI C, READ
CALL BDOS
LXI H, BUFFER
MOV M,A
 
LXI D, BUFFER
MVI C, PRINT
CALL BDOS

jp loop ; to keep reading indefinitely, comment out to read one byte only

LXI D, STRING2
MVI C, PRINT
CALL BDOS
 
RET

STRING1: DB 'Starting', 10,13,'$'
STRING2: DB 'Ending',10,13,'$'
BUFFER: DB 0,0,0,0,0,0,0,0,10,13,'$'



Mark Lawler

unread,
May 17, 2021, 8:12:03 PM5/17/21
to Altair-Duino
Thanks!  This entire thread is pure gold!  Between learning that HDSK03 is the version of CP/M that supports the external ports and the 411 on how to quick test with STAT & PIP I've now verified I can interact back and forth with a second dumb terminal on my 2SIO port 2 serial port on a6/a7.  Yay!  Next steps...  Kermit...  Would also kill to get MITE working, but baby steps...  :D   Thanks all.
Reply all
Reply to author
Forward
0 new messages