Two birds in one commit: with the introduction of shared secrets,
there is a practically-infinite amount of local switches that can be
used, by merely editing the shared secret string. As such, support
for old switch groups has been removed.
In addition to this, the multicast address for local switch has been
altered to 239.255.80.86. This ensures a hard compatibility break
with the previous code and old (albeit interim) builds of 86Box would
not attempt to receive packets with shared secrets.
This allows for a “shared secret” to be entered for a network switch,
segmenting traffic so that multiple people could use the feature
simultaneously without accidentally entering into or interfering with
each other's networks.
Takes a string specified in the configuration file (using the
net_%02i_secret key) and hashes it through SHA3-256 to prepend to each
data packet. This hash is used to compare packets on reception and
allow or discard them.
1. See above.
2. Reuse the 4k ROM with proper loading mechanism so that extended ATI modes can be used with the ATI 8514 Ultra 4k ROM (add-on).
3. Disable excess logging.
4. Apparently 8514/A bresenham line must always draw the last pixel unlike the vector lines, fixes missing pixels in some programs e.g.: calculator on Windows 3.x using 8514/A drivers.
Since the default 10.0.2.0/24 (or 10.0.3.0... etc) address can
conflict with a LAN (as it does in my case), this feature now adds the
ability to set custom network prefixes in the configuration file. I
believe this is an “advanced” usage feature (like port forwarding) and
should not be exposed in the GUI, therefore no GUI changes have been
made.
In the `[Network]` section of 86box.cfg, each of the four NICs can be
set to have a custom address like such:
```
net_01_addr = 10.80.88.0
net_02_addr = 10.82.86.0
net_03_addr = 10.84.86.0
net_04_addr = 10.85.86.0
```
The last octet of the address is effectively ignored and always set to
0 again when the configuration file is saved. Only a /24 CIDR
(netmask 255.255.255.0) is supported. IPv4 has three local-scope
ranges: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0. Finding a network
prefix within these that do not conflict with your real LAN should not
pose a problem.
The Olivetti OEM BIOS' date (06/05/99) is newer than the current one (01/18/99).
Until the actual voltage and multiplier bus speeds are found, I adjusted them to match other i440LX/EX machines. Also added a note about onboard video.
The four versions are:
- EX-1000 and 7 other early printers (including FX-80, the only Epson
available OOTB for Windows 1.03), have ESC i and ESC j.
- 9-pin ESC/P, a superset of EX-1000 besides ESC i and ESC j.
- 24-pin ESC/P in 360 DPI instead of 240.
- ESC/P 2 with raster graphics.
As for paper, four sizes: Letter, A4, Legal, B4. The former ones are
mainly for EX-800, the latter two are sideways and meant for EX-1000.
I did some other minor changes, like converting a bunch of defines to enum.
OPL3 is working, Windows 3.1 driver initializes correctly but the DAC fails to play back properly: only one set of samples plays back with silence after reloading the sample counter
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.
1. Correct some more clock bugs of the ELSA Winner NeXTSTEP/OPENSTEP third party driver (please report any regressions if possible on other stuff).
2. Line Vector command with flag 0x211x (r/w) is now more usable (not perfect yet) and fill brushes now have correct colors (but also not perfect either) in Windows 2.x' 8514/a drivers.