New firmware software release (v1.7.0) available on GitHub

218 views
Skip to first unread message

TheHighNibble

unread,
Jul 5, 2021, 8:31:16 AM7/5/21
to IMSAI 8080esp

This is a minor release that

  • harmonizes the build with changes from Z80PACK upstream updates
  • adds 'AT' Modem enhancements
  • adds missing functionality to the CRT: device on the desktop UI
  • adds a HAL (Hardware Abstraction Layer) for mapping character mode devices to the four (4) virtual SIO-2 serial ports
See the release notes for more details.

Tony Nicholson

unread,
Jul 5, 2021, 8:11:49 PM7/5/21
to IMSAI 8080esp
I notice the inclusion of baud rates for the SIO channels in the system.conf file have been added (as per the release notes) - so I have added the following

sio1_baud_rate        115200
sio2_baud_rate        9600

In my boot.conf I have -

UART0=115200,cs8
UART1=9600,cs8

I'm just wondering which takes precedence in case these get out-of-sync?

It's not helpful to have two places to set the baud rates.

BTW - I have updated without any problems to v1.7.0 by just dragging and dropping the update.bin and imsaisim_esp32.bin files to the web interface SYS: icon.

Tony

TheHighNibble

unread,
Jul 5, 2021, 8:59:58 PM7/5/21
to IMSAI 8080esp
Thanks for confirming the update worked OK.

First thing to note is that the system.conf parameters should read:

sio1a_baud_rate        115200
sio2a_baud_rate        9600

As you have them, they are being ignored. These naming changes are mentioned in the release notes.

Secondly, the two sets of baud rates have different purposes - so they are helpful but require some further explanation.
  • The UART0/UART1 settings in boot.conf set the hardware UART baud rates on the ESP32 module, so if you using these physical UARTs you can set these baud rates (both default to 115200 if not explicitly set). See: https://thehighnibble.com/imsai8080/configure/#uart-configuration
  • The sio1a_baud_rate/sio2a_baud_rate settings in system.conf set the baud rates on the virtual SIO-2 serial ports in the simulation - meaning they will effect the speed of data flow through these ports no matter what device is being used, including UARTs, network sockets or virtual devices like the desktop UI TTY: or the 'AT' Modem.
  • They don't need to be kept in-sync, you just need to: 
    • Match the speed set by UART0/UART1 to the equipment you are connecting
    • Only set non-zero speeds with sio1a_baud_rate/sio2a_baud_rate if you want simulated speeds
  • Regarding precedence: 
    • If you are using the the hardware UARTs connected to these 2 virtual ports, you can set both sio1a_baud_rate/sio2a_baud_rate to 0 (zero), then the hardware UART baud rate is the controlling speed
    • If you do set sio1a_baud_rate/sio2a_baud_rate to some other value, then that is always applied in the simulation and will throttle the data flow to that speed, so
      • If you set sio1a_baud_rate/sio2a_baud_rate to values higher than the speed of UART0/UART1 then they have no meaningful effect as the UART speed will "win"
      • If you set sio1a_baud_rate/sio2a_baud_rate to values lower than the speed of UART0/UART1 then it will simulate the lower speed despite your UART running faster
    • Clear at mud :-)

Tony Nicholson

unread,
Jul 5, 2021, 10:06:41 PM7/5/21
to IMSAI 8080esp
On Tuesday, July 6, 2021 at 10:59:58 AM UTC+10 TheHighNibble wrote:
Thanks for confirming the update worked OK.

First thing to note is that the system.conf parameters should read:

sio1a_baud_rate        115200
sio2a_baud_rate        9600

 Ahh.. of course it should!

I've now got the baud rates in system.conf set to 0 (since I'm using the physical UARTs as the SIO ports).

The mud is now clear - thanks to your explanation!

Tony

TheHighNibble

unread,
Jul 5, 2021, 10:17:54 PM7/5/21
to IMSAI 8080esp
Great.
If you never want the desktop UI TTY: device to "cut in", even though you have to use the desktop to change disks from time-to-time, you can use the new HAL to only connect SIO1A to UART0
Add this line to the boot.conf

SIO1.portA.device=UART0

Now UART0 is the only device on SIO1A

If you don't use the 'AT' Modem for anything else, and you want the option of being able to telnet into the CP/M console, add/change these line to the boot.conf

MODEM.init=ATS0=1S15=1&A1
SIO1.portA.device=MODEM,UART0

Now the Modem will always be in Auto-Answer listening daemon mode, and if you telnet to the IMSAI8080 then it will answer after 1 ring and "be the console", once you close the telnet session the console will revert to UART0

udo....@freenet.de

unread,
Jul 6, 2021, 5:14:58 AM7/6/21
to IMSAI 8080esp
I have updated to firmware 1.7.0, no issues. I also updated the Web frontend and saw the update progress bar
on the console, but in the Web GUI SYS: folder it still says webfrontend-v1.6.0.

TheHighNibble

unread,
Jul 6, 2021, 8:36:14 AM7/6/21
to IMSAI 8080esp
Udo, 
on my system I just reverted to v1.6.0 of the Web frontend and then again updated to v1.7.0 of the Web frontend and everything was reported as expected in the SYS: folder for the "GUI Version" at each step.

Can you try again with the update.bin file for this release, remembering to refresh your web browser after the IMSAI8080esp reboots and unpacks the update.

Let me know how you get on.
Dave.

udo....@freenet.de

unread,
Jul 6, 2021, 8:52:47 AM7/6/21
to IMSAI 8080esp
I downloaded the file again and uploaded it into the machine, console shows the update progress:

Image update package found - proceeding to install:

Extract [--------------------------------------------------] 100%

Install [--------------------------------------------------] 100%

Image update package successfully installed.

