This is a portable computer based around 80C86 processor and Chips &
Technologies chip set. It features a 640x200 monochromatic LCD display,
and up to two 720k 3.25" floppy drives.
It can optionally contain a hard drive controller along with 20M 3.25" MFM
hard drive in place of one floppy drives, which is not emulated yet.
Also not emulated is the expanded memory over 640K.
At least two versions of BIOS have been seen in the wild -- one from
89/09/04 another from 09/12/20.
The MD5 checksums of the ROM images (a pair of chips for each BIOS versions
and a character ROM) are as follows:
SHA1(ce39ab220de25bbd824dbd5c7411c88f3a8d7430) =
roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Even.rom
SHA1(9b374cf5aa48186577293c3a83250cdc1aed7c9a) =
roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Odd.rom
SHA1(57015c8b85aecb10890d4ddd4a0d133e1ba4ca49) =
roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Even.rom
SHA1(1d3217e9fde7410167cd462ad82b360bf546b9d0) =
roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Odd.rom
SHA1(59ff86fcfea479b02075c32da12c6c1579d71df5) =
roms/machines/v86p/v86pfont.rom
The 82C425 is a CGA-compatible display controller chip. On top of being
able to drive a regular CRT display like an ordinary CGA card, it can
be configured to drive a monochrome 640x200 LCD panel instead.
The chip along with a LCD panel are notably used in the Victor V86P
laptop comupter.
When driving a monochrome LCD, the controller is able to employ some clever
tricks to compensate for he lack of color: by alternately turning dots on
and off with various duty cycles it can achieve displaying 4 or 8 shades
of gray. It can also enhance contrast between the text glyphs and their
background when it's less than the configured minimum (with "SMARTMAP"
algorithm).
The emulation is fairly complete. The 320x200 graphical mode uses 4 gray
shades along with stretching the pixels horziontally much like the real
hardware would. SMARTMAP is implemented for text mode and also matches
the real hardware pretty closely.
The missing bits are:
* Configurable blink rates
* Mapping the character map into host address space
The code is based on the T1000 display controller emulation and
still bears strong resemblance to it.
This adds support for Chips & Technologies 82C606 CHIPSpak Multifunction
Controller emulation. It is similar enough to 82C710 that supporting the
82C606 is merely a matter of adding a variant to the existing code.
The 82C606 is notably used in the Victor V86P portable computer.
Compared to 82C710, the 82C606 provides neither floppy nor IDE hard
driver support. On the other hand it provides a RTC with non-volatile
CMOS RAM and a Game Port. The base addresses and interrupt lines of the
peripherals are configurable.
The 82C606 SuperIO allows reconfiguring the interrupt line used for the
UART alarm at runtime, including disabling it altogether.
While at that, correct the type in the serial_setup() prototype to be
the same as serial_t.irq uses.
CRTC14 bit 6 (standard dword mode) has the highest priority over CRTC31 bit 3 (S3 dword mode), so if the latter is enabled while the former is disabled, it's byte mode. Fixes both Duke3D, LXPIC and Win3.1 running at the same time (once and for all).
Overhauled the read portion of the PIX TRANS command (fixes white corruption in some instances while keeping everything already working fine).
Fixed Miro 10SD recalctimings issue about losing graphics mode.
DWORD mode SVGA CRTC bit fixed when S3 DWORD mode bit is enabled.
Reworked the pix tranfer register to allow a word in a byte transfer.
Added an alternative bios selection for the SPEA Mirage 801 card (3.05I and 4.01, the latter being the default now.
Added the MiroCrystal 10SD 805 VLB, Phoenix 801 ISA, MiroVideo 40SV 968 VLB/PCI, SPEA Mercury P64V 968 PCI , SPEA Mirage P64 Trio64 VLB cards.
Removed some non-working S3 cards like the Trio64V+ VLB and Elsa Winner 2000 Pro X VLB (only PCI variants of these cards are now in)