Skip to content

travisgoodspeed/mk51fx2500

Repository files navigation

Howdy y'all,

These are the ROM photographs of the Casio FX2500 and its clone, the Электроника МК51. All bits are marked, and these have documented decoding settings in Mask Rom Tool.

See my article on page 32 of pocorgtfo22.pdf for details of the photography.

Tomek Malesinski has a repository on mk51fx2500re, that includes a functioning emulator and documentation of the chip and its instructions. mk51fx2500rom contains his decoder for the ROM images. He was the first to reverse engineer both the bit ordering and the instruction set.

Tomek's decoder script works like this, taking the ASCII-ordered bits and shuffling them into an array of words. In MaskRomTool and GatoROM, this is -w 22 --decode-cols-downl -i; or, 22 bits words, cols-downl decoder with inverted bits and no rotations.

for i, line in enumerate(f.readlines()):
    line = line.strip()
    assert len(line) == 16 * 22, len(line)
    for r in range(16):
        code[64 * r + i] = (int(line[r::16][::-1], base=2) ^
                            ((1 << 22) - 1))

To produce your own decodings, first install Mask Rom Tool to your $PATH and then run make clean all. You can also export the words from the MaskRomTool GUI, producing 24-bit little endian files of the 22-bit ROM words.

If you just want a binary, see PREBUILT.TXT and PREBUILT.BIN.

--Travis Goodspeed

About

ROM photos of the Casio FX-2500 and Элекетроника МК51 calculators.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published