Skip to content

nmc93cxx: Rewrite the nmc93cxx emulation#6751

Merged
OBattler merged 8 commits into
86Box:masterfrom
disean:nmc93cxx_rewrite
Jan 25, 2026
Merged

nmc93cxx: Rewrite the nmc93cxx emulation#6751
OBattler merged 8 commits into
86Box:masterfrom
disean:nmc93cxx_rewrite

Conversation

@disean

@disean disean commented Jan 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Details before qle

This patch rewrites the nmc93cxx emulation code. The primary aim of the rewrite is to fix the Qlogic 1080 BIOS v1.11 flashing feature (the card utilizes a 93C56 chip in 128x16 mode). This work is derived from the MAME serial EEPROM emulation code written by Aaron Giles and published under BSD-3-Clause license. https://github.com/mamedev/mame/blob/master/src/devices/machine/eepromser.cpp

The code is modelled on the MAME code with the following differences:

  • Removed support for the ER5911 and MSM16911 EEPROM devices.
  • Removed support for the X24C44 NOVRAM device.
  • Removed support for the Seiko S-29X90 EEPROM devices.

The 86Box changes:

  • The nmc93cxx code now also supports EEPROM devices in 8-bit mode.
  • Make the default_content parameter optional.
  • Make the nmc93cxx_eeprom_data function to return a const pointer.

Testing:

  • qla1080 BIOS (read ok, write ok)
  • qla1080 NT5.1 driver (read ok)
  • tulip NDIS 5.0 driver (read ok)
  • tulip Puppy 4.3.1 Linux (read ok)
  • rtl8139 NDIS 5.0 driver (read ok)
  • rtl8139 Puppy 4.3.1 Linux (read ok)
  • Anything else?

Checklist

  • I have tested my changes locally and validated that the functionality works as intended
  • I have discussed this with core contributors already
  • This pull request requires changes to the ROM set
  • This pull request requires changes to the asset set

BlueRain-debug and others added 7 commits January 25, 2026 11:21
Currently translated at 100.0% (1004 of 1004 strings)

Translation: 86Box/86Box
Translate-URL: https://weblate.86box.net/projects/86box/86box/zh_Hans/
This patch rewrites the nmc93cxx emulation code.
The primary aim of the rewrite is to fix the Qlogic 1080 BIOS v1.11 flashing feature
(the card utilizes a 93C56 chip in 128x16 mode).

This work is derived from the MAME serial EEPROM emulation code
written by Aaron Giles and published under BSD-3-Clause license.
https://github.com/mamedev/mame/blob/master/src/devices/machine/eepromser.cpp

The code is modelled on the MAME code with the following differences:
- Removed support for the ER5911 and MSM16911 EEPROM devices.
- Removed support for the X24C44 NOVRAM device.
- Removed support for the Seiko S-29X90 EEPROM devices.

The 86Box changes:
- The nmc93cxx code now also supports EEPROM devices in 8-bit mode.
- Make the default_content parameter optional.
- Make the nmc93cxx_eeprom_data function to return a const pointer.
Comment thread src/mem/nmc93cxx.c
fill_default = !fread(dev->array_data, dev->data_bits / 8, dev->cells, fp);
fclose(fp);
}
if (fill_default && params_details->default_content) {

Check failure

Code scanning / CodeQL

Multiplication result converted to larger type High

Multiplication result may overflow 'int' before it is converted to 'unsigned long'.
@OBattler OBattler merged commit 78e763b into 86Box:master Jan 25, 2026
22 of 45 checks passed
@disean disean deleted the nmc93cxx_rewrite branch January 25, 2026 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants