March 2023 Release
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 (includesTTY2:
&TTY3:
for Cromemco Z-1) - Adds Tektronix 4014 vector display (
TEK:
) as a slave to theTTY:
VT100 terminal (only, not toTTY2:
&TTY3:
for Cromemco Z-1) - Fixes a stack overflow in the IMSAI & Cromemco firmware when
NVS_LOG_LEVEL
set toINFO
- Improves functionality in the
LIB:
,MAN:
&TAPE:
windows of the Desktop UI - Fixes cut-and-paste into the
TTY:
devices (includesTTY2:
&TTY3:
for Cromemco Z-1)
Firmware updates:
- Update Firmware Build Version to
v1.11.0
- Fixed when running with
NVS_LOG_LEVEL
set toINFO
- 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 toWARN
CPA
process stack size increased
- previously would result in excessive messages that could cause the
- 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
andS132VIO
- Cromemco Z-1:
S132TTY
,S132TTY2
andS132TTY3
- IMSAI8080esp:
- See the S-132 Configuration Guide for details
- new
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:
andTAPE:
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 thePTR:
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
- enables you to cut-and-paste into the
- 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 modeESC [ ? 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
- standard DECCOLM escape sequences work
- The
- 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 theTEK:
and comes from theTEK:
- when this is WHITE the
TEK:
device is not connected and all data goes to theTTY:
and comes from theTTY:
- this glyph can be manually clicked with the mouse to connect/disconnect the
TEK:
device to theTTY:
- xterm compatible Escape sequences can be used to connect/disconnect the
TEK:
ESC [ ? 38 h
- will connect theTEK:
ESC ETX
- will disconnect theTEK:
- 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
- when this is GREEN the
- it is a slave device to the
- 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
- Use the "paint-drop" colour glyph on the title bar of the
- 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
- You can also manually select between these in a cycle by using the "T" (with height arrow) glyph on the title bar of the
- Independent of the selection made by the
TTY:
window - theTEK:
can select ONLINE/LOCAL- If the
TEK:
has a GREEN plug it is ONLINE and ready IF theTTY:
selects theTEK:
- If the
TEK:
has a RED plug it is LOCAL and will ignore theTTY:
and echo the keyboard locally
- If the
- 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%
- if the browser window is too small at startup the
- 12 bit coordinates (4096 x 3120) are down scaled to 1024 x 780
- This implementation is limited to a resolution of 1024 x 768 (actually 1038 x 780 - see the manual) and scaled if made larger
- 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 commandtype
- or better still
- use the
plot.com
command on the attached disk image from theTTY:
window and it will switch to theTEK:
, clear the screen and display the "plot" and switch back to theTTY:
- 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
- use the
- a small sample of these are on the attached disk image
Disk image updates:
- New disk image
plotv1.dsk
added with sample plot files andplot.com
command for theTEK:
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 theLIB:
window on the Desktop UI - Mount the disk image in your preferred floppy drive
A:
toD:
- Switch to the preferred drive
A:
toD:
- Type
plot *.plt -c -l -m
at the CP/M prompt in theTTY:
window
- Download the attached file
- To use the attached disk image:
- 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 theSYS:
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 theLIB:
disk library
- the Tektronix 4014 User Manual in the
Known Issues
- There is no UI for changing hard disk images, the required image must be set using the environment variable(s)
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 - 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.
- Sending to PTP: appends to the end of the tape and can cause an endless-loop if both reading (PTR:) and punching (PTP:) simultaneously.