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.
- A global variable added as vm_name
- This variable can be filled with the `--vmname "Name"` or `-V "Name"` parameter.
- If there are no such a parameter definied this variable will filled up with the directory name.
- The Discord module displays this global variable, as VM name.
- Various 86Box managers can use this feature to display fancy VM names, instead of GUID folder names.
- This variable can be easily used later for adding cool things, like the VM name in title bar, etc.