Skip to content

Releases: thehighnibble/firmware

August 2024 Release

01 Sep 06:22
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

If you are upgrading from a firmware release older than v1.10.0 then please upgrade to v1.10.0 first referring to the v1.10.0 release notes carefully with respect to updating the µSD card image.

This is a minor release that:

  • Adds IMSAI PIO-4 functionality to the IMSAI8080
  • Updates Cromemco Cyclops digital camera ACC: device functionality
  • Updates Cromemco Dazzler graphics display DZLR: device functionality
  • Fixes a problem where the contents of the SYS: device might not display on the Desktop UI or S-132 add-on

Firmware updates:

  • Update Firmware Build Version to v1.13.0
  • Adds IMSAI PIO-4 functionality to the IMSAI8080:
    • emulated IMSAI PIO-4 interface card (via CP-A overload/overlay)
    • see https://www.s100computers.com/Hardware%20Manuals/IMSAI/IMSAI%20PIO%20Manual.pdf
    • only implements I/O Mapped mode
    • I/O ports fixed to 0xF8 to 0xFB for ports 0 - 3
    • all 4 input and output ports are "available" but mapped to the CP-A front panel as follows:
      • output port 0 -> Status Byte LEDs
      • output port 1 -> Address Bus LEDs 8-15
      • output port 2 -> Data Bus LEDs
      • output port 3 -> Address Bus LEDs 0-7
      • input port 0 -> Address-Data Switches 0-7
    • To enable the PIO-4 to control the CP-A LEDs, in the boot.conf file set
      • CPA.PIO4=1
        • then input to Port0 is "free running" ie. continuous from A0-A7 address-data switches
      • CPA.PIO4=2
        • then then input to Port0 is "latched" by lifting or pressing DEPOSIT or DEPOSIT NEXT
    • Additional notes:
      • PIO-4 only controls the LEDs when RUN is lit
      • When WAIT is lit, normal CP-A LED display is observed
      • When in RUN state, you can press/lift EXAMINE and while it is held, normal CP-A LED display is observed
      • Just like the Programmed-Output (port 0xFF) the LEDs are inverted relative to the data values written to the I/O port
    • This was at the request of a community member @gohills who wanted to be able to control all the CP-A LEDs under program control on the Z80/8080.
  • Updates Cromemco Cyclops digital camera (ACC:) device functionality:
    • The ACC: device now updates memory using emulated DMA and will light the HOLD LED on the CP-A frontpanel as this happens
    • The ACC: device now is correctly reset on EXT.CLR.
    • The ACC: device no longer hangs-up the emulation when the WebSocket is disconnected on the (Web) Desktop UI
  • Updates Cromemco Dazzler graphics display (DZLR:) device functionality:
    • the Dazzler behaviour now more accurately emulates the original Cromemco Dazzler hardware
    • performance of screen updates has been improved, significantly reducing the likelihood of dropped frames or update artefacts
    • NOTE: These are breaking changes that mean the Dazzler device will only work when :
      • The (Web) Desktop UI has been updated to v1.14.0 or greater (see below)
      • and if using the S-132 add-on, the S-132 firmware has been update to V1.7.0 or greater, see the S-132 Release Notes
  • Fixes a problem where the contents of the SYS: device might not display on the Desktop UI or S-132 add-on:
    • the SYS: device contents are transmitted in a JSON format
    • previously, strings were not encoded and made JSON "safe"
    • this was particularly obvious if an entry in the boot.conf file contained a special character like " as might occur in the WiFi PASSWORD= entry
    • all strings are now encoded and made JSON "safe" by escaping special characters

Desktop UI updates:

  • Update GUI Version to webfrontend-v1.14.0
  • Updates Cromemco Cyclops digital camera ACC: device functionality
    • only close WebSocket when ACC: not running
    • only process video when ready
    • handle a dead WebSocket gracefully
    • don't smooth processed image preview
  • Updates Cromemco Dazzler graphics display (DZLR:) device functionality:
    • implement control bit to turn Dazzler on/off
    • refresh display based on a VSYNC message sent by the host rather than locally determined
  • NOTE: These are breaking changes that mean the Dazzler device will only work when the IMSAI8080 or Cromemco Z-1 is running firmware V1.13.0 or greater (see above)
  • WARNING: These are breaking changes that mean the Dazzler device will not work with Z80PACK on other platforms until the backend changes are back-ported to Z80PACK

Disk image updates:

  • Disk images for the IMSAI8080 and Cromemco Z-1 are unchanged

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

FIRMWARE

The FIRMWARE package is a ZIP file containing 7 files

COPYRIGHT.txt
FLASHING.md
bootloader.bin        23KB
cromemcosim_esp32.bin 899KB 
partition-table.bin   3KB 
imsaisim_esp32.bin    907KB 
ota_data_initial.bin  8KB

You only need the imsaisim_esp32.bin file from the FIRMWARE bundle to run the IMSAI8080 machine.
You only need the cromemcosim_esp32.bin file from the FIRMWARE bundle to run the Cromemco Z-1 machine

You can switch between machines by 'updating' to the firmware of the other machine by a drag-and-drop of the appropriate *.bin file to the SYS: device icon on the desktop, see Upload (flash) the firmware to the ESP32

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.

