October 2022 Release
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 (previouslyNVS_BOOT_ROM
) - the
ROMn=filename.hex
entries inboot.conf
are no longer used and are ignored - ROM files (
*.hex
) have been moved into aroms
folder for each machine
- the
- 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
toD
) - that can behave as
5 1/4"
or8"
drivesSS
orDS
,SD
orDD
- 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)
- with 4 floppy disk drives (typically
- 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
- with up to 3 hard disk drives (typically
- additional TU-ART communications interface with
- two (2) additional serial interfaces as the
TTY2:
andTTY3:
devices - two (2) parallel printers as
lpt1
(LPT:
) andlpt2
devices
- two (2) additional serial interfaces as the
- 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:
andTTY3:
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, asLPT:
- indicates disk formats in the
LIB:
window- ie.
5 1/4"
or8"
SS
orDS
SD
orDD
- ie.
- adds
- 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
- use
- 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:
andDZLR:
windows for the same result
- you can also double-click in the
- 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
- use
- 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 theMemory Map
section
- update the
- 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 cyclePWR OFF -> PWR ON
- includes the ability to promote a
- 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 aroms
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 theIMAGE.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 fromIMAGE.zip
(attached below)
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.
- Running with
NVS_LOG_LEVEL
set toINFO
will result in excessive information messages that will cause theCPA
process to stack overflow and make the ESP32 crash and reboot. The work around is to lower the log level toNONE
,ERROR
orWARN
. This will be fixed in the next firmware release.