July 2021 Release
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
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
Firmware updates:
- Built using ESP-IDF Version: v4.0.2
- includes Z80PACK updates, specifically:
-
updates the RTC device udo-munk/z80pack@9bc17bc
-
add SIO-2 control ports and modem carrier detect udo-munk/z80pack@bf8b3f2
-
added carrier detect to the 'AT' Modem udo-munk/z80pack@88e5e5b
-
correctly negotiate telnet options for 'AT' Modem answer mode udo-munk/z80pack@c50d6eb
-
update front panel address LEDs for specific 8080 opcodes udo-munk/z80pack@2d20225
-
change
system.conf
parameter names for SIO configuration udo-munk/z80pack@7933f4b- Note: this last change will require you to update the
system.conf
file on your system - This can be done:
- via the config editor in the
SYS:
device on the desktop UI - or by directly editing the
/imsai/conf/system.conf
file on the µSD card on another computer
- via the config editor in the
- For example:
- Note: this last change will require you to update the
-
# SIO 1 Channel A, Ports 2/3 connected to terminal (default)
sio1a_upper_case 0
sio1a_strip_parity 0
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 0
sio2a_drop_nulls 1
sio2a_baud_rate 19200
- 'AT' Modem enhancements:
- added standard Command Echo off/on feature
ATEn
- whenn=0
- echo off andn=1
- echo on- to disable/enable echoing 'AT' commands when in command mode
- default is on (echo on)
- added standard Quiet Results off/on feature
ATQn
- whenn=0
- quiet off andn=1
- quiet on- to show/hide 'AT' command results when in command mode
- default is off (quiet off)
- added non-standard Enable Answer daemon mode
- existing
AT&A
command (now alsoAT&A0
) enables "interactive" listen mode- continues to display 'RING' & 'CONNECTED' responses (if enabled)
- continues to allow the interrupt sequence
+++
to return the Modem to command mode from data mode
- new
AT&A1
command enables "daemon" listen mode- suppresses 'AT' command echo and responses (effectively
ATE0
&ATQ1
) - ignores the interrupt sequence
+++
preventing the Modem from returning to command mode from data mode - this new mode avoids the race condition when the 'AT' Modem is used as the CP/M console device
CON:
- see Known Issues below and allows the Modem to be used to provide remote access to the console eg. from a telnet client
- suppresses 'AT' command echo and responses (effectively
- existing
- update
AT$
help to:- show the new commands from above
- replace
<Tab>
characters with spaces as this was preventing the text from displaying on theCRT:
(VIO) device
- added Modem initialization string to
boot.conf
- the environment variable
MODEM.init
can be set in theboot.conf
file - this string will be processed by the Modem when it is initialised and reset (
ATZ
) - For example, to initialize the modem for:
- auto-answer after 1 ring (
ATS0=1
) - enable telnet protocol (
ATS15=1
) - enable answer mode (ie. listen) in "daemon" mode (
AT&A1
) - add the following
boot.conf
line:
- auto-answer after 1 ring (
- the environment variable
- added standard Command Echo off/on feature
MODEM.init=ATS0=1S15=1AT&1
- A new HAL (Hardware Abstraction Layer) enables mapping of character mode devices to the four (4) virtual SIO-2 serial ports
- the SIO port mapping configuration is loaded and reported to the debug console (UART0 including USB) when the simulation is started/powered-on
- the SIO port mapping configuration is also displayed in the
SYS:
virtual device on the desktop UI (see Desktop UI updates, below) - when no SIO port mapping configuration is specified, the existing configuration is the default, and reported as follows:
SIO PORT MAP:
SIO1.portA = WEBTTY UART0
SIO1.portB = VIOKBD
SIO2.portA = UART1
SIO2.portB = MODEM
- HAL (continued...)
- the purpose of the HAL is to:
- simplify the addition of new character mode devices in future
- eg. additional hardware UART; network sockets; additional telnet listeners; new virtual peripherals on the desktop UI
- enable the user to assign specific devices to each of the four (4) virtual SIO-2 serial ports
- simplify the addition of new character mode devices in future
- details of configuring the SIO port mappings will be published in the Configuration Guide in the near future
- hint: try putting lines like the output shown above in the
boot.conf
file- without spaces around the '='
- with commas (",") between devices on the same line
- hint: try putting lines like the output shown above in the
- the purpose of the HAL is to:
Desktop UI updates:
- Updated GUI Version to
webfrontend-v1.7.0
- Updates to CRT: device
- correctly generates all control key combinations, including:
^@
-Ctrl-@
&Ctrl-<space>
^[
-Ctrl-[
^\
-Ctrl-\
^]
-Ctrl-]
^^
-Ctrl-6
&Ctrl-^
^_
-Ctrl--
&Ctrl-_
- (previously generated only
^A
to^Z
)
- will not connect to the VIO when:
- the Power switch is in the
PWR OFF
position - the VIO ROM/BIOS is not loaded
- the Power switch is in the
- will correctly display the VIO screen contents after a disconnect/connect or web browser page refresh
- will not display anything (will appear powered off) when disconnected
- correctly generates all control key combinations, including:
- Updates to the SYS: device
- now displays a new section titled SIO Ports showing the current port mappings for the four (4) virtual SIO-2 serial ports
- For example, the default port mappings are displayed as:
SIO Ports
SIO1.portA = WEBTTY UART0
SIO1.portB = VIOKBD
SIO2.portA = UART1
SIO2.portB = MODEM
The bundle is made of three parts:
- The FIRMWARE for the ESP32-PICO-KIT
- The IMAGE for the microSD card
- An update.bin file for updating the desktop GUI
You only need the imsaisim_esp32.bin
file from the FIRMWARE bundle if upgrading from v1.6.x
and the update.bin
file to update the desktop GUI to v1.7.0
You can simply drag-and-drop the update.bin
file onto the SYS: icon on the desktop GUI. When the upload is complete, reboot the ESP32 and the update will be identified, unpacked and installed. Watch the output on the boot console (typically via USB port @ 115200 8N1) to see the process proceed.
FIRMWARE
The FIRMWARE package is a ZIP file containing 6 files
COPYRIGHT.txt
FLASHING.md
bootloader.bin 22K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 977K
ota_data_initial.bin 8.0K
Instructions for flashing the firmware to an existing system are included in the Updating Software guide
The FLASHING.md file contains instructions for flashing the firmware to a new ESP32-PICO-KIT
IMAGE
The IMAGE package is a ZIP file of the complete contents of the microSD card and can simply be unzipped onto a newly formatted (FAT32) microSD card with a capacity of 128MB or greater.
Known Issues
- There is no UI for changing hard disk images, the required image must be set using the environment variable
HARDDISK
in theboot.conf
file and then the ESP32 hard reset to reload the environment. - The
boot.conf
file can't include a#
in PASSWORD. The occurrence of#
at any point on any line indicates the start of a comment. - A race condition can occur when the 'AT' Modem is used as the CP/M console device
CON:
. This will cause a buffer overflow and the IMSAI8080esp will reboot. To avoid this race condition, always use the newAT&A1
"daemon" (silent) mode described above.