July 30, 2025

Sun 3 bootrom souce - using the PROMice rom emulator

My notes tell me that the last time I used this thing was 7 years ago (in 2018). I used it to develop some code for a 6809 based project I helped AJ with.

I have two of these units. I pulled the box that says "fancy promice" down off my shelf. This contains my dual unit along with various cables. The unit runs from a 9 volt DC wall wart (which was in the box). It has a 9 pin D connector for the serial connection. I locate a USB to serial gadget and plug it into my linux system. It contains some FTDI chip and linux sets it up as ttyUSB0. I plug in the promice, hook things up and fire up loadice:

LoadICE Version 2.5-tjt 12-22-2018
Copyright (C) 1990-1994 Grammar Engine, Inc.
Opening command file 'loadice.ini'
File not found 'loadice.ini' - proceeding
Entering dialog mode
Establishing link with PROMICE (please WAIT)
Opening serial device '/dev/ttyUSB0' at 19200 Baud
-ERROR: 13 - Device I/O error
-ERROR-STRING: `baud=19200`
-SYSTEM ERROR:
: Permission denied
Exiting LoadICE
It takes me some time to figure out what is wrong. The above error messages are confusing and misleading. The problem is permissions with the USB serial device. Loadice simply can't open the serial port device.

I need to add "tom" to the dialout group by editing /etc/group on the linux system. Then I need to log out and back in again. After doing this, I can run "loadice" as tom and get:

LoadICE Version 2.5-tjt 12-22-2018
Copyright (C) 1990-1994 Grammar Engine, Inc.
Opening command file 'loadice.ini'
File not found 'loadice.ini' - proceeding
Entering dialog mode
Establishing link with PROMICE (please WAIT)
Opening serial device '/dev/ttyUSB0' at 19200 Baud
.Link is up
 PROMICE units:
  ID 0 uCVer:8.2B MemSize=2097152 EmuSize=2097152 FillChar=FF
  ID 1 uCVer:8.2B MemSize=2097152 EmuSize=2097152 FillChar=FF
04: LoadICE:
This indeed is a fancy dual unit (hence the two lines above) and each "ID" has 2M of emulation ram.

Set up the unit for the Sun 3/160 rom

I have the image that I read out from the chip on my 3/160 board. The chip is a 27C512 and hence the image is 64K in size. The 27C512 is a 28 pin chip, so the jumper on the PROMice should be set to "28".
To load the image, we do this:
loadice -i sun3160.bin
LoadICE Version 2.5-tjt 12-22-2018
Copyright (C) 1990-1994 Grammar Engine, Inc.
Opening command file 'loadice.ini'
File not found 'loadice.ini' - proceeding
Executing command line '-i sun3160.bin'
Establishing link with PROMICE (please WAIT)
Opening serial device '/dev/ttyUSB0' at 19200 Baud
.Link is up
 PROMICE units:
  ID 0 uCVer:8.2B MemSize=2097152 EmuSize=2097152 FillChar=FF
  ID 1 uCVer:8.2B MemSize=2097152 EmuSize=2097152 FillChar=FF
Opening file `sun3160.bin` for processing
--Done
Transferred 65536 (0x10000) data bytes
Exiting LoadICE
It takes about 30 seconds at 19200 baud.

We should try this eventually with the promice plugged into the 3/160 rom socket and verify that it properly runs to stock bootrom code.

Baud rate

Strangely the manual says that unix can use up to 19200. 38400 is not supported. Windows can use 57600.

Indeed, I have tried using 57600 via picocom on unix and it does not work (although picocom is happy to set the 57600 baud rate).

B57600 is now supported under linux, so if this can work under windows, I can't imagine why it couldn't work under linux these days, but this will take some work with the loadice source code.

Just firing up picocom works at 19200, but not at 57600, nor does it work at 9600. So it seems that the unit powers up at 19200. Some command must need to be sent (at 19200) to tell the unit to change baud rate. This would be worthwhile work for the future as running at 57600 would speed things up by a factor of 3.


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org