EPROM Emulator Menu Guide

Menu Guide

To see what you type enable echo in your terminal software.

The menu can be driven by software scripts such as part of a makefile.
e.g. Keir Fraser's python script (GitHub) external_link_icon_143096.png for controlling the module.

Main Menu

i - firmware info
p - program
r - program & verify
v - verify
y - copy
e - erase
f - chip erase
c - CRC32
w - switch ROM
9 - override SP GPIO
0 - override R GPIO
x - use intel HEX
o - option menu
s - service menu
a - advanced program menu
h - help
i - firmware info

Displays module hardware and firmware information.

****************************************************************
BooBip 27C200/400/800/160 EPROM emulator & ROM switcher
www.BooBip.com

Device          18.011 issue C/D
STM32 firmware  0.9 (C)2021 Chris Morley
CPLD firmware   0.10 (C)2020 Chris Morley
Firmware CRC    9dabc55d
STM32 id        dev=0x445, rev=0x1000
STM32 uid       002f000e 42504313 20323733
CPLD id         mfg=0x06e, dev=0x20a5, rev=0
FLASH id        mfg=1, dev=0xc4
EPROM type      27C400 (512KB)
ROM selected    0

Acknowledgements
Clifford Wolf. Lib(X)SVF:
  A library for implementing SVF and XSVF JTAG players.
  http://www.clifford.at/libxsvf/
p - program

Program module.

  1. Select slot/bank to program
  2. Select ROM image file size
  3. Select byte swap y/n
  4. Send binary image
r - program & verify

Same as program but also verifies the ROM image programmed correctly.

v - verify

Verify ROM slot contents. Will display success or first byte mismatch.

  1. Select slot/bank to verify
  2. Select ROM image file size
  3. Select byte swap y/n
  4. Send binary image
y - copy

Copy image from one slot to a different slot.

  1. Select slot/bank to copy from
  2. Select slot/bank to copy to
e - erase

Erase image in slot.

  1. Select slot/bank to erase
f - chip erase

Erase all slots.

  1. Confirm erase y/n
c - CRC32

Calculate and display the CRC32 of a chosen slot.

  1. Select slot/bank to CRC
  2. Select ROM size
  3. Select byte swap y/n
w - switch ROM

Select different ROM slot via USB.

  1. Select slot/bank
9/0 - override SP/r GPIO

Manually control GPIO pin SP or R on the module. Useful for scripted builds to hold machine in RESET while programming via USB.

Argument Function
n Disables GPIO override on pin
l Set GPIO pin low
z Set GPIO pin high impedance
x - use intel HEX

Switch between binary and Intel HEX file format for uploading ROM images.

Option Menu

Setup module options.

s - show summary
p - choose preset
z - ROM size
i - intial ROM
a - autosave initial
r - ROM switch pullup
w - wireless ROM switch
l - enable LED
e - address enables & pullups
c - commit options to FLASH
h - help
^ - main menu
s - show summary

Display currently selected EPROM emulator options.

                    A17 A18 A19
pull-up              n   y   y
enable               n   y   y
ROM size            27C400 512KB
intial ROM          0
autosave initial    n
ROM switch pullup   n
wireless ROM switch y
enable LED          y

pullups - are internal STM32 pull ups enabled y/n. Do not enable pull up on pin driven by external 5v signal
enables - y means STM should drive these address lines
wireless ROM switch - use wire free ROM switch mode (recommended for most installations)
enable LED - SP pad is open collector LED driver & flashes with ROM slot number (e.g. use C64 power LED)

p - choose preset

Preset wizard automatically configures options, enables and pullups. 99% of installations need this.

  1. Select ROM size (27C200/400/800/160)
  2. Select master or slave for 32bit operation
z - ROM size

Select ROM size without changing enables or pullups.

i - intial ROM

Select which ROM slot is default on power up.

a - autosave initial

Automatically remember last selected slot or always start on intial ROM.

r - ROM switch pullup

Enable/disable pullup for R GPIO pad.

Must be disabled if R pad is connected to external 5v signal or STM32 will be damaged.

Enable if switch connected between R pad and ground or R pad is left floating.

w - wireless ROM switch

Enables wire free ROM switching. Module monitors address bus and if it sees no activity it assumes the system is in RESET. Most instalations will not need a RESET line connection.

Disable to use external RESET signal connected to R pad.

To disable ROM switching completely:

  • enable ROM switch pull up
  • disable wireless ROM switch
l - enable LED

Enable SP pad open collector output to drive power LED. LED flashes on reset with ROM number.

LED should have suitable series current limiting resistor and be fed from 5v off module.

e - address enables & pullups

Manual control of address enables and address pullups. If you need to ask you don't need this! Use the preset wizard.

c - commit options to FLASH

Saves options to FLASH memory.

Service Menu

Here be dragons!

Warning commands in this menu will brick your module!

f - program CPLD firmware
! - reset to bootloader
" - option bytes force bootloader
h - help
^ - main menu

 

Advanced Programming Menu

Programming functions with more options. e.g. hi/low word splitting for 32 bit ROM

p - program
r - program & verify
v - verify
y - copy
e - erase
f - chip erase
c - CRC32
w - switch ROM
i - view
d - dump as Intel HEX
m - mirror section
9 - override SP GPIO
0 - override R GPIO
x - use intel HEX
h - help
^ - main menu
p - program

Program with advanced control.

  • partial programming
  • hi/low word splitting of 32 bit images

Command requires direct entry of hex/decimal numbers for settings. e.g. 256K or 0x10000

In partial mode the module does not automatically mirror small images to the full size of the slot. e.g. 256KB kickstart in 512KB slot.

Partial programming allows you to swap part of a ROM image without concatenating ROM files on the PC/Mac first. e.g. Swap a utility/filesystem in Acorn Master MOS image

  1. Select partial mode y/n
  2. Select slot/bank to program
  3. Select ROM image file size
  4. Select offset into slot
  5. Select byte swap y/n
  6. Select word split mode n/h/l
  7. Send binary image
i - view

View contents of ROM slot in terminal. Can be useful for checking byte swap and hi/low word selection.

e.g. Kickstart 1.3 in Motorola byte order

Command: view 27C400 (512KB)
Slot? 0-3
Offset into ROM? [0x]digits[K|M]
000000 11 11 f9 4e fc 00 d2 00 ...N....
000008 00 00 ff ff 22 00 05 00 ...."...
000010 22 00 02 00 ff ff ff ff ".......
000018 78 65 63 65 33 20 2e 34 xece3 .4
000020 20 32 32 28 20 38 63 4f  22( 8cO
000028 20 74 39 31 37 38 0d 29  t9178.)
000030 00 0a 00 00 ff ff ff ff ........
000038 0a 0d 41 0a 49 4d 41 47 ..A.IMAG
000040 52 20 4d 4f 4f 20 65 70 R MOO ep
000048 61 72 69 74 67 6e 53 20 aritgnS 
000050 73 79 65 74 20 6d 6e 61 syet mna
000058 20 64 69 4c 72 62 72 61  diLrbra
000060 65 69 0d 73 43 0a 70 6f ei.sC.po
000068 72 79 67 69 74 68 28 20 rygith( 
000070 29 43 31 20 38 39 2c 35 )C1 89,5
000078 43 20 6d 6f 6f 6d 6f 64 C moomod
000080 65 72 41 2d 69 6d 61 67 erA-imag
000088 20 2c 6e 49 2e 63 0a 0d  ,nI.c..
000090 6c 41 20 6c 69 52 68 67 lA liRhg
000098 73 74 52 20 73 65 72 65 stR sere
0000a0 65 76 2e 64 0a 0d 00 00 ev.d....
0000a8 78 65 63 65 6c 2e 62 69 xecel.bi
0000b0 61 72 79 72 00 00 fc 4a aryr...J
0000b8 fc 00 b6 00 fc 00 76 32 ......v2
0000c0 22 00 78 09 fc 00 a8 00 ".x.....
space for more

Press space to list more or other character to stop.

d - dump as Intel HEX

Dump contents of ROM slot in Intel HEX format.

  1. Select slot/bank to dump
  2. Select ROM size

Copy and paste the Intel HEX file from the terminal program to a text file. Convert to a binary again with s-record or other tool.

m - mirror section

Duplicates ROM contents to fill entire slot. e.g. 128KB image in 512KB slot will be duplicated 4 times. Allows ROM to work if all high address lines are floating.

  1. Select slot/bank to mirror
  2. Select ROM size