Skip to content

August 2021 Release - 2

Compare
Choose a tag to compare
@dmcnaugh dmcnaugh released this 19 Aug 04:09
280c333

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: http://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.