Skip to content

July 2021 Release

Compare
Choose a tag to compare
@dmcnaugh dmcnaugh released this 05 Jul 12:12
280c333

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:
# 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 - when n=0 - echo off and n=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 - when n=0 - quiet off and n=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 also AT&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
    • update AT$ help to:
      • show the new commands from above
      • replace <Tab> characters with spaces as this was preventing the text from displaying on the CRT: (VIO) device
    • added Modem initialization string to boot.conf
      • the environment variable MODEM.init can be set in the boot.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:
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
    • 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

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
    • 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
  • 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

  1. There is no UI for changing hard disk images, the required image must be set using the environment variable HARDDISK in the boot.conf file and then the ESP32 hard reset to reload the environment.
  2. 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.
  3. 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 new AT&A1 "daemon" (silent) mode described above.