If upgrading from a release of the IMSAI8080esp firmware prior to v1.10.0 then please upgrade to v1.10.0 first referring to the v1.10.0 release notes carefully with respect to updating the µSD card image.

If you only need to update the Desktop UI from v1.13.x to v1.14.0

  • Download the attached update.bin file to your PC
  • Drag-and-drop the update.bin file from your PC to the SYS: icon on the Desktop UI of your IMSAI8080esp or Cromemco Z-1
  • Reboot the ESP32 (reset or power-cycle) and the update will be installed on the µSD during the boot process

Known Issues

  1. There is no UI for changing hard disk images, the required image must be set using the environment variable(s) 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
  4. In the HAL there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect.
  5. Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.

June 2023 Release

10 Jun 05:50
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

If you are upgrading from a firmware release older than v1.10.0 then please upgrade to v1.10.0 first referring to the v1.10.0 release notes carefully with respect to updating the µSD card image.

This is a minor release that:

  • Focuses on stability and performance improvements
  • Fixes bugs
  • Enables disk images to be renamed in the LIB: window on the Desktop UI

Firmware updates:

  • Update Firmware Build Version to v1.12.0
  • Updated build environment to Espressif IDF v4.4.4
    • providing significant improvements in:
      • memory utilisation
      • speed and performance
      • network stack performance & stability
      • webserver and websocket server performance & stability
    • anecdotally:
      • peak simulated CPU speed has been observed to be as high as 5.9MHz (when set to unlimited)
      • improved response from the front panel LEDs
      • speed of Dazzler demos such as gdemo.com and kscope.com are now noticeably smoother and faster
        • even when rendering on both the Desktop UI and the S-132 hardware Dazzler simultaneously
  • Fixed a bug that could cause a reboot if the VIO ROM was not loaded and the IMSAI was in PWR.OFF state
  • When operating with Wi-Fi in AP mode the DNS server task is stopped early to prevent DDoS from both Windows and macOS
    • both Windows and macOS launch significant and unnecessary DNS requests towards the ESP32 when in AP mode
    • this was overwhelming the ESP32, degrading network performance or causing the ESP32 to reboot
    • the DNS server task is now stopped when the httpd webserver responds to the first GET file request
    • it will only be restarted on the next reboot of the ESP32
    • this is usually sufficient for the DNS server to perform its role and provide the IP address of the ESP32 to a single connected client

Desktop UI updates:

  • Update GUI Version to webfrontend-v1.13.4
  • Fixed a font scaling issue in Chrome (and Edge) that effected the correct display of window title bars
    • this was only noticeable if you changed the default font size for the browser
    • thanks to @GrantMeStrength for pointing this out
  • Attempted to fix the anchoring of windows to icons when first opened
    • improved but not always accurate
  • Rename of disk images in LIB: now works as expected (same as for TAPE:)
    • double-click the text of a disk image name and edit in-place
    • can be aborted with Escape key (<ESC>)
    • you cannot rename a disk image that is currently mounted
  • Fixed the name of the Cromemco D+7A IO manual in MAN:
    • previously contained a special/non-printable character that should have been a <sp> (Space)

Disk image updates:

  • Disk images for the IMSAI8080 and Cromemco Z-1 are unchanged

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

FIRMWARE

The FIRMWARE package is a ZIP file containing 7 files

COPYRIGHT.txt
FLASHING.md
bootloader.bin        24KB
cromemcosim_esp32.bin 919KB 
partition-table.bin  3KB 
imsaisim_esp32.bin    926KB 
ota_data_initial.bin  8KB

You only need the imsaisim_esp32.bin file from the FIRMWARE bundle to run the IMSAI8080 machine.
You only need the cromemcosim_esp32.bin file from the FIRMWARE bundle to run the Cromemco Z-1 machine

You can switch between machines by 'updating' to the firmware of the other machine by a drag-and-drop of the appropriate *.bin file to the SYS: device icon on the desktop, see Upload (flash) the firmware to the ESP32

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.

If upgrading from a release of the IMSAI8080esp firmware prior to v1.10.0 then please upgrade to v1.10.0 first referring to the v1.10.0 release notes carefully with respect to updating the µSD card image.

If you only need to update the Desktop UI from v1.13.x to v1.13.4

  • Download the attached update.bin file to your PC
  • Drag-and-drop the update.bin file from your PC to the SYS: icon on the Desktop UI of your IMSAI8080esp or Cromemco Z-1
  • Reboot the ESP32 (reset or power-cycle) and the update will be installed on the µSD during the boot process

Known Issues

  1. There is no UI for changing hard disk images, the required image must be set using the environment variable(s) 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
  4. In the HAL there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect.
  5. Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.

March 2023 Release

20 Mar 08:10
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

If you are upgrading from a firmware release older than v1.10.0 then please upgrade to v1.10.0 first referring to the v1.10.0 release notes carefully with respect to updating the µSD card image.

This is a minor release that:

  • Adds support for the S-132 Add-on
  • Adds 132 column mode to TTY: devices (includes TTY2: & TTY3: for Cromemco Z-1)
  • Adds Tektronix 4014 vector display (TEK:) as a slave to the TTY: VT100 terminal (only, not to TTY2: & TTY3: for Cromemco Z-1)
  • Fixes a stack overflow in the IMSAI & Cromemco firmware when NVS_LOG_LEVEL set to INFO
  • Improves functionality in the LIB:, MAN: & TAPE: windows of the Desktop UI
  • Fixes cut-and-paste into the TTY: devices (includes TTY2: & TTY3: for Cromemco Z-1)

