Serial comms update: Altair 8800 <--> IMSAI 8080 retro emulator kits

242 views
Skip to first unread message

Mark Lawler

unread,
May 20, 2021, 1:37:49 PM5/20/21
to Altair-Duino
I've made a ton of progress thanks to all of the info on both the website and the forums.  Here is where I stand at this point (some things work, one thing doesn't):

  1. I can connect Chris' Altair 8800 to David's IMSAI 8080 via a straight through serial cable (not a null modem cable as I would have guessed).  
    • I'm using the Altair 8800 Pro serial port and have that DB9 port set up as 2SIO Serial (pin A6/A7), 9600, 8N1, and I'm running the latest CP/M by Mike Douglas on HDSK03.DSK (which is patched for serial ports).  
    • On the IMSAI 8080 I'm using the RS232-2 DB9 (bottom), with all the appropriate jumpers for port 2, have the lastest CP/M vers 2.2 B01 for the IMSAI kit (which is patched for serial ports) and have ran the "submit porta" command at the CP/M prompt.

  2. I can use the Altair as a dumb terminal into the IMSAI by
    • then issuing "stat con:=uc1:" command at the IMSAI
    • go to the Altair and run IMP8 off of the IMP modem executive floppy
    • before breaking the connection and terminating IMP8 I issue the command "stat con:=tty:" to get things back to normal on the IMSAI.

  3. I can use the IMSAI as a dumb terminal into the Altair by
    • then issuing "stat con:=uc1:" command at the Altair
    • go to the IMSAI and run QT-IMSAI off of the comms floppy image
    • before breaking the connection and terminating QT-IMSAI I issue the command "stat con:=tty:" to get things back to normal on the Altair.

  4. I can use XMODEM to very reliably send files small and large from the Altair to the IMSAI (note I had to deviate from the /O settings the default cfg file said I should be using)
    • On the Altair xmodem.cfg is set to 
      • /MDirect I/O is configured for 88-2SIO Port B
      • /X2
      • /P 12 13 01 01 02     ;Port B
      • /O 12 03 15                ;8 data, 1 stop, no parity
    • On the IMSAI xmodem.cfg is set to
      • /MDirect I/O is configured for IMSAI SIO-2
      • /X2
      • /P 23 22 01 02 01     ;Port A
      • /O 12 03 15                ;Setting below doesn't work, try this.
      • ;/O 23 AA 40 rE 27      ;8 bits, no parity
    • On the Altair I type the command "xmodem <filename> /S" and on the IMSAI I type "xmodem <filename> /R" and Bob's your uncle...  Lots of happy + signs as the packets transfer successfully.
Now for where I'm stuck...  I cannot seem to send files from the IMSAI to the Altair.  I've also had the same problem using ExtraPuTTY from my Windows box with the IMSAI -- I can use PCGET from the IMSAI and xmodem from ExtraPutty to download files to the IMSAI, but using PCPUT from the IMSAI up to ExtraPuTTY has similar bad results...  

Anybody been able to transfer up from the IMSAI via Xmodem or ExtraPuTTY?  Suggestions on things to try?  Seems strange I can transfer down to it and receive files on it, but never up to send...  I must be doing something wrong someplace...

Thanks!
-Mark

Mark Lawler

unread,
May 20, 2021, 5:12:47 PM5/20/21
to Altair-Duino
And I can now SEND and RECIEVE files in both directions between the Altair and IMSAI via KERMIT running on both machines.  Yay!!!!  Would still like to get XMODEM working both ways though.  Digging into xmodem.cfg...  

Mark Lawler

unread,
May 20, 2021, 7:16:25 PM5/20/21
to Altair-Duino
Plot thickens...  I can send and receive TXT files both directions in KERMIT between Altair and IMSAI.  I can only send binary files from Altair to IMSAI but not from IMSAI to Altair...

udo....@freenet.de