I (21043) phy: phy_version: 4390, 6b3c1f2, Sep 10 2020, 15:09:07, 0, 0


Then I restarted everything, is OK now and also shows webfrontend v1.7.0. I must have done something
wrong before, but don't know what.



TheHighNibble

unread,
Jul 6, 2021, 9:18:24 AM7/6/21
to IMSAI 8080esp
Good to know it’s working. 

I will soon raise a PR on Z80PACK for the updates to the modem and the web frontend.
We should discuss the HAL after you have a look at it on you IMSAI8080esp and decide if it goes into Z80PACK too.

udo....@freenet.de

unread,
Jul 6, 2021, 10:04:00 AM7/6/21
to IMSAI 8080esp
TheHighNibble schrieb am Dienstag, 6. Juli 2021 um 15:18:24 UTC+2:
Good to know it’s working.

Yes working fine, still no idea what I could have done wrong, oh well. 

I will soon raise a PR on Z80PACK for the updates to the modem and the web frontend.
We should discuss the HAL after you have a look at it on you IMSAI8080esp and decide if it goes into Z80PACK too.

Great, raise the PR when it's done. Should get back at some more modem software sometime...

The HAL is very nice and useful. For z80pack I always though would be nice if one just could select
the routing of all the many SIO's with some configuration file, but so far never found the time to
implement something. Looking forward to this.
 

udo....@freenet.de

unread,
Jul 7, 2021, 5:43:58 AM7/7/21
to IMSAI 8080esp
I have also downloaded the latest image from the 1.7.0 and had a look at the configuration files
included, so that I can update the configuration in my machine manually. I noticed a few things.

boot.conf has two typos:

#Bootrom configutation

                  ^configuration

#performance parameters


That should be Performance to have it consistent.


In system.conf I noticed:

# SIO 2 Channel B, Ports 34/35 connectted to UART1/RS232-2 (default)

sio2a_upper_case        0

sio2a_strip_parity      0

sio2a_drop_nulls        1

#sio2a_baud_rate                19200


The comment should be SIO 2 Channel A and connected has a typo.
Also all the options other than baud rate should be commented, with the setting included the SIO would drop 0 bytes
and then the SIO is not 8bit clean. Some communication programs (xmodem) require 8bit data transfer and the second
serial mostly is used for that. Dropping 0 bytes helps on the console port, because several software uses that as delay
after a CR.

Then in the distributed z80pack configuration I also have:

# SIO 2 Channel B, ports 36/37 connected to Hayes telnet modem

sio2b_baud_rate         2400


I usually run the modem with 2400 baud for a realistic experience, but for file transfers I sometimes raise the baud rate
because I run out of patience with the slow thing ;-)
Dave, is the baud rate for the modem fixed or also configurable in the firmware?

TheHighNibble

unread,
Jul 7, 2021, 7:09:49 PM7/7/21
to IMSAI 8080esp
Thanks for the feedback, I will fix all these typos/spelling mistakes in the comments in the next patch release.

Now I finally understand why I can never get xmodem to work! It makes sense now that you point it out - I've only focused on _strip_parity previously.
I will also comment out these lines by default in the next patch release.

    | Dave, is the baud rate for the modem fixed or also configurable in the firmware?

No, for now the _baud_rate parameter is only implemented for SIO1A and SIO2A.
Now with the HAL it makes sense that these settings should be normalised for all  4 SIO ports.

udo....@freenet.de

unread,
Jul 8, 2021, 5:22:05 AM7/8/21
to IMSAI 8080esp
TheHighNibble schrieb am Donnerstag, 8. Juli 2021 um 01:09:49 UTC+2:
Now I finally understand why I can never get xmodem to work! It makes sense now that you point it out - I've only focused on _strip_parity previously.
I will also comment out these lines by default in the next patch release.

For reference here what I have in the ESP32 system.conf currently:
# SIO 1 Channel A, Ports 2/3 connected to terminal (default)
#sio1a_upper_case 0
#sio1a_strip_parity 1
#sio1a_drop_nulls 1
sio1a_baud_rate 9600

# SIO 2 Channel A, Ports 34/35, connected to UART1/RS232-2 (default)
#sio2a_upper_case 0
#sio2a_strip_parity 1
#sio2a_drop_nulls 1
sio2a_baud_rate 9600

 

    | Dave, is the baud rate for the modem fixed or also configurable in the firmware?

No, for now the _baud_rate parameter is only implemented for SIO1A and SIO2A.
Now with the HAL it makes sense that these settings should be normalised for all  4 SIO ports.

Yes that would make sense then to implement it all equal for all 4 SIO's.
In z80pack so far 1B is not configurable at all because it is the serial keyboard and for 2B I only have
implemented the baud rate setting for the modem. Maybe the other settings also could be used
for some cases, who knows ...
 

udo....@freenet.de

unread,
Jul 16, 2021, 3:43:38 AM7/16/21
to IMSAI 8080esp
I have refactored the SIO's, so that the same configuration options are possible for all of them.

Changing the baud rate for 1A the serial keyboard has no effect, because one cannot type more than 10cps anyway.

For setting the modem port to upper case I even found a use case while testing. If you login to telehack.com
and login with upper case, the hosts assume you have a upper case only device and all communication will
be with upper case only. For the younger ones who might not know, this is a feature of the old UNIX systems,
which on the more modern UNIX systems was removed.

TheHighNibble

unread,
Jul 17, 2021, 5:56:40 AM7/17/21
to IMSAI 8080esp
Great. That groundwork will make porting the HAL easier.
Meanwhile I have raised PRs for both the AT modem updates and the webfrontend v1.7.0
Once you've accepted them I'll get the HAL done.

Reply all
Reply to author
Forward
0 new messages