Skip to content

March 2023 Release

Compare
Choose a tag to compare
@dmcnaugh dmcnaugh released this 20 Mar 08:10
280c333

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 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.12.x to v1.13.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
  • Note: this update procedure will not install
    • the Tektronix 4014 User Manual in the MAN: folder
    • the plotv1.dsk floppy disk image in the LIB: disk library

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.