Merge branch 'master' of https://github.com/86Box/86Box
This commit is contained in:
@@ -24,6 +24,19 @@
|
||||
#define INT_FIFO_EMP (1 << 3)
|
||||
#define INT_MASK 0xf
|
||||
|
||||
typedef enum {
|
||||
IBM_8514A_TYPE = 0,
|
||||
ATI_38800_TYPE,
|
||||
ATI_68800_TYPE,
|
||||
TYPE_MAX
|
||||
} ibm8514_card_type;
|
||||
|
||||
typedef enum {
|
||||
IBM = 0,
|
||||
ATI,
|
||||
EXTENSIONS_MAX
|
||||
} ibm8514_extensions_t;
|
||||
|
||||
typedef struct hwcursor8514_t {
|
||||
int ena;
|
||||
int x;
|
||||
@@ -58,7 +71,7 @@ typedef struct ibm8514_t {
|
||||
|
||||
int force_old_addr;
|
||||
int type;
|
||||
int local;
|
||||
ibm8514_card_type local;
|
||||
int bpp;
|
||||
int on;
|
||||
int accel_bpp;
|
||||
@@ -246,7 +259,8 @@ typedef struct ibm8514_t {
|
||||
int pitch;
|
||||
int ext_pitch;
|
||||
int ext_crt_pitch;
|
||||
int extensions;
|
||||
ibm8514_extensions_t extensions;
|
||||
int onboard;
|
||||
int linear;
|
||||
uint32_t vram_amount;
|
||||
int vram_512k_8514;
|
||||
@@ -263,9 +277,9 @@ typedef struct ibm8514_t {
|
||||
|
||||
} ibm8514_t;
|
||||
|
||||
#define IBM_8514A (((dev->local & 0xff) == 0x00) && (dev->extensions == 0x00))
|
||||
#define ATI_8514A_ULTRA (((dev->local & 0xff) == 0x00) && (dev->extensions == 0x01))
|
||||
#define ATI_GRAPHICS_ULTRA ((dev->local & 0xff) == 0x01)
|
||||
#define ATI_MACH32 ((dev->local & 0xff) == 0x02)
|
||||
#define IBM_8514A (((dev->local & 0xff) == IBM_8514A_TYPE) && (dev->extensions == IBM))
|
||||
#define ATI_8514A_ULTRA (((dev->local & 0xff) == IBM_8514A_TYPE) && (dev->extensions == ATI))
|
||||
#define ATI_GRAPHICS_ULTRA ((dev->local & 0xff) == ATI_38800_TYPE)
|
||||
#define ATI_MACH32 ((dev->local & 0xff) == ATI_68800_TYPE)
|
||||
|
||||
#endif /*VIDEO_8514A_H*/
|
||||
|
||||
@@ -214,7 +214,7 @@ emu_LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
|
||||
(GetForegroundWindow() == ((HWND) secondaryRenderer->winId())));
|
||||
}
|
||||
|
||||
bool skip = ((nCode < 0) || (nCode != HC_ACTION) || !is_over_window);
|
||||
bool skip = ((nCode < 0) || (nCode != HC_ACTION) || !is_over_window || (kbd_req_capture && !mouse_capture));
|
||||
|
||||
if (skip)
|
||||
return CallNextHookEx(NULL, nCode, wParam, lParam);
|
||||
|
||||
@@ -3693,10 +3693,10 @@ ibm8514_poll(void *priv)
|
||||
|
||||
svga->render8514(svga);
|
||||
|
||||
svga->x_add = (overscan_x >> 1);
|
||||
svga->x_add = svga->left_overscan;
|
||||
ibm8514_render_overscan_left(dev, svga);
|
||||
ibm8514_render_overscan_right(dev, svga);
|
||||
svga->x_add = (overscan_x >> 1);
|
||||
svga->x_add = svga->left_overscan;
|
||||
|
||||
if (dev->hwcursor_on) {
|
||||
if (svga->hwcursor_draw)
|
||||
@@ -3796,7 +3796,7 @@ ibm8514_poll(void *priv)
|
||||
dev->dispon = 1;
|
||||
dev->displine = (dev->interlace && dev->oddeven) ? 1 : 0;
|
||||
|
||||
svga->x_add = (overscan_x >> 1);
|
||||
svga->x_add = svga->left_overscan;
|
||||
|
||||
dev->hwcursor_on = 0;
|
||||
dev->hwcursor_latch = dev->hwcursor;
|
||||
@@ -3966,7 +3966,7 @@ ibm8514_init(const device_t *info)
|
||||
bios_addr = 0xc6000;
|
||||
|
||||
switch (dev->extensions) {
|
||||
case 1:
|
||||
case ATI:
|
||||
if (rom_present(BIOS_MACH8_ROM_PATH)) {
|
||||
mach_t * mach = (mach_t *) calloc(1, sizeof(mach_t));
|
||||
svga->ext8514 = mach;
|
||||
@@ -3977,13 +3977,14 @@ ibm8514_init(const device_t *info)
|
||||
0, MEM_MAPPING_EXTERNAL);
|
||||
|
||||
ati8514_init(svga, svga->ext8514, svga->dev8514);
|
||||
mach->accel.scratch0 = ((((bios_addr >> 7) - 0x1000) >> 4));
|
||||
mach->accel.scratch0 = ((bios_addr >> 7) - 0x1000) >> 4;
|
||||
bios_rom_eeprom = mach->accel.scratch0;
|
||||
if (dev->type & DEVICE_MCA) {
|
||||
dev->pos_regs[0] = 0x88;
|
||||
dev->pos_regs[1] = 0x80;
|
||||
mach->eeprom.data[0] = 0x0000;
|
||||
mach->eeprom.data[1] = bios_rom_eeprom | ((bios_rom_eeprom | 0x01) << 8);
|
||||
ibm8514_log("EEPROM Data1=%04x.\n", mach->eeprom.data[1]);
|
||||
mca_add(ati8514_mca_read, ati8514_mca_write, ibm8514_mca_feedb, ibm8514_mca_reset, svga);
|
||||
ati_eeprom_load_mach8(&mach->eeprom, "ati8514_mca.nvr", 1);
|
||||
mem_mapping_disable(&dev->bios_rom.mapping);
|
||||
@@ -4067,12 +4068,12 @@ static const device_config_t isa_ext8514_config[] = {
|
||||
.description = "Vendor",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = NULL,
|
||||
.default_int = 0,
|
||||
.default_int = IBM,
|
||||
.file_filter = NULL,
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IBM", .value = 0 },
|
||||
{ .description = "ATI", .value = 1 },
|
||||
{ .description = "IBM", .value = IBM },
|
||||
{ .description = "ATI", .value = ATI },
|
||||
{ .description = "" }
|
||||
},
|
||||
.bios = { { 0 } }
|
||||
@@ -4127,12 +4128,12 @@ static const device_config_t mca_ext8514_config[] = {
|
||||
.description = "Vendor",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = NULL,
|
||||
.default_int = 0,
|
||||
.default_int = IBM,
|
||||
.file_filter = NULL,
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IBM", .value = 0 },
|
||||
{ .description = "ATI", .value = 1 },
|
||||
{ .description = "IBM", .value = IBM },
|
||||
{ .description = "ATI", .value = ATI },
|
||||
{ .description = "" }
|
||||
},
|
||||
.bios = { { 0 } }
|
||||
@@ -4145,7 +4146,7 @@ const device_t gen8514_isa_device = {
|
||||
.name = "IBM 8514/A clone (ISA)",
|
||||
.internal_name = "8514_isa",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0,
|
||||
.local = IBM_8514A_TYPE,
|
||||
.init = ibm8514_init,
|
||||
.close = ibm8514_close,
|
||||
.reset = NULL,
|
||||
@@ -4159,7 +4160,7 @@ const device_t ibm8514_mca_device = {
|
||||
.name = "IBM 8514/A (MCA)",
|
||||
.internal_name = "8514_mca",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 0,
|
||||
.local = IBM_8514A_TYPE,
|
||||
.init = ibm8514_init,
|
||||
.close = ibm8514_close,
|
||||
.reset = NULL,
|
||||
|
||||
@@ -7409,7 +7409,7 @@ const device_t mach8_vga_isa_device = {
|
||||
.name = "ATI Mach8 (ATI Graphics Ultra) (ISA)",
|
||||
.internal_name = "mach8_vga_isa",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 1,
|
||||
.local = ATI_38800_TYPE,
|
||||
.init = mach8_init,
|
||||
.close = mach_close,
|
||||
.reset = mach_reset,
|
||||
@@ -7423,7 +7423,7 @@ const device_t mach32_isa_device = {
|
||||
.name = "ATI Mach32 (ISA)",
|
||||
.internal_name = "mach32_isa",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 2,
|
||||
.local = ATI_68800_TYPE,
|
||||
.init = mach8_init,
|
||||
.close = mach_close,
|
||||
.reset = mach_reset,
|
||||
@@ -7437,7 +7437,7 @@ const device_t mach32_vlb_device = {
|
||||
.name = "ATI Mach32 (VLB)",
|
||||
.internal_name = "mach32_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = 2,
|
||||
.local = ATI_68800_TYPE,
|
||||
.init = mach8_init,
|
||||
.close = mach_close,
|
||||
.reset = mach_reset,
|
||||
@@ -7451,7 +7451,7 @@ const device_t mach32_mca_device = {
|
||||
.name = "ATI Mach32 (MCA)",
|
||||
.internal_name = "mach32_mca",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 2,
|
||||
.local = ATI_68800_TYPE,
|
||||
.init = mach8_init,
|
||||
.close = mach_close,
|
||||
.reset = mach_reset,
|
||||
@@ -7465,7 +7465,7 @@ const device_t mach32_pci_device = {
|
||||
.name = "ATI Mach32 (PCI)",
|
||||
.internal_name = "mach32_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 2,
|
||||
.local = ATI_68800_TYPE,
|
||||
.init = mach8_init,
|
||||
.close = mach_close,
|
||||
.reset = mach_reset,
|
||||
@@ -7479,7 +7479,7 @@ const device_t mach32_onboard_pci_device = {
|
||||
.name = "ATI Mach32 (PCI) On-Board",
|
||||
.internal_name = "mach32_pci_onboard",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 2 | 0x100,
|
||||
.local = ATI_68800_TYPE | 0x100,
|
||||
.init = mach8_init,
|
||||
.close = mach_close,
|
||||
.reset = mach_reset,
|
||||
|
||||
Reference in New Issue
Block a user