Releases: thehighnibble/firmware
April 2020 Release - 2
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This is the release that ships on the IMSAI8080esp kits from April 2020
This is a minor release that
- fixes the known issue with the TTY: and LPT: devices on the desktop UI
- adds new functionality implementing the Cromemco D+7A IO with JS-1 analog joystick support
- includes a new disk image
dazzlerII.dsk
with original Cromemco games and more recent demo programs that work with the joystick support
Firmware updates:
- There was a known issue with the TTY: and LPT: devices on the desktop UI requiring the following lines in the
boot.conf
file as a work-around. This has been fixed and this work-around is no longer required.
#performance parameters
SIO1.netsrv.buffer_delay=1
LPT.netsrv.buffer_delay=1
- If these lines remain in
boot.conf
they are not ignored, and will continue to work. They specify a time in milliseconds (ms) during which output to the device will be buffered (up to the next line feed character) and transmitted in a single (websocket) packet. This can greatly improve performance of both the TTY: and LPT: devices. If used, recommended optimal settings are:
#performance parameters
SIO1.netsrv.buffer_delay=33
LPT.netsrv.buffer_delay=33
- Implemented the Cromemco D+7A IO interface module on its default I/O ports.
- Note: the (experimental) RTC had to be moved to higher I/O port numbers to make way for the D+7A IO.
- This generally only effects CP/M 3+, that uses the RTC for the date functions
- Udo Munk has changed this in Z80PACK also and has published a new set of CP/M 3+ disk images with the BIOS updated to point to the new location of the RTC https://github.com/udo-munk/z80pack/tree/dev/imsaisim/disks/library
Desktop UI updates:
- New device, JS1: on the desktop UI
- support for (a single) game controller to act as a 4 button, analog joystick (via the Gamepad API)
- (you can test your gamepad against the Gamepad API at https://html5gamepad.com/)
- the JS1: starts disconnected (like the ACC: device) so you have to click on the red plug to connect it to the IMSAI 8080esp, the plug should go green when the websocket connection is made
- the red indicator will show when the gamepad is detected (usually requires a gamepad button to be pressed)
- supports one "standard" layout gamepad requiring only 1 analog joystick and 4 buttons
Y
maps to Button 1X
maps to Button 2B
maps to Button 3A
maps to Button 4
- the 5th button (usually Left-shoulder) swaps JS1: between acting as joystick 1 or 2
- the two green indicators will cycle to indicate joystick 1 (left) or joystick 2 (right)
- when this button is pressed it will "latch" any joystick buttons currently pressed on the current joystick
- a double-click in the JS1: window will cycle between the image of the JS-1 and two information screens to show the operation of the gamepad
- support for two physical game controllers will follow in a later release
- sound is not currently implemented (a feature of the JS-1 with the D+7A IO)
- Updates to the content in the manual `MAN:
- new documents for the
- Cromemco D+7A IO module
- Cromemco JS-1 Joystick
- Cromemco Dazzler Games
- new icons added for the CP/M 80 Kermit and Memon80 manuals
- new documents for the
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
and the dazzlerII.dsk
files from the IMAGE bundle to demonstrate the use of the JS1: analog joystick
and the update.bin
file to update the desktop GUI.
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 21K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 898K
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.
April 2020 Release
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This is a patch level release only.
Firmware updates:
- Fixes the bug identified when a
halt/hlt
instruction is executed, causing the HLTA LED to light in the Status Byte. The machine now responds to theRESET
,EXT. CLR
,RUN
,STOP
andPWR OFF
toggle switches on the front panel and in the CPA: device on the desktop UI.
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.5.0
If upgrading from an earlier release you will also need:
- the
cpm22b01.dsk
files from the IMAGE bundle to enable features that need the new CP/M BIOS - and the
update.bin
file to update the desktop GUI.
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 21K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 897K
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. - In
boof.conf
the two...buffer_delay
parameters need to be uncommented/included as follows to avoid dropped or duplicate characters in the TTY: and LPT: devices. This has been changed in theboot.conf
file included in the IMAGE.zip file.
#performance parameters
SIO1.netsrv.buffer_delay=1
LPT.netsrv.buffer_delay=1
October 2019 Release - rel-2
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This is the release that ships on the IMSAI8080esp kits in the October 2019 batch.
While there are some notable updates to the Desktop UI in this release they are for the most part cosmetic and there is little that is functionally new. The majority of this update is internal to the firmware and focuses on performance, better memory usage and process separation along with some new (experimental) functionality.
Wi-Fi performance is now vastly improved and the Desktop UI can be loaded with an Empty Cache and Hard Reload (Chrome) in under 8 seconds and in under 2 seconds when cached.
Simulated CPU performance can now reach speeds of ~5.5MHz when NVS_UNLIMITED
is set to 1 in the startup configuration (previously this was closer to 4.2MHz)
Firmware updates:
- EXPERIMENTAL MMU and banked memory implemented to support CPM3(+)
- EXPERIMENTAL RTC implemented to support CPM3(+)
- EXPERIMENTAL optional support for Wi-Fi scan modes for multiple APs with the same SSID
- EXPERIMENTAL optional Telnet protocol support in the virtual AT modem for out-bound,
ATD
connections - Improved memory allocation to Wi-Fi buffers and tasks to improve Wi-Fi performance
- Improved implementation of task tick clock and timers to improve performance
- Separation of task to update LEDs on the front panel to improve performance
Desktop UI updates:
- The current harddisk image is now visible on the desktop as
I:DSK:
- Harddisk images are now visible in the disk library
LIB:
- Disk images in the library
LIB:
do not show the file extension (.dsk
and.hdd
) to save space - The Dazzler
DZLR:
display is now centred in full-screen mode - UART and AP information added to the system
SYS:
display - New desktop icons for the
TTY:
,CRT:
&LPT:
devices - Fully functional documentation manual
MAN:
- Documents can be deleted by dragging to the trash can
- Documents can be added by dragging
*.pdf
files to theMAN:
window - Added documents get a default DOC icon
- New manuals added for CP/M 80 Kermit and Memon80
- Existing document files have been optimised to make using the manual practical
- Files added to the disk library
LIB:
and the manualMAN:
can contain spaces in the filename - The PWR switch in the
CPA:
device is now locked to the position of the power switch on the front panel.
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
and the cpm22b01.dsk
files from the IMAGE bundle to enable features that need the new CP/M BIOS
and the update.bin
file to update the desktop GUI.
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 918K
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.
October 2019 Release
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
Thanks goes to the following members of the community that have helped with identifying issues, testing and improving the software for everyone: Udo Munk, John Kennedy, Terry Fox.
Firmware updates:
- Added a virtual 'AT' (Hayes) style modem connected to I/O ports for SIO-2B, over TCP/IP (telnet).
- When connected to the modem,
AT$
will display summary help for supported AT commands - Supports dialling out using
ATDname:port
where name is a valid hostname and :port is optional and defaults to 23 - Supports answer mode using
AT&A
to start listening and eitherATA
to manually answer onRING
, or for example:ATS0=3
to AutoAnswer after 3RING
's. Ringing is at a simulated 3 sec. betweenRING
's
- When connected to the modem,
- Significant improvements in Wi-Fi performance and stability.
- Wi-Fi in STA mode will now attempt to automatically reconnect to the AP after a disconnect event.
- Websocket communication with the TTY: device can be made 8-bit clean. This requires a (cryptic) value to be set in the
boot.conf
file:SIO1.netsrv.buffer_delay=1
and in thesystem.conf
filesio1_strip_parity 0
- Update to latest version of the Espressif esp-idf v4.1-dev as of Sept-28.
- Supports automated updates to the desktop GUI files on the micro SD card.
- Using the same drag-on-drop paradigm as for firmware updates.
- Drag and drop the file in this release named
update.bin
onto the SYS: desktop icon. - Once 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.
Desktop UI updates:
- Enter and Exit fullscreen mode for the TTY: and CRT: with
<Ctrl><Alt><Esc>
. On Windows there is a delay before the change occurs. - LIB: window no longer shows the
*.dsk
extensions on floppy disk image files - TYY: can now operate '8-bit clean' and by default displays 8-bit ASCII based on the Latin-1 codepage. This requires a (cryptic) value to be set in the
boot.conf
file:SIO1.netsrv.buffer_delay=1
and in thesystem.conf
filesio1_strip_parity 0
- TTY: now has support for DOS/IBM Codepage CP437. This can be turned on and off via the 'A' widget in the window title bar. The default is off. This does not effect text already displayed.
- SYS: now displays the build versions for the esp-idf, firmware and desktop GUI
- Hack is now the default font for the desktop UI and the TTY:. This makes the desktop GUI more consistent across platforms.
- browser load time has been improved with preload directives and image (*.png, *.jpg) optimisation.
CP/M and IMSAI8080 system files and disk images:
- Added
memon80.hex
that can be made available as a Boot ROM viaboot.conf
by addingROM6=memon80.hex
- Added
cpm22b01.dsk
disk image that includes the latest CP/M BIOS (B01) and utility files. - Added
dazzler.dsk
disk image that includes Cromemco Dazzler demos (removed from cpm22.dsk). - Added
comms.dsk
communications utility disk that includes kermit, qterm, xmodem
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
and the cpm22b01.dsk
files from the IMAGE bundle to enable features that need the new CP/M BIOS
and the update.bin
file to update the desktop GUI.
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 910K
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
- The MAN: (manual) device on the Desktop UI is currently a proof-of-concept with only the pre-loaded manuals available. Additional functionality will added to allow adding and removing PDF files to/from the MAN: (manual) device
- There is no UI for managing hard disk images, although hard disk image files (
*.hdd
) can be uploaded by being drag-and-dropped into the LIB: window the same as for floppy disk images
September 2019 Release - rel-2
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This release includes the following enhancement:
- added harddisk emulation from upstream Z80PACK, thanks Udo.
A harddisk image (4MB) can be mounted as I:DSK:
/ Drive I:
Note:
- the desktop GUI has not been enhanced in anyway to show or support the harddisk, yet
- you can however drag-and-drop a new harddisk onto the
LIB:
window to upload a new harddisk image (but it will not be visible in the window after it is uploaded) - the harddisk function is inactive unless you include the following line in
boot.conf
HARDDISK=imagename
e.g.
#HARDDISK image (don't include the .hdd extension)
HARDDISK=hd-ws4
- the harddisk image file must reside in
/imsai/disks/
and end with.hdd
eg./imsai/disks/hd-ws4.hdd
- do not use the
.dsk
extension for a harddisk image as it will be confused with a floppy disk image - if you change harddisk image you must reboot the IMSAI8080esp to load the new image
- the harddisk cannot be made a bootable device, the bootrom doesn't support this
- a CP/M system floppy disk image is still required in drive A: to boot CP/M
To make testing quicker I have included in the IMAGE ZIP file:
- a copy of the
hd-ws4.hdd
harddisk image for WordStar 4, from Udo's website - a copy of a new CP/M system disk named
cpm22r60.dsk
that is configured for a 60K TPA (Note: this will not work unless you haveNVS_BANK_ROM
set in the startup configuration) - using these disk images you can successfully load and run WordStar 4
- if you want a blank harddisk image, simply load the
hd-ws4.hdd
harddisk image and delete the contents of theI:
drive at the CP/M command prompt withI> era *.*
The bundle is made of two parts:
- The FIRMWARE for the ESP32-PICO-KIT
- The IMAGE for the microSD card
You only need the imsaisim_esp32.bin
file from the FIRMWARE bundle
and the hd-ws4.hdd
and cpm22r60.dsk
files from the IMAGE bundle (if you wish to use them)
FIRMWARE
The FIRMWARE package is a ZIP file containing 4 files
bootloader.bin 21K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 900K
ota_data_initial.bin 8.0K
Instructions for flashing the firmware are included in the Updating Software guide
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
- People report that the keyboard shortcut
Alt-Escape
intended to exit full-screen mode in the TTY:, VIO: and DZLR: devices on the Desktop UI does not work under Windows and Linux as the Chrome browser or the O/S already captures this key combination. It does however work under OSX/macOS - The MAN: (manual) device on the Desktop UI is currently a proof-of-concept with only the pre-loaded manuals available. Additional functionality will added to allow adding and removing PDF files to/from the MAN: (manual) device
September 2019 Release - patch-2
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This release addresses the following issues:
- fixes the problem introduced in v1.2.1 where UART1 (RS232-2) would not
- send files via xmodem
- work reliably with kermit at speeds greater than 19200 baud
Both xmodem and kermit are sending and receiving successfully at speeds from 300 to 230400 baud.
For xmodem to work successfully, you need to edit system.conf and uncomment/add the lines:
sio2_upper_case 0
sio2_strip_parity 0
sio2_drop_nulls 0
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 4 files
bootloader.bin 21K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 899K
ota_data_initial.bin 8.0K
Instructions for flashing the firmware are included in the Updating Software guide
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
- People report that the keyboard shortcut
Alt-Escape
intended to exit full-screen mode in the TTY:, VIO: and DZLR: devices on the Desktop UI does not work under Windows and Linux as the Chrome browser or the O/S already captures this key combination. It does however work under OSX/macOS - The MAN: (manual) device on the Desktop UI is currently a proof-of-concept with only the pre-loaded manuals available. Additional functionality will added to allow adding and removing PDF files to/from the MAN: (manual) device
September 2019 Release - patch
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This release addresses the following issues:
- fixes the problem introduced in v1.2.1 for some people where the
SYS:
device, System Information window would not render depending on the country code reported by their Wi-Fi Access Point. - adds the
comms.dsk
disk image released by Udo Munk that includes:kermit.com
- Kermit-80 v4.11 configured for Generic CP/M-80xmodem.com
- XMODEM 2.7 By M. Eberhard configured for the second SIO-2 on RS232-2 (UC1:)
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 4 files
bootloader.bin 21K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 898K
ota_data_initial.bin 8.0K
Instructions for flashing the firmware are included in the Configuration guide
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
- People report that the keyboard shortcut
Alt-Escape
intended to exit full-screen mode in the TTY:, VIO: and DZLR: devices on the Desktop UI does not work under Windows and Linux as the Chrome browser or the O/S already captures this key combination. It does however work under OSX/macOS - The MAN: (manual) device on the Desktop UI is currently a proof-of-concept with only the pre-loaded manuals available. Additional functionality will added to allow adding and removing PDF files to/from the MAN: (manual) device
September 2019
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This release addresses the following issues:
- Updates esp-idf to version 4.1-dev
- Fixed software initiated reboot, this now works everywhere it is expected
- Added support for the second serial port RS232-2 (UART1) mapped to 8080/Z80 IO ports
20h-2Fh
- Include
cpm22.dsk
from Z80PACK enablingUC1:, PTR:, PTP:
mapped to UART1 - Added
boot.conf
based configuration for UART0 and UART1, including:- standard baud rates from 110 to 115200
- 7 or 8 data bits (cs7, cs8)
- 1 or 2 stop bits (cstopb)
- even or odd parity (parenb, parodd)
- Improved INFO log messages for the state of the micro SD card
- Improved INFO log messages for the attached Wi-Fi Access Point in STA mode
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 4 files
bootloader.bin 21K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 877K
ota_data_initial.bin 8.0K
Instructions for flashing the firmware are included in the Configuration guide
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
- People report that the keyboard shortcut
Alt-Escape
intended to exit full-screen mode in the TTY:, VIO: and DZLR: devices on the Desktop UI does not work under Windows and Linux as the Chrome browser or the O/S already captures this key combination. It does however work under OSX/macOS - The MAN: (manual) device on the Desktop UI is currently a proof-of-concept with only the pre-loaded manuals available. Additional functionality will added to allow adding and removing PDF files to/from the MAN: (manual) device
June 2019
THESE PACKAGES MAY NOT BE UPLOADED OR HOSTED ANYWHERE ELSE.
Release Notes
This is the release included with the first batch of IMSAI 8080esp kits that shipped in June 2019 (and early July). Any kit with a PCB designated v3.4.1
included this software release.
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 4 files
bootloader.bin 20K
imsai_part_table.bin 3.0K
imsaisim_esp32.bin 795K
ota_data_initial.bin 8.0K
Instructions for flashing the firmware are included in the Configuration guide
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
- As noted in the Configuration guide only RS232-1 (port 1 of 2) can currently be used and only at 115200 baud 8N1
- People report that the keyboard shortcut
Alt-Escape
intended to exit full-screen mode in the TTY:, VIO: and DZLR: devices on the Desktop UI does not work under Windows and Linux as the Chrome browser or the O/S already captures this key combination. It does however work under OSX/macOS - The MAN: (manual) device on the Desktop UI is currently a proof-of-concept with only the pre-loaded manuals available. Additional functionality will added to allow adding and removing PDF files to/from the MAN: (manual) device
- Software initiated H/W reboots currently don't work because of a know issue in the release of the
esp-idf
used for this build. When the issue in theesp-idf
is resolved or if a workaround can be implemented this will be resolved. Meanwhile, H/W reboots must be triggered by one of the two H/W reset press-buttons. See the first tip in the Startup Configuration section of the Configuration guide for details.