OKI M5268 ROM


OKI M5268 ROMs are 4-bit serial ROMs with internal auto-incrementing address busses, similar to the TI VSMs in Speak and Spell, and to the TI-99's GROMs.

They are used in ROM Packs for Casio keyboards (some ROM Packs use Panasonic MN6404s instead) and at least one Casio calculator, the fx5000F.

I bought ROM Pack RO-251 and looked for a datasheet, but couldn't find one. There is some info in the Casio SK-5 and SK-8 Service Manuals, and Piotr Piatek has info on his Casio FX-700P page.

I bought a Radio Shack EC-4023 calculator, which is a Casio fx5000F clone, so I could capture the ROM signals with a logic analyzer.

Using Piotr's info and my capture, I programmed a Microchip PIC18F56K22 to dump the ROM Pack and the calculator ROM.

My PICBASIC PRO code dumps 32768 4-bit words, which outputs the ROM contents twice, indicating that the address bus is 14 bits. But the dumps from both the ROM Pack and the calculator end at 12K words, the rest being 00.

The ROM utilizes two clocks; both have 75% duty cycle and they are offset by 180 degrees. The control signals CE and OP are synced to the falling edge of C2, and the data is synced to the falling edge of C1.

To read the ROM, a command has to be sent with the CE and OP lines held low. First, an opcode of 0 is transmitted to indicate a read operation, then a 3-word address is sent, then a device code. The device code for both the ROM Pack and calculator ROMs is C. These words are all transmitted in negative logic. Each word is presented for 2 ticks of the bi-phase clock.

Then CE and OP are brought high and the clocks are toggled for a while (the calculator waits 18 clocks).

Then CE is lowered and at the next falling edge of C1 the data is available. As long as CE is kept low, consecutive ROM words are provided every 2 clocks.

Since the address field is just 12 bits, I'm not sure how to access the ROM words beyond address 4095 other than sequentially. Maybe the device code is just 2 bits, and the other 2 bits are used for addressing within the device.

I decapped the M5268 and took pictures of the die to count the bits, and the ROM does just hold 12K words: there are two arrays of 96 rows by 256 columns.

I also decapped the HD62001 microcontroller and HD61914 RAM chips from the calculator.

The following Saleae Logic captures can be viewed by downloading their software for Windows, Mac or Linux.

EC-4023 capture while pressing "1" then "FMLA"

RO-251 ROM Pack dump capture

EC-4023 ROM dump capture

My dumping code

M5268 die shots

I combined the 4-bit words into bytes, but I haven't tried to interpret the data yet, so I'm not sure if I put the words in the correct order in each byte. So each byte of the files below might need to have the top and bottom nibbles swapped.

EC-4023 ROM file

RO-251 ROM file

HD62001 die shot

HD61914 die shot


back to Decap page

back to Home page