Added the Dell Dimension XPS Pxxx, LG IBM 440FX (MS-6106), and NEC Mate NX MA30D/23D.
This commit is contained in:
@@ -21,7 +21,7 @@ add_library(dev OBJECT bugger.c cassette.c cartridge.c hasp.c hwm.c hwm_lm75.c h
|
||||
smbus_piix4.c smbus_ali7101.c keyboard.c keyboard_xt.c
|
||||
kbc_at.c kbc_at_dev.c
|
||||
keyboard_at.c
|
||||
mouse.c mouse_bus.c mouse_serial.c mouse_ps2.c phoenix_486_jumper.c
|
||||
mouse.c mouse_bus.c mouse_serial.c mouse_ps2.c nec_mate_unk.c phoenix_486_jumper.c
|
||||
serial_passthrough.c)
|
||||
|
||||
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
|
||||
76
src/device/nec_mate_unk.c
Normal file
76
src/device/nec_mate_unk.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
* running old operating systems and software designed for IBM
|
||||
* PC systems and compatibles from 1981 through fairly recent
|
||||
* system designs based on the PCI bus.
|
||||
*
|
||||
* This file is part of the 86Box distribution.
|
||||
*
|
||||
* Implementation of the NEC Mate NX MA30D/23D Unknown Readout.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||
*
|
||||
* Copyright 2020-2023 Miran Grca.
|
||||
*/
|
||||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
#include "cpu.h"
|
||||
#include <86box/timer.h>
|
||||
#include <86box/io.h>
|
||||
#include <86box/device.h>
|
||||
#include <86box/chipset.h>
|
||||
#include <86box/plat_unused.h>
|
||||
|
||||
if ((port == 0x6b) || (port == 0x3d6d))
|
||||
ret = 0x2a;
|
||||
|
||||
static uint8_t
|
||||
nec_mate_unk_read(UNUSED(uint16_t addr), void *priv)
|
||||
{
|
||||
/* Expected by this NEC machine.
|
||||
|
||||
It writes something on ports 3D6C, 3D6D, and 3D6E, then expects to read
|
||||
2Ah from port 3D6D. Then it repeats this with ports 6A, 6B, and 6C.
|
||||
*/
|
||||
return 0x2a;
|
||||
}
|
||||
|
||||
static void
|
||||
nec_mate_unk_close(void *priv)
|
||||
{
|
||||
free(dev);
|
||||
}
|
||||
|
||||
static void *
|
||||
nec_mate_unk_init(const device_t *info)
|
||||
{
|
||||
/* We have to return something non-NULL. */
|
||||
uint8_t *dev = (uint8_t *) calloc(1, sizeof(uint8_t));
|
||||
|
||||
io_sethandler(0x006b, 0x0001, nec_mate_unk_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
io_sethandler(0x3d6d, 0x0001, nec_mate_unk_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
return dev;
|
||||
}
|
||||
|
||||
const device_t nec_mate_unk_device = {
|
||||
.name = "NEC Mate NX MA30D/23D Unknown Readout",
|
||||
.internal_name = "nec_mate_unk_jumper",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = nec_mate_unk_jumper_init,
|
||||
.close = nec_mate_unk_jumper_close,
|
||||
.reset = nec_mate_unk_jumper_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
Reference in New Issue
Block a user