unread,
May 21, 2021, 2:55:06 AM5/21/21
to Altair-Duino
The IMSAI 8080 BIOS is 8bit clean on all serial input/output, I never saw the necessarity to clean bit 7,
as implemented in the example BIOS's from DRI. I don't know about the Altair BIOS you are using, but
I would have a look at the serial input/output routines.

Mark Lawler

unread,
May 21, 2021, 11:00:13 AM5/21/21
to Altair-Duino
Thanks Udo.  I'll look at the Altair settings.  That said, I'm also seeing same behavior on the IMSAI trying to send files up to my PC via ExtraPutty (via the USB port and the RS232 port) as I'm seeing when trying to send from the IMSAI via XMODEM and/or Kermit to the Altair on RS232.  For some reason receive works, but send is problematic.

Best,
-Mark

fred_...@hotmail.com

unread,
May 21, 2021, 3:27:51 PM5/21/21
to Altair-Duino
Mark

Ok, the Altair BIOS from deramp.com definitely strips bit 7 on CON: -- and, I think the BURCON Altair BIOS does
as well. *if* you are using the HD image and BIOS from deramp.com, or my patched version (https://github.com/ratboy666/hd1024) you can do the following.

CON8.BAS -- patch BIOS for 8 bit:

  1000 BIAS=&H3C00
  1010 ADDR=&HB69F
  1020 IF PEEK(ADDR + BIAS) <> &HE THEN 1050
  1030 POKE ADDR+BIAS+1,&HFF
  1040 SYSTEM
  1050 PRINT "NOT CORRECT BIOS"
  1060 SYSTEM

This will persist across warm-start. The BIAS stuff is just so I can use the addresses from the BIOS.PRN listing
directly... And, for completeness, here is CON7.BAS to put it back to 7 bits:

  1000 BIAS=&H3C00
  1010 ADDR=&HB69F
  1020 IF PEEK(ADDR + BIAS) <> &HE THEN 1050
  1030 POKE ADDR+BIAS+1,&H7F
  1040 SYSTEM
  1050 PRINT "NOT CORRECT BIOS"
  1060 SYSTEM

Then, we have the BURCON bios, which I don't care much about, and the AT (altair/tarbel) which I don't
(yet) know how to patch.

FredW

mark....@comcast.net

unread,
May 21, 2021, 4:44:20 PM5/21/21
to fred_...@hotmail.com, Altair-Duino

Thanks Fred!  Appreciate the assist.

 

To make sure I was doing things in a controlled way and to eliminate other variables, I downloaded your patched version of CP/M 2.2 1.6 (HDCPM22v16-63K-1024.DSK), renamed it HDSK06.DSK on my SD card, powered on the Altair, mounted it, booted with HD boot ROM, and then loaded/ran your BASIC program below.

 

Same results.  I can send text and binary files from Altair to IMSAI via XMODEM and KERMIT over the RS232 port, I can only receive text files from the IMSAI to the ALTIAR, and attempts to send binaries from the IMSAI doesn’t work.

 

What strikes me as curious is I can send and receive files both text and binary files between the Altair and ExtraPuTTY on my Windows machine.  I can only receive text and binary files down to the IMSAI (sending either from the IMSAI doesn’t work) via ExtraPuTTY.  Perhaps related or is that a random tangent?

 

Going to turn on all the logging and debugging I can in KERMIT on both Altair and IMSAI to capture/watch exactly what is coming/going each way from each machine’s perspective next… 

 

Last year I created “man in the middle” serial coms interceptor with a Due for my Ardunio DIY CNC build and might gen up another circuit and some code to have a 3rd machine wedged in the middle to log the exact traffic both ways.  That’s a project for another day though.  😃

 

Best,

-Mark

--
You received this message because you are subscribed to a topic in the Google Groups "Altair-Duino" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/altair-duino/Xyb_LLgO_Gw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to altair-duino...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/altair-duino/734c2a89-b5b8-4994-8d85-e7054fa19b5an%40googlegroups.com.

fred_...@hotmail.com

unread,
May 21, 2021, 5:18:53 PM5/21/21
to Altair-Duino
Mark

Thanks for the feedback! Wow... CON: with the given (1.6) BIOS definitely strips bit 7. The patch definitely changes the mvi c,7Fh to
mvi c,FFh (and the other one puts it back). It keys on the "mvi c" instruction itself (to avoid making things explode). Really simple
stuff...  Because the images from deramp.com actually run on REAL Altair hardware (along with Eberhard's ROMs, etc) *and*
given I personally have no way of testing the real hardware, I prefer the analyze and patch approach.

B69F 0E7F              mvi     c,07fh          ;C=AND mask for input byte

Note that the PUN, RDR and LST devices do NOT strip down to 7 bits... Colour me intrigued. I am very interested in the outcome.
I just got TTY (SIO) running with Altair-Duino on RS232, but haven't (yet) tried xmodem protocol. I am patching MDM7 for it,
and will report ...

FredW

 

Mark Lawler

unread,
May 21, 2021, 5:42:16 PM5/21/21
to Altair-Duino
FredW, et al...

So I tried a Hail Marry in Kermit between calls this afternoon as the debug showed me what was going back/forth...  On the IMSAI if I set the command "set parity even" all is golden both ways text or binary files via RS232 between the IMSAI and Altair emulation kit machines (that's UC1).  Doesn't matter if I run the 1.5 patched version of CP/M for ports, your CP/M image native, or your image with your BAS file ran or not.  Doesn't resolve similar issue with XMODEM or ExtraPuTTY with the IMSAI, or the root cause, but now that I know I have a way to send/receive files between the two machines via RS232 and I can connect terminal emulation software on either to interact with the other, I'll probably train myself to only use Kermit with the right settings on the IMSAI side and completely forget the other options exist or should be available.  lol

Thanks to all for the assists!  I'll keep working to resolve as I hate not figuring something out, but at a more leisurely pace.  Think I may play some Rogue after work tonight instead...  :D  

udo....@freenet.de

unread,
May 22, 2021, 4:25:53 AM5/22/21
to Altair-Duino
On the IMSAI open system.conf in the Web GUI. There are some options for the serial
ports which should be off for 8bit transfer:

# SIO 2, Ports 4/5, not connected and used for VIO keyboard
#sio2_upper_case 0
#sio2_strip_parity 1
#sio2_drop_nulls 1

If the strip_parity or drop_nulls options are active on your system the SIO might not work for 8bit data transfer.
Not sure if this features are implemented in the ESP32 clone machine, also it's not updated to latest version
of the PC emulations. Anyway, comment the options or set the flag to 0 to be sure.

Mark Lawler

unread,
May 24, 2021, 7:44:56 PM5/24/21
to Altair-Duino
Udo!!!  Eureka!  I had so thought I had already set these... Obviously I didn't or I nuked them when playing with the contents of the SD card.  Ugh.  I cannot believe I didn't verify these.  If it were a snake it would have indeed bit me!

Thanks again!  So I can now send files (text and binary) back and forth between the Altair and IMSAI emulator kits using either XMODEM or KERMIT at 9600N1 with a cable between Altair's 9pin RS232 and IMSAI's RS232-2 (straight serial and not a null modem cable as I had initially assumed).  I can now send files (text and binary) back and forth between Altair and PC running ExtraPutty and XMODEM (works both on USB and UC1 ports using null modem cable).  I can now send files (text and binary) back and forth between IMSAI and PC running ExtraPutty and XMODEM as well as with Kermit paired on PC and from the IMSAI's RS232-2 port (straight serial cable).  In this last case I use one ExtraPutty to drive the console and a 2nd instance to connect to the RS232-2 for either Kermit or ExtraPuTTY's XMODEM instance.

Thanks all for putting up with me through this.  I'm in the process of writing up 3-4 cheat sheets that list all settings, programs, parameters, steps such that 2 months from now I have something foolproof I can follow step by step given I'll forget all of the settings/nuances/workflows before then.

Best,
-Mark

Reply all
Reply to author
Forward
0 new messages