Last modified on 2 September 2010, at 10:00


Revision as of 10:00, 2 September 2010 by Nocash (Talk | contribs)


A uPD7810/uPD7811 disassembler is included in MAME.

  • Download the complete MAME binaries from
  • Run the self-extracting MAME executable file
  • Delete all files except unidasm.exe
  • Copy unicows.dll into same directory as unidasm.exe (unicows.dll is included in the "QMP" MP3-player, for some bizarre reason unidasm.exe requires this dll, but it is unable to find it when it's located in your MP3-players directory)
  • Usage example: To disassemble the CPC printer ROMs, type this at commandline prompt:
    • unidasm dmp2000.rom -arch upd7810 -basepc 2000h >dmp2000.txt
    • unidasm nlq401.rom -arch upd7810 -basepc 0000h >nlq401.txt

Internal ROM and MODE0/MODE1 Pins

The processor exists in two versions: 7810 without internal ROM, and 7811 with 4K internal ROM. Normally, one would obviously use the ROM-less 7810 if one doesn't use the internal ROM. However, for some whatever reason, it seems to be quite common to use a 7811 with its internal ROM disabled.

The uPD781x datasheet doesn't contain useful info on how to do this, but the uPD78C1x (CMOS version) datasheet contains at least some fragments on how the MODE0 and MODE1 pins affect internal/external ROM mapping. Judging from that information, the following four combinations seem to be supported:

MODE1 MODE0 Effect Example/Usage
LOW LOW External ROM, 4K at 0000h..0FFFh (only lower 4bit of Port F used for memory access, upper 4bit can be used as I/O signals) No hardware known to use this
LOW HIGH External ROM, 16K at 0000h..3FFFh (only lower 6bit of Port F used for memory access, upper 2bit can be used as I/O signals) Schneider NLQ401 Printer (uPD7811 with internal ROM disabled)
HIGH LOW Internal ROM, 4K at 0000h..0FFFh (in this case initialization code in internal ROM can configure Port F for whatever usage by software) Amstrad DMP2000/DMP3000 Printers (uPD7811 with internal ROM enabled)
HIGH HIGH External ROM, 64K at 0000h..FFFFh (all 8bit of Port F used as memory address) Roland TR-909 Drumcomputer (uPD7811 with internal ROM disabled)

Examples for hardware that uses a uPD7811 with its internal ROM disabled: Schneider NLQ401 printer, Roland TR-909 Drumcomputer. Reportedly it can also happen that dealers are shipping uPD7811 chips when one has ordered uPD7810 chips. Unknown why that is happening (possibly the chips might do contain BIOSes that turned out to contain software bugs, or that were produced in too high quantities).


  • uPD7811G Datasheet (8bit CPU with 4096 byte ROM, 256 byte RAM, 44 I/O lines)
  • uPD78C11A Datasheet (CMOS version of uPD7811, this datasheet version includes some info fragments on MODE0/MODE1 pins)