Firmware updates:

  • Update Firmware Build Version to v1.11.0
  • Fixed when running with NVS_LOG_LEVEL set to INFO
    • previously would result in excessive messages that could cause the CPA process to stack overflow and make the ESP32 crash and reboot
    • spi_master maximum level logging now set to WARN
    • CPA process stack size increased
  • Websocket receive queues increased for TTY(n): devices
  • Added support for the S-132 Add-on
    • new boot.conf parameter to enable the S-132: S132.init=1,
    • new HAL virtual devices added for:
      • IMSAI8080esp: S132TTY and S132VIO
      • Cromemco Z-1: S132TTY, S132TTY2 and S132TTY3
    • See the S-132 Configuration Guide for details

Desktop UI updates:

  • Update GUI Version to webfrontend-v1.13.0
  • Rename of tape files in TAPE: works as expected, removes false error message
  • Rename of tape files in TAPE: can be aborted with Escape key (<ESC>)
  • Drag-and-drop code for LIB:, MAN: and TAPE: modified to play nicely with badly behaved Chrome extension Imagur (or anything else that re-writes HTML image title attribute ie.<img title="...">)
    • thanks to community member Quentin for finding this and proposing a solution
  • Fixed drag-and-drop of a tape image from the TAPE: library to the PTR: paper tape reader in Chrome for Windows
  • The TTY(n): devices now have a keyboard/paste delay of 20ms for all characters except <CR> that has a 100ms delay
    • enables you to cut-and-paste into the TTY(n): windows
  • The text in the SYS: window is now selectable so it can be copied-and-pasted for trouble shooting
  • When a modal dialog is displayed eg. eject disk, the darkened background is also blurred
  • DEC VT100 132 column mode
    • The TTY(n): now implements 132 column mode:
      • standard DECCOLM escape sequences work
        • ESC [ ? 3 h - sets 132 column mode
        • ESC [ ? 3 l - resets to 80 column mode
      • there is a new glyph at the top of the TTY: window, a "T" with a width arrow under it
        • this lights up whenever 132 column mode is set
        • this goes dim whenever 80 column mode is reset
        • you can click this glyph to manually change modes, overriding the current mode
      • the window does not change size, the font is scaled horizontally
      • there is a known bug in rare circumstances where the window does resize horizontally - still looking into it
  • New TEK: window implements Tektronix 4014 vector graphics terminal
    • new development from the ground up - not a port of any existing project
    • built by reading the Tektronix 4014 User's Manual hundreds of times and writing code until it worked
    • theTektronix 4014 User Manual has been added to the MAN: folder
    • please don't ask how to use the Tektronix 4014 - RTFM = read the manual first ;-)
    • TEK: window does NOT have its own websocket or HAL device
      • it is a slave device to the TTY: device and shares the same websocket
      • there is a new glyph at the top of the TTY: window, a vector graphic symbol
        • when this is GREEN the TEK: device is connected and all data goes to the TEK: and comes from the TEK:
        • when this is WHITE the TEK: device is not connected and all data goes to the TTY: and comes from the TTY:
        • this glyph can be manually clicked with the mouse to connect/disconnect the TEK: device to the TTY:
        • xterm compatible Escape sequences can be used to connect/disconnect the TEK:
          • ESC [ ? 38 h - will connect the TEK:
          • ESC ETX - will disconnect the TEK:
        • this implementation is compatible with the DRI GSX-80 Tektronix driver implemented by Udo Munk and available on a number disk images on his site (search for GSX) https://www.autometer.de/unix4fun/z80pack/
          • works great with DR Graph
          • and MS Basic (mbasic) with GSX support
          • DR Draw works to some extent but does not appear to be designed to work with a persistent phosphor display
    • You can scale the window, or make it full screen like other windows
    • You can capture (png) images of the display (only persistent phosphor)
    • In addition to a standard ASCII keyboard layout the following keys are mapped:
      • <PgUp> = Tektronix PAGE key
      • <shift><PgUp> = Tektronix RESET key
      • <PgDn> = LF
      • <BackSpace> = BS
      • <Delete> = RUBOUT (ASCII 127)
      • Control codes are generated by the keyboard as follows:
        • <ctrl>2 = NUL (ASCII 0)
        • <ctrl>@ = NUL (ASCII 0)
        • <ctrl>A to <ctrl>Z = ASCII 1 to ASCII 26
        • <shift><ctrl>K to <shift><ctrl>O = ASCII 27 to ASCII 31
    • The mouse works to position the cross-hair in GIN mode
    • There is a pseudo colour mode, like the Tektronix 4052 computer where the non-persistent phosphor colour is red (and a few other creative tweaks)
      • Use the "paint-drop" colour glyph on the title bar of the TEK: window to toggle on/off
    • As per the Tektronix 4014 there are 4 inbuilt font sizes for text
      • You can also manually select between these in a cycle by using the "T" (with height arrow) glyph on the title bar of the TEK: window
    • Independent of the selection made by the TTY: window - the TEK: can select ONLINE/LOCAL
      • If the TEK: has a GREEN plug it is ONLINE and ready IF the TTY: selects the TEK:
      • If the TEK: has a RED plug it is LOCAL and will ignore the TTY: and echo the keyboard locally
    • Implements most functionality of the Enhanced Graphics Module
      • This implementation is limited to a resolution of 1024 x 768 (actually 1038 x 780 - see the manual) and scaled if made larger
        • if the browser window is too small at startup the TEK: window starts scaled to 50%
      • 12 bit coordinates (4096 x 3120) are down scaled to 1024 x 780
    • HOLD mode is not implemented, ie. the screen does not dim to protect the phosphor (a form of early screen saver)
    • There are many Tektronix format "plots" available from another Tektronix 4014 emulator project on GitHub at https://github.com/rricharz/Tek4010/tree/master/pltfiles
      • a small sample of these are on the attached disk image plotv1.dsk
      • they can by viewed on the TEK: with the CP/M command type
      • or better still
        • use the plot.com command on the attached disk image from the TTY: window and it will switch to the TEK:, clear the screen and display the "plot" and switch back to the TTY:
        • just enter plot on its own to see command options
        • a huge thanks to community member Neil @nbreeden2 for creating this excellent CP/M utility, and for testing this whole release extensively and making many suggestions for improvements along the way

Disk image updates:

  • New disk image plotv1.dsk added with sample plot files and plot.com command for the TEK: device (see above)
    • To use the attached disk image:
      • Download the attached file plotv1.dsk to your PC
      • Drag-and-drop the file plotv1.dsk from your PC to the LIB: window on the Desktop UI
      • Mount the disk image in your preferred floppy drive A: to D:
      • Switch to the preferred drive A: to D:
      • Type plot *.plt -c -l -m at the CP/M prompt in the TTY: window
  • Disk images for the Cromemco Z-1 are unchanged

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

FIRMWARE

The FIRMWARE package is a ZIP file containing 7 files

COPYRIGHT.txt
FLASHING.md
bootloader.bin        21KB
cromemcosim_esp32.bin 982KB 
imsai_part_table.bin  3KB 
imsaisim_esp32.bin    990KB 
ota_data_initial.bin  8KB

You only need the imsaisim_esp32.bin file from the FIRMWARE bundle to run the IMSAI8080 machine.
You only need the cromemcosim_esp32.bin file from the FIRMWARE bundle to run the Cromemco Z-1 machine

You can switch between machines by 'updating' to the firmware of the other machine by a drag-and-drop of the appropriate *.bin file to the SYS: device icon on the desktop, see Upload (flash) the firmware to the ESP32

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 ca...

Read more

October 2022 Release

05 Oct 12:53
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

This is a minor release that:

  • includes firmware for both the IMSAI8080 (imsaisim) and the Cromemco Z-1 (cromemcosim) from Z80PACK
  • is based on the development branch on the Z80PACK GitHub repo.
  • updates the desktop UI (webfrontend) to a unified codebase that supports both machines
  • as this is a minor release this
    • introduces breaking changes
    • requires manual updates to the image on the µSD card for an existing IMSAI8080esp system (updating from v1.9.1)

It is recommended that the IMAGE for this release is loaded on to a new µSD card and any disk images and required configuration is transferred across from the old µSD card

Firmware updates:

Note:

Common to both machines:

  • being based on the development branch on the Z80PACK GitHub repo both machines:
    • include a HAL (hardware abstraction layer) for mapping Serial I/O ports to different physical and virtual devices
    • implement a new model for specifying different memory configurations in the system.conf file
      • the NVS_MEMORY_MAP bits 8-10 in the NVS Startup configuration now index these memory configurations (previously NVS_BOOT_ROM)
      • the ROMn=filename.hex entries in boot.conf are no longer used and are ignored
      • ROM files (*.hex) have been moved into a roms folder for each machine
  • each machine maintains its own NVS Startup configuration in Non-Volatile Storage (NVS)
  • the physical CP-A front panel is refreshed by a separate process CPA, independent of the emulated CPU

Generally, no other changes have been made to the IMSAI8080 machine emulation (imsaisim)

Addition of the Cromemco Z-1 machine emulation (cromemcosim)

  • includes the following emulated hardware configuration, following standard Cromemco memory and I/O port mapping:
    • ZPU - Z80 CPU @ 2MHz, 4MHz or Unlimited (~5MHz)
    • 64KB of RAM in Bank 0
    • seven (7) additional banks of 64KB of RAM as Banks 1 to 6
    • 16FDC/64FDC hybrid floppy disk controller
      • with 4 floppy disk drives (typically A to D)
      • that can behave as 5 1/4" or 8" drives SS or DS, SD or DD
      • based on the *.dsk floppy disk image that is mounted
      • with banked ROM support for RDOS ROMs
      • with the console serial interface (TU-ART) as the TTY: device
      • and Real Time Clock (RTC)
    • WDI-II winchester (hard) disk interface
      • with up to 3 hard disk drives (typically hd0:, hd1: & hd2:)
      • each emulating a 10MB capacity 8" IMI-7710
      • the WDI-II will work with the CPU set to any speed as it reflects all timing relative to a 4MHz CPU
    • additional TU-ART communications interface with
      • two (2) additional serial interfaces as the TTY2: and TTY3: devices
      • two (2) parallel printers as lpt1 (LPT:) and lpt2 devices
    • Dazzler graphics
    • D+7A I/O with joystick input support

Desktop UI updates:

  • Updated GUI Version to webfrontend-v1.12.5
  • adds a Cromemco themed desktop for the Cromemco Z-1
    • adds TTY2: and TTY3: terminal windows to the Cromemco Z-1 desktop
    • TTY: windows emulate Cromemco C3102 terminal or DEC VT 100 terminal
    • only the first printer lpt1 is currently presented via the desktop UI, as LPT:
    • indicates disk formats in the LIB: window
      • ie. 5 1/4" or 8"
      • SS or DS
      • SD or DD
  • most windows are now resizable
    • SYS:, LIB:, MAN:, DZLR: & VIO: are resizable using the widget in the bottom right hand corner of the window
    • the TTY: windows are resizable in font-size steps, like terminal applications on mainstream GUIs
      • use <ctrl> + and <ctrl> - on Windows
      • use <cmd> + and <cmd> - on Mac
    • adds a new glyph to the TTY:, VIO: & DZLR: windows to restore the zoom/size to 100%
      • you can also double-click in the VIO: and DZLR: windows for the same result
    • the TTY: & VIO: windows will switch between full-screen and windowed using a changed keypress
      • use <alt><enter> on Windows
      • use <cmd><enter> on Mac
  • the layout of the SYS: window has been changed to reorder sections
    • update the SYS: window to display any boot loaded ROM/TAPE (-x) in the Memory Map section
  • long-running actions like file uploads and file downloads present a shade and wait spinner while the action completes
  • adds the TAPE: icon/folder to desktop providing local storage for paper tape images
    • includes the ability to promote a *.hex or *.mos format tape of a binary as a temporary PROM to be loaded and run at the next front panel power cycle PWR OFF -> PWR ON
  • update the CPA: device to actively refresh the Desktop UI on 3 events: PWR ON, PWR OFF, EXT.CLR
    • refreshes the floppy disk/harddrive icons on the desktop
    • refreshes the SYS: & LIB: windows

Disk image and ROM image updates:

  • Disk images for the IMASI8080 are unchanged
  • a range of disk images for the Cromemco Z-1 are included from Z80PACK, including:
    • CDOS boot disks
    • Cromix boot disks (configured for 3 simultaneous users)
    • CP/M boot disks
  • an empty (all zero, 0x00) 10MB file named empty.hdd is provided as a 'seed' image for harddisks
  • ROM files (*.hex) have been moved into a roms folder for each machine

The bundle is made of two parts:

  • The FIRMWARE for the ESP32-PICO-KIT
  • The IMAGE for the microSD card

FIRMWARE

The FIRMWARE package is a ZIP file containing 7 files

COPYRIGHT.txt
FLASHING.md
bootloader.bin        22KB
cromemcosim_esp32.bin 998KB 
imsai_part_table.bin  3KB 
imsaisim_esp32.bin    1MB 
ota_data_initial.bin  8KB

You only need the imsaisim_esp32.bin file from the FIRMWARE bundle to run the IMSAI8080 machine.
You only need the cromemcosim_esp32.bin file from the FIRMWARE bundle to run the Cromemco Z-1 machine

You can switch between machines by 'updating' to the firmware of the other machine by a drag-and-drop of the appropriate *.bin file to the SYS: device icon on the desktop, see Upload (flash) the firmware to the ESP32

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.

It is recommended that the IMAGE for this release is loaded on to a new µSD card and any disk images and required configuration is transferred across from the old µSD card

If upgrading from an earlier release of the IMSAI8080esp firmware, the following manual changes need to be made to the content on an existing µSD card image to make it compatible with this firmware release v1.10.0. Failure to make these changes may result in a machine that won't boot, or continually reboots

  • create a folder /imsai/roms
  • create a folder /imsai/tapes
  • copy all files /imsai/*.hex to /imsai/roms/
  • copy the file /imsai/roms/viofm1.hex from the IMAGE.zip file (attached below) to the same place on your µSD card.
  • edit the file /imsai/conf/system.conf to include the memory configuration sections eg. [MEMORY 1] onwards in the same file from IMAGE.zip (attached below)

Known Issues

  1. There is no UI for changing hard disk images, the required image must be set using the environment variable(s) 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
  4. In the HAL there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect.
  5. Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.
  6. Running with NVS_LOG_LEVEL set to INFO will result in excessive information messages that will cause the CPA process to stack overflow and make the ESP32 crash and reboot. The work around is to lower the log level to NONE, ERROR or WARN. This will be fixed in the next firmware release.

August 2022 Release

23 Aug 11:27
280c333
Compare
Choose a tag to compare
August 2022 Release Pre-release
Pre-release

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

This is a BETA, minor release that:

  • includes firmware for both the IMSAI8080 (imsaisim) and the Cromemco Z-1 (cromemcosim) from Z80PACK
  • is based on the development branch on the Z80PACK GitHub repo.
  • updates the desktop UI (webfrontend) to a unified codebase that supports both machines
  • as this is a BETA, minor release this
    • introduces breaking changes
    • is not currently suitable as an upgrade for an existing IMSAI8080esp system

It is strongly recommended that the IMAGE for this release is loaded on to a new µSD card

Firmware updates:

Note:

Beta.3 addresses the following issues identified in Beta.2

  • Updated GUI Version to webfrontend-v1.12.5
  • add an example tape to the TAPE: folder for the Cromemco Z-1
  • fixes a problem with the title/file name of the I:DSK: harddrive icon for the IMSAI8080 - thanks to Kurt for finding this bug
  • update the SYS: window to display any boot loaded ROM/TAPE (-x) in the Memory Map section
  • adds a new glyph to the TTY:, VIO: & DZLR: windows to restore the zoom/size to 100%
    • you can also double-click in the VIO: and DZLR: windows for the same result
  • fixes redraw issues with the TTY: after a resize/zoom
    • there may still be problems when switching to/from full-screen, please report if you are experiencing this
  • update the CPA: device to actively refresh the Desktop UI on 3 events: PWR ON, PWR OFF, EXT.CLR
    • refreshes the floppy disk/harddrive icons on the desktop
    • refreshes the SYS: & LIB: windows

Beta.2 addresses the following issues identified in Beta.1

  • adds the following two (2) directories to enable the TAPE: icon/folder on the desktop to function correctly
    • /imsai/tapes - including a range of sample tape images
    • /cromemco/tapes
  • fixes a number of issues relating to closing & releasing resources on PWR OFF so that the next PWR ON works as expected

Common to both machines:

  • being based on the development branch on the Z80PACK GitHub repo both machines:
    • include a HAL (hardware abstraction layer) for mapping Serial I/O ports to different physical and virtual devices
    • implement a new model for specifying different memory configurations in the system.conf file
      • the NVS_BOOT_ROM bits 8-10 in the NVS Startup configuration now index these memory configurations
      • the ROMn=filename.hex entries in boot.conf are no longer used and are ignored
  • each machine maintains its own NVS Startup configuration in Non-Volatile Storage (NVS)
  • the physical CP-A front panel is refreshed by a separate process CPA, independent of the emulated CPU

Generally, no other changes have been made to the IMSAI8080 machine emulation (imsaisim)

Addition of the Cromemco Z-1 machine emulation (cromemcosim)

  • includes the following emulated hardware configuration, following standard Cromemco memory and I/O port mapping:
    • ZPU - Z80 CPU @ 2MHz, 4MHz or Unlimited (~5MHz)
    • 64KB of RAM in Bank 0
    • seven (7) additional banks of 64KB of RAM as Banks 1 to 6
    • 16FDC/64FDC hybrid floppy disk controller
      • with 4 floppy disk drives (typically A to D)
      • that can behave as 5 1/4" or 8" drives SS or DS, SD or DD
      • based on the *.dsk floppy disk image that is mounted
      • with banked ROM support for RDOS ROMs
      • with the console serial interface (TU-ART) as the TTY: device
      • and Real Time Clock (RTC)
    • WDI-II winchester (hard) disk interface
      • with up to 3 hard disk drives (typically hd0:, hd1: & hd2:)
      • each emulating a 10MB capacity 8" IMI-7710
      • the WDI-II will work with the CPU set to any speed as it reflects all timing relative to a 4MHz CPU
    • additional TU-ART communications interface with
      • two (2) additional serial interfaces as the TTY2: and TTY3: devices
      • two (2) parallel printers as lpt1 (LPT:) and lpt2 devices
    • Dazzler graphics
    • D+7A I/O with joystick input support

Desktop UI updates:

  • Updated GUI Version to webfrontend-v1.12.4
  • adds a Cromemco themed desktop for the Cromemco Z-1
    • adds TTY2: and TTY3: terminal windows to the Cromemco Z-1 desktop
    • TTY: windows emulate Cromemco C3102 terminal or DEC VT 100 terminal
    • only the first printer lpt1 is currently presented via the desktop UI, as LPT:
    • indicates disk formats in the LIB: window
      • ie. 5 1/4" or 8"
      • SS or DS
      • SD or DD
  • most windows are now resizable
    • SYS:, LIB:, MAN:, DZLR: & VIO: are resizable using the widget in the bottom right hand corner of the window
    • the TTY: windows are resizable in font-size steps, like terminal applications on mainstream GUIs
      • use <ctrl> + and <ctrl> - on Windows
      • use <cmd> + and <cmd> - on Mac
  • the layout of the SYS: window has been changed to reorder sections
  • long-running actions like file uploads and file downloads present a shade and wait spinner while the action completes
  • adds the TAPE: icon/folder to desktop providing local storage for paper tape images
    • includes the ability to promote a *.hex or *.mos format tape of a binary as a temporary PROM to be loaded and run at the next front panel power cycle PWR OFF -> PWR ON

Disk image and ROM image updates:

  • Disk images for the IMASI8080 are unchanged
  • a range of disk images for the Cromemco Z-1 are included from Z80PACK, including:
    • CDOS boot disks
    • Cromix boot disks (configured for 3 simultaneous users)
    • CP/M boot disks
  • an empty (all zero, 0x00) 10MB file named empty.hdd is provided as a 'seed' image for harddisks
  • ROM files (*.hex) have been moved into a roms folder for each machine

The bundle is made of two parts:

  • The FIRMWARE for the ESP32-PICO-KIT
  • The IMAGE for the microSD card

FIRMWARE

The FIRMWARE package is a ZIP file containing 7 files

COPYRIGHT.txt
FLASHING.md
bootloader.bin        22KB
cromemcosim_esp32.bin 997KB 
imsai_part_table.bin  3KB 
imsaisim_esp32.bin    1MB 
ota_data_initial.bin  8KB

You only need the imsaisim_esp32.bin file from the FIRMWARE bundle to run the IMSAI8080 machine.
You only need the cromemcosim_esp32.bin file from the FIRMWARE bundle to run the Cromemco Z-1 machine

You can switch between machines by 'updating' to the firmware of the other machine by a drag-and-drop of the appropriate *.bin file to the SYS: device icon on the desktop, see Upload (flash) the firmware to the ESP32

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(s) 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
  4. In the HAL there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect.
  5. Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.

September 2021 Release

08 Sep 05:35
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

NOTE: If you are upgrading from a version earlier than v1.9.0, you should upgrade to v1.9.0 first, before applying this patch release upgrade.

This is a patch release that:

  • improves code performance of the PTR: device on the Desktop UI
  • improves behaviour of the PTR: for reading larger tapes (>15KB)
  • updates the SYS: device to better report on system information

Firmware updates:

  • adds a 256 byte input buffer to the PTR: device to avoid overflow conditions (especially when writing to disk during a tape read)

Desktop UI updates:

  • Updated GUI Version to webfrontend-v1.10.1
  • Updated PTR: device to:
    • more quickly load a file as a paper tape
    • load files >15KB without failing
    • punch tapes >5KB without the noticeable slow-down of the previous release
    • include a Queue button that reads though any tape leader (nulls, 0x00) and stops at the first non-null byte
  • Updated SYS: device
    • re-orders information to place IMSAI8080 simulation details before host (ESP32) details
    • show fall-through information for the SIO Ports (HAL) with a + appended to the device name

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.9.0
and the update.bin file to update the desktop GUI to v1.10.1

If you are upgrading from a version earlier than v1.9.0, you should upgrade to v1.9.0 first, before applying this patch release upgrade.

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    999K 
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
  4. In the HAL there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect.
  5. Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.

August 2021 Release - 2

19 Aug 04:09
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

This is a minor release that:

  • integrates the AM9511 arithmetic processing unit (APU) simulation from Fred Weigel at https://github.com/ratboy666/am9511
  • adds two (2) new CP/M disk images in support of the AM9511 APU
  • adds a virtual paper tape reader and punch device (PTR:) to the desktop UI
  • adds the paper tape device and a fall-through/follow-on feature to the HAL
  • updates websockets to overflow gracefully and disconnect
  • updates xybasic.hex ROM image to enable SAVE & LOAD from the PTR: paper tape device

Firmware updates:

  • integrates the AM9511 arithmetic processing unit (APU) simulation from Fred Weigel at https://github.com/ratboy666/am9511
    • the AM9511 is located at IO ports 0A2h and 0A3h for data and control/status respectively
    • operation is synchronous and blocking
      • ie. any command given to the AM9511 (by writing to the AM9511 command port) will run to completion before returning to the caller
    • there is no support for DMA or interrupt modes of operation
    • execution is typically twice as fast for programs with significant floating point operations
  • websockets will overflow gracefully and close if nothing is listening
  • the HAL has been enhanced
    • includes the new WEBPTR device for the PTR:
      • by default this is now the first device on SIO2.portA
      • ie. SIO2.portA.device=WEBPTR,UART1
    • devices have a new attribute called fallthrough
      • this is set by appending + to the device name in boot.conf
        • eg. SIO1.portA.device=WEBPTR+,WEBTTY,UART0
      • when fall-through is set for a device the HAL will not stop if this device is 'alive' but will also "fallthrough" to the next device
        • e.g. with SIO1.portA.device=WEBTTY+,UART0
        • if the web UI TTY: device is connected it will show the output to the console, but output will also always be sent to UART0
        • Known Issue: there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect

Desktop UI updates:

  • Updated GUI Version to webfrontend-v1.9.3
  • Added PTR: device, that is both
    • reader (PTR:) - drag and drop files from local O/S onto tape will produce a tape to read
    • punch (PTP:) - use Download button to save a punched tape as a file on local O/S
    • the PTR: sends at a maximum speed of 50cps, this was the speed of the Heathkit H-10, faster than an ASR-33 (10cps) but not as fast as a modern high-speed reader (400cps)
    • Read button sends tape contents to PTR: (only if device is connected)
      • will only send if the PTR: is connected (Green plug in the window title bar)
      • if nothing is listening to the PTR: the websocket will overflow gracefully and close (Red plug in the window title bar)
    • EOF button sends a 0x1A to PTR: as this is sometimes required to let CP/M know it is the end-of-file
    • Clear clears the tape
    • Go sends a 0x0D to PTR: as this is sometimes required to let CP/M know start sending
    • Known issue: sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously

Disk image and ROM image updates:

  • xybasic.dsk
    • Mark Williams Company XYBASIC - ref: https://www.nesssoftware.com/home/mwc/XYBASIC.php
    • with CP/M versions for binary, BCD, and AM9511 accelerated floating point arithmetic
    • and a number of sample BASIC programs (*.XYB) to demostrate floating point performance
    • possibly the only surviving application with native AM9511 support under CP/M
  • apu.dsk
  • xybasic.hex
    • this is the XYBASIC ROM image (by default: ROM5 in boot.conf)
    • this update enables SAVE & LOAD to & from the PTR: paper tape device

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, disk and ROM images

You only need the imsaisim_esp32.bin file from the FIRMWARE bundle if upgrading from v1.8.x
and the update.bin file to update the desktop GUI to v1.9.3, update the XYBASIC ROM image and add the two (2) new disk images


NOTE: The two (2) new disk images are named:

  • xybasic.dsk
  • apu.dsk
    these will overwrite any existing disk image with the same name.

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    998K 
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
  4. In the HAL there is currently no fall through implemented for carrier detect, but this is not currently a problem as only MODEM implements carrier detect.
  5. Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.

August 2021 Release

06 Aug 04:41
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

This is a minor release that:

  • flushes the printer cache file to disk periodically to allow access when the printer is not busy
  • responds to the IMSAI PTR-300 printer initialisation command to reset the printer
  • adds 132 column paper options to the printer, LPT: device on the web UI
  • performs a printer initialisation command to reset the printer when Reset pressed in LPT: device on the web UI
  • adds support for a hardware parallel printer interface for LPT:
  • adds support for a printer initialisation string for a hardware printer connected to the parallel port

Firmware updates:

  • the ESP-IDF libraries for file handling are not thread aware:
    • so the printer cache file is now closed after a timeout period of 0.5-1 second after print activity ceases
    • this allows other processes to access the content of the printer cache file when the printer is not busy
  • this firmware now supports a hardware parallel printer via a hardware parallel printer interface connected to the 16-pin Patch header on the back of the IMSAI8008esp
    • details for building your own hardware parallel printer interface will be published soon
    • to use the hardware parallel printer interface an environment variable must set set in boot.conf as follows:
      • LPT.device=PARALLEL
      • when this interface is active, both the printer cache file and the web UI virtual printer are disabled
  • the imsaisim printer "device" is strictly 7-bit ASCII, modelled on the IMSAI PTR-300 line printer:
    • original IMSAI software also sends a value of 0x80 to initialise the printer
      • the CP/M BIOS's (both 2.2 and 3) both send this initialisation code when CP/M boots
      • however the imsaisim printer driver has previously ignored this initialisation code
    • the IMSAI8080esp now responds to a value of 0x80 to initialise the printer as follows:
      • the printer cache file is closed and truncated to clear the cache
      • if the hardware parallel printer interface is being used, a printer initialisation string can be sent to the printer
        • the printer initialisation string LPT.init is set in boot.conf and can contain the following escaped control codes:
          • ^[ to represent ASCII <ESC>
          • ^L to represent ASCII <FF>
          • ^J to represent ASCII <LF>
          • ^M to represent ASCII <CR>
          • ^^ to represent ASCII ^

For example:

LPT.init=^[E

will send <ESC>E to initialise an HP PCL5 compatible printer.

Desktop UI updates:

  • Updated GUI Version to webfrontend-v1.8.0
  • Updates to LPT: device
    • adds 132 column paper options
      • the Paper button now cycles through 6 paper options:
        • 8.5" , 80-column - blue-line; green-bar; white, followed by
        • 14" , 132-column - blue-line; green-bar; white
    • the Reset button now signals to the IMSAI8080esp to perform a printer initialisation (see above)
    • the LPT: device is reset when the IMSAI8080esp performs a printer initialisation (see above)
    • the Line Feed button now correctly advances the line count and does not corrupt subsequent form feeds

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.7.x
and the update.bin file to update the desktop GUI to v1.8.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    979K 
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.

July 2021 Release

05 Jul 12:12
280c333
Compare
Choose a tag to compare

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.

April 2020 Release - 3

20 Apr 10:18
280c333
Compare
Choose a tag to compare

THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.​

Release Notes

This is a patch release that

  • fixes a problem with setting the hostname from the HOSTNAME in boot.conf early enough when in station (STA) mode
  • adds a basic DNS service when in access point (AP) mode

Firmware updates:

  • Forum member, Michael Gulick was the first to notify me that an SSID of espressif was seen on his router rather than the expected imsai8080 from the HOSTNAME in boot.conf

    • This was a bug related to different code paths for STA and AP Wi-Fi modes.
    • Only affected STA mode (NVS_IF_STA=1)
    • Explains why you could never use the hostname to access the desktop UI from a browser in STA mode
    • Became evident when ever using Reverse ARP on the IP address of the ESP32.
    • The hostname is now set before the ESP32 connects to your access point/router
  • While investigating the above issue, it became clear that when in AP mode the lack of any DNS service meant that the ESP32 could only be reached by IP address or mDNS query (eg. hostname.local)

    • Only affected AP mode (NVS_IF_STA=0)
    • Explains why you could never use the hostname to access the desktop UI from a browser in AP mode
    • A basic DNS service now responds to DNS queries to resolve the hostname of the ESP32 (but ignores all other DNS queries)

Desktop UI updates:

None.


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.0

FIRMWARE

The FIRMWARE package is a ZIP file containing 6 files

COPYRIGHT.txt
FLASHING.md
bootloader.bin        21K 
imsai_part_table.bin  3.0K 
imsaisim_esp32.bin    899K 
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.