More general changes and cleanups, mostly in machine/ now. Also updated SCSI and Network device drivers to use new device init method.

This commit is contained in:
waltje
2017-10-07 22:18:30 -04:00
parent 7f267bba8b
commit ffa22a216c
62 changed files with 450 additions and 570 deletions

View File

@@ -8,18 +8,18 @@
*
* CPU type handler.
*
* Version: @(#)cpu.h 1.0.0 2017/05/30
* Version: @(#)cpu.h 1.0.1 2017/10/07
*
* Author: Sarah Walker, <http://pcem-emulator.co.uk/>
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* leilei,
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 leilei.
* Copyright 2016-2017 Miran Grca.
* Copyright 2016,2017 Miran Grca.
*/
#ifndef _CPU_H_
#define _CPU_H_
#ifndef EMU_CPU_H
# define EMU_CPU_H
extern int cpu, cpu_manufacturer;
@@ -197,4 +197,5 @@ typedef struct
extern msr_t msr;
#endif
#endif /*EMU_CPU_H*/

View File

@@ -8,12 +8,15 @@
*
* Handling of the emulated machines.
*
* Version: @(#)machine.c 1.0.17 2017/10/04
* Version: @(#)machine.c 1.0.18 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
* Copyright 2017 Fred N. van Kempen.
*/
#include <stdio.h>
#include <stdint.h>
@@ -21,7 +24,6 @@
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../mem.h"
#include "../rom.h"
#include "../device.h"
@@ -29,38 +31,6 @@
#include "../floppy/fdc.h"
#include "../floppy/fdd.h"
#include "machine.h"
#include "machine_common.h"
#include "machine_amstrad.h"
#include "machine_europc.h"
#include "machine_olivetti_m24.h"
#include "machine_pcjr.h"
#include "machine_tandy.h"
#include "machine_xt.h"
#include "machine_xt_laserxt.h"
#include "machine_at.h"
#include "machine_at_ali1429.h"
#include "machine_at_commodore.h"
#include "machine_at_headland.h"
#include "machine_at_neat.h"
#include "machine_at_opti495.h"
#include "machine_at_scat.h"
#include "machine_at_wd76c10.h"
#include "machine_ps1.h"
#include "machine_ps2_isa.h"
#include "machine_ps2_mca.h"
#include "machine_at_sis_85c471.h"
#include "machine_at_sis_85c496.h"
#include "machine_at_430lx_nx.h"
#include "machine_at_430fx.h"
#include "machine_at_430hx.h"
#include "machine_at_430vx.h"
#include "machine_at_440fx.h"
#include "../video/vid_pcjr.h"
#include "../video/vid_tandy.h"
@@ -179,7 +149,7 @@ machine_init(void)
if (machines[machine].get_device)
device_add(machines[machine].get_device());
machines[machine].init();
machines[machine].init(&machines[machine]);
}

View File

@@ -8,45 +8,62 @@
*
* Handling of the emulated machines.
*
* Version: @(#)machine.h 1.0.5 2017/09/30
* Version: @(#)machine.h 1.0.6 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
* Copyright 2017 Fred N. van Kempen.
*/
#ifndef EMU_MACHINE_H
# define EMU_MACHINE_H
#define MACHINE_AT 1
#define MACHINE_PS2 2
#define MACHINE_AMSTRAD 4
#define MACHINE_OLIM24 8
#define MACHINE_HAS_HDC 16
#define MACHINE_MCA 32
#define MACHINE_PCI 64
#define MACHINE_PS2_HDD 128 // can now remove? --FvK
#define MACHINE_NEC 256
#define MACHINE_FUJITSU 512
#define MACHINE_RM 1024
/* Machine feature flags. */
#define MACHINE_PC 0x000000 /* PC architecture */
#define MACHINE_AT 0x000001 /* PC/AT architecture */
#define MACHINE_PS2 0x000002 /* PS/2 architecture */
#define MACHINE_ISA 0x000010 /* machine has ISA bus */
#define MACHINE_EISA 0x000020 /* machine has EISA bus */
#define MACHINE_VLB 0x000040 /* machine has VL bus */
#define MACHINE_MCA 0x000080 /* machine has MCA bus */
#define MACHINE_PCI 0x000100 /* machine has PCI */
#define MACHINE_AGP 0x000200 /* machine has AGP */
#define MACHINE_HAS_HDC 0x001000 /* machine has internal HDC */
#define MACHINE_PS2_HDD 0x002000 // can now remove? --FvK
#define MACHINE_NEC 0x010000
#define MACHINE_FUJITSU 0x020000
#define MACHINE_AMSTRAD 0x040000
#define MACHINE_OLIM24 0x080000
#define MACHINE_RM 0x100000
typedef struct {
typedef struct _machine_ {
char name[64];
int id;
char internal_name[24];
struct {
char name[16];
#ifdef EMU_CPU_H
CPU *cpus;
#else
void *cpus;
#endif
} cpu[5];
int fixed_gfxcard;
int flags;
int min_ram, max_ram;
int ram_granularity;
int nvrmask;
void (*init)(void);
void (*init)(struct _machine_ *);
#ifdef EMU_DEVICE_H
device_t *(*get_device)(void);
#else
void *get_device;
#endif
} machine_t;
@@ -63,7 +80,9 @@ extern char *machine_getname(void);
extern char *machine_get_internal_name(void);
extern int machine_get_machine_from_internal_name(char *s);
extern void machine_init(void);
#ifdef EMU_DEVICE_H
extern device_t *machine_getdevice(int machine);
#endif
extern int machine_getromset_ex(int m);
extern char *machine_get_internal_name_ex(int m);
extern int machine_get_nvrmask(int m);
@@ -76,4 +95,72 @@ extern mouse_t mouse_olim24;
#endif
/* Initialization functions for boards and systems. */
extern void machine_common_init(machine_t *);
extern void machine_at_init(machine_t *);
extern void machine_at_ide_init(machine_t *);
extern void machine_at_top_remap_init(machine_t *);
extern void machine_at_ide_top_remap_init(machine_t *);
extern void machine_at_p54tp4xe_init(machine_t *);
extern void machine_at_endeavor_init(machine_t *);
extern void machine_at_zappa_init(machine_t *);
extern void machine_at_mb500n_init(machine_t *);
extern void machine_at_president_init(machine_t *);
extern void machine_at_thor_init(machine_t *);
extern void machine_at_acerm3a_init(machine_t *);
extern void machine_at_acerv35n_init(machine_t *);
extern void machine_at_ap53_init(machine_t *);
extern void machine_at_p55t2p4_init(machine_t *);
extern void machine_at_p55t2s_init(machine_t *);
extern void machine_at_batman_init(machine_t *);
extern void machine_at_plato_init(machine_t *);
extern void machine_at_p55tvp4_init(machine_t *);
extern void machine_at_i430vx_init(machine_t *);
extern void machine_at_p55va_init(machine_t *);
extern void machine_at_i440fx_init(machine_t *);
extern void machine_at_s1668_init(machine_t *);
extern void machine_at_ali1429_init(machine_t *);
extern void machine_at_cmdpc_init(machine_t *);
extern void machine_at_headland_init(machine_t *);
extern void machine_at_neat_init(machine_t *);
extern void machine_at_opti495_init(machine_t *);
extern void machine_at_scat_init(machine_t *);
extern void machine_at_dtk486_init(machine_t *);
extern void machine_at_r418_init(machine_t *);
extern void machine_at_wd76c10_init(machine_t *);
extern void machine_ps1_m2011_init(machine_t *);
extern void machine_ps1_m2121_init(machine_t *);
extern void machine_ps1_m2133_init(machine_t *);
extern void machine_ps2_m30_286_init(machine_t *);
extern void machine_ps2_model_50_init(machine_t *);
extern void machine_ps2_model_55sx_init(machine_t *);
extern void machine_ps2_model_80_init(machine_t *);
extern void machine_ps2_model_80_486_init(machine_t *);
extern void machine_amstrad_init(machine_t *);
extern void machine_europc_init(machine_t *);
extern void machine_olim24_init(machine_t *);
extern void machine_pcjr_init(machine_t *);
extern void machine_tandy1k_init(machine_t *);
extern void machine_tandy1ksl2_init(machine_t *);
extern void machine_xt_init(machine_t *);
extern void machine_xt_laserxt_init(machine_t *);
#endif /*EMU_MACHINE_H*/

View File

@@ -4,7 +4,6 @@
#include <stdlib.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../nmi.h"
#include "../mem.h"
@@ -19,7 +18,7 @@
#include "../floppy/floppy.h"
#include "../floppy/fdd.h"
#include "../floppy/fdc.h"
#include "machine_common.h"
#include "machine.h"
static uint8_t amstrad_dead;
@@ -136,11 +135,13 @@ static void amstrad_init(void)
}
void machine_amstrad_init(void)
void
machine_amstrad_init(machine_t *model)
{
AMSTRAD = 1;
machine_common_init();
machine_common_init(model);
mem_add_bios();
amstrad_init();
keyboard_amstrad_init();

View File

@@ -1 +0,0 @@
void machine_amstrad_init(void);

View File

@@ -15,50 +15,57 @@
#include "../lpt.h"
#include "../disk/hdc.h"
#include "../disk/hdc_ide.h"
#include "machine_common.h"
#include "machine_at.h"
#include "machine.h"
void machine_at_init(void)
void
machine_at_init(machine_t *model)
{
AT = 1;
AT = 1;
machine_common_init();
pit_set_out_func(&pit, 1, pit_refresh_timer_at);
pic2_init();
dma16_init();
machine_common_init(model);
if (lpt_enabled)
lpt2_remove();
pit_set_out_func(&pit, 1, pit_refresh_timer_at);
pic2_init();
dma16_init();
nvr_at_init(8);
if (lpt_enabled)
lpt2_remove();
keyboard_at_init();
nvr_at_init(8);
if (joystick_type != 7)
device_add(&gameport_device);
keyboard_at_init();
if (bugger_enabled)
bugger_init();
if (joystick_type != 7)
device_add(&gameport_device);
if (bugger_enabled)
bugger_init();
}
void machine_at_ide_init(void)
{
machine_at_init();
ide_init();
void
machine_at_ide_init(machine_t *model)
{
machine_at_init(model);
ide_init();
}
void machine_at_top_remap_init(void)
{
machine_at_init();
mem_remap_top_384k();
void
machine_at_top_remap_init(machine_t *model)
{
machine_at_init(model);
mem_remap_top_384k();
}
void machine_at_ide_top_remap_init(void)
{
machine_at_ide_init();
mem_remap_top_384k();
void
machine_at_ide_top_remap_init(machine_t *model)
{
machine_at_ide_init(model);
mem_remap_top_384k();
}

View File

@@ -1,4 +0,0 @@
void machine_at_init(void);
void machine_at_ide_init(void);
void machine_at_top_remap_init(void);
void machine_at_ide_top_remap_init(void);

View File

@@ -8,10 +8,11 @@
*
* Implementation of the Intel 430FX PCISet chip.
*
* Version: @(#)machine_at_430fx.c 1.0.5 2017/09/24
* Version: @(#)machine_at_430fx.c 1.0.6 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
*/
@@ -20,7 +21,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../mem.h"
#include "../memregs.h"
#include "../rom.h"
@@ -29,8 +29,7 @@
#include "../piix.h"
#include "../intel_flash.h"
#include "../sio.h"
#include "machine_at.h"
#include "machine_at_430fx.h"
#include "machine.h"
static uint8_t card_i430fx[256];
@@ -198,9 +197,11 @@ static void i430fx_init(void)
}
void machine_at_p54tp4xe_init(void)
void
machine_at_p54tp4xe_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -212,13 +213,16 @@ void machine_at_p54tp4xe_init(void)
i430fx_init();
piix3_init(7);
fdc37c665_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_endeavor_init(void)
void
machine_at_endeavor_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -231,13 +235,16 @@ void machine_at_endeavor_init(void)
i430fx_init();
piix_init(7);
pc87306_init();
device_add(&intel_flash_bxt_ami_device);
}
void machine_at_zappa_init(void)
void
machine_at_zappa_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -248,13 +255,16 @@ void machine_at_zappa_init(void)
i430fx_init();
piix_init(7);
pc87306_init();
device_add(&intel_flash_bxt_ami_device);
}
void machine_at_mb500n_init(void)
void
machine_at_mb500n_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
@@ -265,13 +275,16 @@ void machine_at_mb500n_init(void)
i430fx_init();
piix_init(7);
fdc37c665_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_president_init(void)
void
machine_at_president_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -283,13 +296,16 @@ void machine_at_president_init(void)
i430fx_init();
piix_init(7);
w83877f_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_thor_init(void)
void
machine_at_thor_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -302,5 +318,6 @@ void machine_at_thor_init(void)
i430fx_init();
piix_init(7);
pc87306_init();
device_add(&intel_flash_bxt_ami_device);
}

View File

@@ -1,23 +0,0 @@
/*
* 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.
*
* Header of the implementation of the Intel 430FX PCISet chip.
*
* Version: @(#)machine_at_430fx.h 1.0.0 2017/09/02
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
*/
void machine_at_p54tp4xe_init(void);
void machine_at_endeavor_init(void);
void machine_at_zappa_init(void);
void machine_at_mb500n_init(void);
void machine_at_president_init(void);
void machine_at_thor_init(void);

View File

@@ -8,10 +8,11 @@
*
* Implementation of the Intel 430HX PCISet chip.
*
* Version: @(#)machine_at_430hx.c 1.0.5 2017/09/24
* Version: @(#)machine_at_430hx.c 1.0.6 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
*/
@@ -20,7 +21,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../mem.h"
#include "../memregs.h"
@@ -29,8 +29,7 @@
#include "../piix.h"
#include "../intel_flash.h"
#include "../sio.h"
#include "machine_at.h"
#include "machine_at_430hx.h"
#include "machine.h"
static uint8_t card_i430hx[256];
@@ -185,9 +184,11 @@ static void i430hx_init(void)
}
void machine_at_acerm3a_init(void)
void
machine_at_acerm3a_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
powermate_memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -200,13 +201,16 @@ void machine_at_acerm3a_init(void)
i430hx_init();
piix3_init(7);
fdc37c932fr_init();
device_add(&intel_flash_bxb_device);
}
void machine_at_acerv35n_init(void)
void
machine_at_acerv35n_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
powermate_memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -219,13 +223,16 @@ void machine_at_acerv35n_init(void)
i430hx_init();
piix3_init(7);
fdc37c932fr_init();
device_add(&intel_flash_bxb_device);
}
void machine_at_ap53_init(void)
void
machine_at_ap53_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
powermate_memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -239,13 +246,16 @@ void machine_at_ap53_init(void)
i430hx_init();
piix3_init(7);
fdc37c669_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_p55t2p4_init(void)
void
machine_at_p55t2p4_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -257,13 +267,16 @@ void machine_at_p55t2p4_init(void)
i430hx_init();
piix3_init(7);
w83877f_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_p55t2s_init(void)
void
machine_at_p55t2s_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
powermate_memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -276,5 +289,6 @@ void machine_at_p55t2s_init(void)
i430hx_init();
piix3_init(7);
pc87306_init();
device_add(&intel_flash_bxt_device);
}

View File

@@ -1,22 +0,0 @@
/*
* 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.
*
* Header of the implementation of the Intel 430HX PCISet chip.
*
* Version: @(#)machine_at_430hx.h 1.0.0 2017/09/02
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
*/
void machine_at_acerm3a_init(void);
void machine_at_acerv35n_init(void);
void machine_at_ap53_init(void);
void machine_at_p55t2p4_init(void);
void machine_at_p55t2s_init(void);

View File

@@ -8,10 +8,11 @@
*
* Implementation of the Intel 430LX and 430NX PCISet chips.
*
* Version: @(#)machine_at_430lx_nx.c 1.0.5 2017/09/24
* Version: @(#)machine_at_430lx_nx.c 1.0.6 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
*/
@@ -20,7 +21,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../mem.h"
#include "../memregs.h"
#include "../rom.h"
@@ -30,8 +30,7 @@
#include "../intel_flash.h"
#include "../intel_sio.h"
#include "../sio.h"
#include "machine_at.h"
#include "machine_at_430lx_nx.h"
#include "machine.h"
static uint8_t card_i430_lx_nx[256];
@@ -210,9 +209,11 @@ static void i430nx_init(void)
}
static void machine_at_premiere_common_init(void)
static void
machine_at_premiere_common_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_2);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -224,19 +225,24 @@ static void machine_at_premiere_common_init(void)
sio_init(2);
fdc37c665_init();
intel_batman_init();
device_add(&intel_flash_bxt_ami_device);
}
void machine_at_batman_init(void)
void
machine_at_batman_init(machine_t *model)
{
machine_at_premiere_common_init();
machine_at_premiere_common_init(model);
i430lx_init();
}
void machine_at_plato_init(void)
void
machine_at_plato_init(machine_t *model)
{
machine_at_premiere_common_init();
machine_at_premiere_common_init(model);
i430nx_init();
}

View File

@@ -1,20 +0,0 @@
/*
* 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.
*
* Header of the implementation of the Intel 430LX and 430NX
* PCISet chips.
*
* Version: @(#)machine_at_430lx_nx.h 1.0.0 2017/09/02
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
*/
void machine_at_batman_init(void);
void machine_at_plato_init(void);

View File

@@ -8,10 +8,11 @@
*
* Implementation of the Intel 430VX PCISet chip.
*
* Version: @(#)machine_at_430vx.c 1.0.6 2017/09/24
* Version: @(#)machine_at_430vx.c 1.0.7 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
*/
@@ -20,7 +21,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../pci.h"
#include "../mem.h"
@@ -29,8 +29,7 @@
#include "../piix.h"
#include "../intel_flash.h"
#include "../sio.h"
#include "machine_at.h"
#include "machine_at_430vx.h"
#include "machine.h"
static uint8_t card_i430vx[256];
@@ -188,9 +187,11 @@ void i430vx_init(void)
}
void machine_at_p55tvp4_init(void)
void
machine_at_p55tvp4_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -202,13 +203,16 @@ void machine_at_p55tvp4_init(void)
i430vx_init();
piix3_init(7);
w83877f_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_i430vx_init(void)
void
machine_at_i430vx_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -220,13 +224,16 @@ void machine_at_i430vx_init(void)
i430vx_init();
piix3_init(7);
um8669f_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_p55va_init(void)
void
machine_at_p55va_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
@@ -237,5 +244,6 @@ void machine_at_p55va_init(void)
i430vx_init();
piix3_init(7);
fdc37c932fr_init();
device_add(&intel_flash_bxt_device);
}

View File

@@ -1,20 +0,0 @@
/*
* 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.
*
* Header of the implementation of the Intel 430VX PCISet chip.
*
* Version: @(#)machine_at_430vx.h 1.0.0 2017/09/02
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
*/
void machine_at_p55tvp4_init(void);
void machine_at_i430vx_init(void);
void machine_at_p55va_init(void);

View File

@@ -8,10 +8,11 @@
*
* Implementation of the Intel 440FX PCISet chip.
*
* Version: @(#)machine_at_440fx.c 1.0.5 2017/09/24
* Version: @(#)machine_at_440fx.c 1.0.6 2017/10/07
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
*/
@@ -20,7 +21,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../pci.h"
#include "../mem.h"
@@ -29,8 +29,7 @@
#include "../piix.h"
#include "../intel_flash.h"
#include "../sio.h"
#include "machine_at.h"
#include "machine_at_440fx.h"
#include "machine.h"
static uint8_t card_i440fx[256];
@@ -189,9 +188,11 @@ static void i440fx_init(void)
}
void machine_at_i440fx_init(void)
void
machine_at_i440fx_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -204,13 +205,16 @@ void machine_at_i440fx_init(void)
i440fx_init();
piix3_init(7);
fdc37c665_init();
device_add(&intel_flash_bxt_device);
}
void machine_at_s1668_init(void)
void
machine_at_s1668_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -223,5 +227,6 @@ void machine_at_s1668_init(void)
i440fx_init();
piix3_init(7);
fdc37c665_init();
device_add(&intel_flash_bxt_device);
}

View File

@@ -1,19 +0,0 @@
/*
* 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.
*
* Header of the implementation of the Intel 440FX PCISet chip.
*
* Version: @(#)machine_at_440fx.h 1.0.0 2017/09/02
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
*/
void machine_at_i440fx_init(void);
void machine_at_s1668_init(void);

View File

@@ -12,8 +12,7 @@
#include "../device.h"
#include "../disk/hdc.h"
#include "../disk/hdc_ide.h"
#include "machine_at.h"
#include "machine_at_ali1429.h"
#include "machine.h"
static int ali1429_index;
@@ -94,11 +93,14 @@ static void ali1429_init(void)
io_sethandler(0x0022, 0x0002, ali1429_read, NULL, NULL, ali1429_write, NULL, NULL, NULL);
}
void machine_at_ali1429_init(void)
void
machine_at_ali1429_init(machine_t *model)
{
ali1429_reset();
machine_at_ide_init();
machine_at_ide_init(model);
ali1429_init();
secondary_ide_check();

View File

@@ -1 +0,0 @@
void machine_at_ali1429_init(void);

View File

@@ -6,8 +6,7 @@
#include "../io.h"
#include "../lpt.h"
#include "../serial.h"
#include "machine_at.h"
#include "machine_at_commodore.h"
#include "machine.h"
static void cbm_io_write(uint16_t port, uint8_t val, void *p)
@@ -42,8 +41,11 @@ static void cbm_io_init()
io_sethandler(0x0230, 0x0001, NULL,NULL,NULL, cbm_io_write,NULL,NULL, NULL);
}
void machine_at_cmdpc_init(void)
void
machine_at_cmdpc_init(machine_t *model)
{
machine_at_ide_top_remap_init();
machine_at_ide_top_remap_init(model);
cbm_io_init();
}

View File

@@ -1 +0,0 @@
void machine_at_cmdpc_init(void);

View File

@@ -8,8 +8,7 @@
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../mem.h"
#include "machine_at.h"
#include "machine_at_compaq.h"
#include "machine.h"
/* Compaq Deskpro 386 remaps RAM from 0xA0000-0xFFFFF to 0xFA0000-0xFFFFFF */

View File

@@ -1,13 +0,0 @@
/*
* 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.
*
* Emulation of the Compaq chips.
*
* Version: @(#)machine_at_compaq.h 1.0.0 2017/09/02
*
* Author: Miran Grca, <mgrca8@gmail.com>
* Copyright 2017 Miran Grca.
*/

View File

@@ -9,8 +9,7 @@
#include "../cpu/cpu.h"
#include "../io.h"
#include "../mem.h"
#include "machine_at.h"
#include "machine_at_headland.h"
#include "machine.h"
static int headland_index;
@@ -56,8 +55,10 @@ static void headland_init(void)
}
void machine_at_headland_init(void)
void
machine_at_headland_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
headland_init();
}

View File

@@ -1 +0,0 @@
void machine_at_headland_init(void);

View File

@@ -7,10 +7,8 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "machine_at.h"
#include "machine_at_neat.h"
#include "machine.h"
static uint8_t neat_regs[256];
@@ -85,9 +83,10 @@ static void neat_init(void)
}
void machine_at_neat_init(void)
void
machine_at_neat_init(machine_t *model)
{
machine_at_init();
machine_at_init(model);
neat_init();
}

View File

@@ -1 +0,0 @@
void machine_at_neat_init(void);

View File

@@ -259,8 +259,7 @@ SeeAlso: #P0178,#P0187
#include "../cpu/cpu.h"
#include "../io.h"
#include "../mem.h"
#include "machine_at.h"
#include "machine_at_opti495.h"
#include "machine.h"
static uint8_t optiregs[0x10];
@@ -319,8 +318,10 @@ static void opti495_init(void)
}
void machine_at_opti495_init(void)
void
machine_at_opti495_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
opti495_init();
}

View File

@@ -1 +0,0 @@
void machine_at_opti495_init(void);

View File

@@ -10,10 +10,11 @@
*
* Re-worked version based on the 82C235 datasheet and errata.
*
* Version: @(#)at_scat.c 1.0.2 2017/09/24
* Version: @(#)at_scat.c 1.0.2 2017/10/07
*
* Authors: Original by GreatPsycho for PCem.
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2017 Fred N. van Kempen.
*/
#include <stdio.h>
@@ -25,8 +26,7 @@
#include "../cpu/x86.h"
#include "../io.h"
#include "../mem.h"
#include "machine_at.h"
#include "machine_at_scat.h"
#include "machine.h"
#define SCAT_DEBUG 2
@@ -757,9 +757,9 @@ scat_init(void)
void
machine_at_scat_init(void)
machine_at_scat_init(machine_t *model)
{
machine_at_init();
machine_at_init(model);
scat_init();
}

View File

@@ -1 +0,0 @@
extern void machine_at_scat_init(void);

View File

@@ -9,9 +9,10 @@
* SiS sis85c471 Super I/O Chip
* Used by DTK PKM-0038S E-2
*
* Version: @(#)sis85c471.c 1.0.6 2017/09/30
* Version: @(#)sis85c471.c 1.0.6 2017/10/07
*
* Author: Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2017 Miran Grca.
*/
#include <stdio.h>
@@ -29,8 +30,7 @@
#include "../floppy/floppy.h"
#include "../floppy/fdc.h"
#include "../floppy/fdd.h"
#include "machine_at.h"
#include "machine_at_sis_85c471.h"
#include "machine.h"
static int sis_85c471_curreg;
@@ -243,9 +243,11 @@ static void sis_85c471_init(void)
}
void machine_at_dtk486_init(void)
void
machine_at_dtk486_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
sis_85c471_init();
secondary_ide_check();

View File

@@ -1,15 +0,0 @@
/*
* 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.
*
* Emulation of the SiS 85c471 chip.
*
* Version: @(#)machine_at_sis_85c471.h 1.0.2 2017/09/02
*
* Author: Miran Grca, <mgrca8@gmail.com>
* Copyright 2017 Miran Grca.
*/
extern void machine_at_dtk486_init(void);

View File

@@ -13,8 +13,7 @@
#include "../mem.h"
#include "../memregs.h"
#include "../sio.h"
#include "machine_at.h"
#include "machine_at_sis_85c496.h"
#include "machine.h"
typedef struct sis_85c496_t
@@ -160,9 +159,11 @@ static void sis_85c496_init(void)
}
static void machine_at_sis_85c496_common_init(void)
static void
machine_at_sis_85c496_common_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
memregs_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x05, PCI_CARD_SPECIAL, 0, 0, 0, 0);
@@ -170,12 +171,15 @@ static void machine_at_sis_85c496_common_init(void)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
sis_85c496_init();
}
void machine_at_r418_init(void)
void
machine_at_r418_init(machine_t *model)
{
machine_at_sis_85c496_common_init();
machine_at_sis_85c496_common_init(model);
fdc37c665_init();
}

View File

@@ -1 +0,0 @@
extern void machine_at_r418_init(void);

View File

@@ -6,9 +6,10 @@
*
* Emulation of the SiS 50x PCI chips.
*
* Version: @(#)machine_at_sis_85c50x.c 1.0.3 2017/09/24
* Version: @(#)machine_at_sis_85c50x.c 1.0.3 2017/10/07
*
* Author: Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2017 Miran Grca.
*/
#include <stdio.h>
@@ -20,8 +21,7 @@
#include "../io.h"
#include "../pci.h"
#include "../mem.h"
#include "machine_at.h"
#include "machine_at_sis_85c50x.h"
#include "machine.h"
typedef struct sis_85c501_t

View File

@@ -1,13 +0,0 @@
/*
* 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.
*
* Emulation of the SiS 50x PCI chips.
*
* Version: @(#)machine_at_sis_85c50x.h 1.0.2 2017/09/02
*
* Author: Miran Grca, <mgrca8@gmail.com>
* Copyright 2017 Miran Grca.
*/

View File

@@ -11,8 +11,7 @@
#include "../serial.h"
#include "../floppy/floppy.h"
#include "../floppy/fdc.h"
#include "machine_at.h"
#include "machine_at_wd76c10.h"
#include "machine.h"
static uint16_t wd76c10_0092;
@@ -135,8 +134,11 @@ static void wd76c10_init(void)
wd76c10_writeb, wd76c10_write, NULL, NULL);
}
void machine_at_wd76c10_init(void)
void
machine_at_wd76c10_init(machine_t *model)
{
machine_at_ide_init();
machine_at_ide_init(model);
wd76c10_init();
}

View File

@@ -1,4 +0,0 @@
/* Copyright holders: Sarah Walker
see COPYING for more details
*/
extern void machine_at_wd76c10_init(void);

View File

@@ -11,30 +11,25 @@
#include "../floppy/floppy.h"
#include "../floppy/fdd.h"
#include "../floppy/fdc.h"
#include "machine_common.h"
#include "machine.h"
void machine_common_init(void)
void
machine_common_init(machine_t *model)
{
/* System devices first. */
dma_init();
pic_init();
pit_init();
/* System devices first. */
dma_init();
pic_init();
pit_init();
if (lpt_enabled)
{
lpt_init();
}
if (lpt_enabled)
lpt_init();
if (serial_enabled[0])
{
serial_setup(1, SERIAL1_ADDR, SERIAL1_IRQ);
}
if (serial_enabled[0])
serial_setup(1, SERIAL1_ADDR, SERIAL1_IRQ);
if (serial_enabled[1])
{
serial_setup(2, SERIAL2_ADDR, SERIAL2_IRQ);
}
if (serial_enabled[1])
serial_setup(2, SERIAL2_ADDR, SERIAL2_IRQ);
fdc_add();
fdc_add();
}

View File

@@ -1 +0,0 @@
extern void machine_common_init(void);

View File

@@ -6,7 +6,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../nmi.h"
#include "../mem.h"
@@ -16,8 +15,7 @@
#include "../game/gameport.h"
#include "../keyboard_xt.h"
#include "../lpt.h"
#include "machine_common.h"
#include "machine_europc.h"
#include "machine.h"
uint8_t europcdat[16];
@@ -132,9 +130,11 @@ static void jim_init(void)
}
void machine_europc_init(void)
void
machine_europc_init(machine_t *model)
{
machine_common_init();
machine_common_init(model);
mem_add_bios();
lpt3_init(0x3bc);
jim_init();

View File

@@ -1,3 +0,0 @@
void europc_save_nvr(void);
void machine_europc_init(void);

View File

@@ -6,7 +6,6 @@
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../cpu/cpu.h"
#include "../io.h"
#include "../nmi.h"
#include "../mem.h"
@@ -14,8 +13,7 @@
#include "../nvr.h"
#include "../game/gameport.h"
#include "../keyboard_olim24.h"
#include "machine_common.h"
#include "machine_olivetti_m24.h"
#include "machine.h"
static uint8_t olivetti_m24_read(uint16_t port, void *priv)
@@ -37,9 +35,11 @@ static void olivetti_m24_init(void)
}
void machine_olim24_init(void)
void
machine_olim24_init(machine_t *model)
{
machine_common_init();
machine_common_init(model);
mem_add_bios();
keyboard_olim24_init();

View File

@@ -1 +0,0 @@
void machine_olim24_init(void);

View File

@@ -14,10 +14,11 @@
#include "../floppy/fdc.h"
#include "../floppy/fdd.h"
#include "../sound/snd_sn76489.h"
#include "machine_pcjr.h"
#include "machine.h"
void machine_pcjr_init(void)
void
machine_pcjr_init(machine_t *model)
{
mem_add_bios();
fdc_add_pcjr();

View File

@@ -1 +0,0 @@
void machine_pcjr_init(void);

View File

@@ -25,8 +25,7 @@
#include "../floppy/fdd.h"
#include "../floppy/fdc.h"
#include "../sound/snd_ps1.h"
#include "machine_common.h"
#include "machine_ps1.h"
#include "machine.h"
static rom_t ps1_high_rom;
@@ -335,11 +334,14 @@ static void ps1mb_m2133_init(void)
mem_remap_top_384k();
}
static void machine_ps1_common_init(void)
static void
machine_ps1_common_init(machine_t *model)
{
AT = 1;
machine_common_init();
machine_common_init(model);
mem_add_bios();
pit_set_out_func(&pit, 1, pit_refresh_timer_at);
dma16_init();
@@ -361,22 +363,31 @@ static void machine_ps1_common_init(void)
device_add(&gameport_201_device);
}
void machine_ps1_m2011_init(void)
void
machine_ps1_m2011_init(machine_t *model)
{
machine_ps1_common_init();
machine_ps1_common_init(model);
ps1mb_init();
mem_remap_top_384k();
}
void machine_ps1_m2121_init(void)
void
machine_ps1_m2121_init(machine_t *model)
{
machine_ps1_common_init();
machine_ps1_common_init(model);
ps1mb_m2121_init();
fdc_set_ps1();
}
void machine_ps1_m2133_init(void)
void
machine_ps1_m2133_init(machine_t *model)
{
machine_ps1_common_init();
machine_ps1_common_init(model);
ps1mb_m2133_init();
}

View File

@@ -1,3 +0,0 @@
void machine_ps1_m2011_init(void);
void machine_ps1_m2121_init(void);
void machine_ps1_m2133_init(void);

View File

@@ -19,8 +19,7 @@
#include "../floppy/floppy.h"
#include "../floppy/fdd.h"
#include "../floppy/fdc.h"
#include "machine_common.h"
#include "machine_ps2_isa.h"
#include "machine.h"
static uint8_t ps2_92, ps2_94, ps2_102, ps2_103, ps2_104, ps2_105, ps2_190;
@@ -154,11 +153,13 @@ static void ps2board_init(void)
}
void machine_ps2_m30_286_init(void)
void
machine_ps2_m30_286_init(machine_t *model)
{
AT = 1;
machine_common_init();
machine_common_init(model);
mem_add_bios();
pit_set_out_func(&pit, 1, pit_refresh_timer_at);
dma16_init();

View File

@@ -1 +0,0 @@
void machine_ps2_m30_286_init(void);

View File

@@ -19,8 +19,7 @@
#include "../lpt.h"
#include "../mouse.h"
#include "../serial.h"
#include "machine_common.h"
#include "machine_ps2_mca.h"
#include "machine.h"
static struct
@@ -802,11 +801,14 @@ static void ps2_mca_board_model_80_type2_init()
}
}
static void machine_ps2_common_init(void)
static void
machine_ps2_common_init(machine_t *model)
{
AT = 1;
machine_common_init();
machine_common_init(model);
mem_add_bios();
dma16_init();
ps2_dma_init();
@@ -820,29 +822,37 @@ static void machine_ps2_common_init(void)
}
void machine_ps2_model_50_init(void)
void
machine_ps2_model_50_init(machine_t *model)
{
machine_ps2_common_init();
machine_ps2_common_init(model);
ps2_mca_board_model_50_init();
}
void machine_ps2_model_55sx_init(void)
void
machine_ps2_model_55sx_init(machine_t *model)
{
machine_ps2_common_init();
machine_ps2_common_init(model);
ps2_mca_board_model_55sx_init();
}
void machine_ps2_model_80_init(void)
void
machine_ps2_model_80_init(machine_t *model)
{
machine_ps2_common_init();
machine_ps2_common_init(model);
ps2_mca_board_model_80_type2_init();
}
void machine_ps2_model_80_486_init(void)
void
machine_ps2_model_80_486_init(machine_t *model)
{
machine_ps2_common_init();
machine_ps2_common_init(model);
ps2_mca_board_model_80_type2_init();
}

View File

@@ -1,4 +0,0 @@
extern void machine_ps2_model_50_init(void);
extern void machine_ps2_model_55sx_init(void);
extern void machine_ps2_model_80_init(void);
extern void machine_ps2_model_80_486_init(void);

View File

@@ -13,14 +13,16 @@
#include "../tandy_rom.h"
#include "../sound/snd_pssj.h"
#include "../sound/snd_sn76489.h"
#include "machine_common.h"
#include "machine.h"
void machine_tandy1k_init(void)
void
machine_tandy1k_init(machine_t *model)
{
TANDY = 1;
machine_common_init();
machine_common_init(model);
mem_add_bios();
keyboard_tandy_init();
if (romset == ROM_TANDY)
@@ -35,9 +37,11 @@ void machine_tandy1k_init(void)
}
void machine_tandy1ksl2_init(void)
void
machine_tandy1ksl2_init(machine_t *model)
{
machine_common_init();
machine_common_init(model);
mem_add_bios();
keyboard_tandy_init();
device_add(&pssj_device);

View File

@@ -1,2 +0,0 @@
void machine_tandy1k_init(void);
void machine_tandy1ksl2_init(void);

View File

@@ -10,13 +10,13 @@
#include "../bugger.h"
#include "../game/gameport.h"
#include "../keyboard_xt.h"
#include "machine_common.h"
#include "machine_xt.h"
#include "machine.h"
void machine_xt_init(void)
void
machine_xt_init(machine_t *model)
{
machine_common_init();
machine_common_init(model);
mem_add_bios();

View File

@@ -1 +0,0 @@
void machine_xt_init(void);

View File

@@ -7,8 +7,7 @@
#include "../cpu/cpu.h"
#include "../io.h"
#include "../mem.h"
#include "machine_xt.h"
#include "machine_xt_laserxt.h"
#include "machine.h"
static int laserxt_emspage[4];
@@ -129,8 +128,10 @@ static void laserxt_init(void)
}
void machine_xt_laserxt_init(void)
void
machine_xt_laserxt_init(machine_t *model)
{
machine_xt_init();
machine_xt_init(model);
laserxt_init();
}

View File

@@ -1 +0,0 @@
void machine_xt_laserxt_init(void);

View File

@@ -10,7 +10,7 @@
*
* NOTE: The file will also implement an NE1000 for 8-bit ISA systems.
*
* Version: @(#)net_ne2000.c 1.0.16 2017/10/05
* Version: @(#)net_ne2000.c 1.0.17 2017/10/07
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Peter Grehan, grehan@iprg.nokia.com>
@@ -1874,7 +1874,7 @@ nic_rom_init(nic_t *dev, wchar_t *s)
static void *
nic_init(int board)
nic_init(device_t *info)
{
uint32_t mac;
wchar_t *rom;
@@ -1887,7 +1887,7 @@ nic_init(int board)
dev = malloc(sizeof(nic_t));
memset(dev, 0x00, sizeof(nic_t));
dev->board = board;
dev->board = info->local;
rom = NULL;
switch(dev->board) {
case NE2K_NE1000:
@@ -2065,27 +2065,6 @@ nic_close(void *priv)
}
static void *
ne1000_init(device_t *info)
{
return(nic_init(NE2K_NE1000));
}
static void *
ne2000_init(device_t *info)
{
return(nic_init(NE2K_NE2000));
}
static void *
rtl8029as_init(device_t *info)
{
return(nic_init(NE2K_RTL8029AS));
}
static device_config_t ne1000_config[] =
{
{
@@ -2280,7 +2259,7 @@ device_t ne1000_device = {
"Novell NE1000",
0,
NE2K_NE1000,
ne1000_init, nic_close, NULL,
nic_init, nic_close, NULL,
NULL, NULL, NULL, NULL,
ne1000_config
};
@@ -2289,7 +2268,7 @@ device_t ne2000_device = {
"Novell NE2000",
DEVICE_AT,
NE2K_NE2000,
ne2000_init, nic_close, NULL,
nic_init, nic_close, NULL,
NULL, NULL, NULL, NULL,
ne2000_config
};
@@ -2298,7 +2277,7 @@ device_t rtl8029as_device = {
"Realtek RTL8029AS",
0,
NE2K_RTL8029AS,
rtl8029as_init, nic_close, NULL,
nic_init, nic_close, NULL,
NULL, NULL, NULL, NULL,
rtl8029as_config
};

View File

@@ -12,10 +12,11 @@
*
* NOTE: THIS IS CURRENTLY A MESS, but will be cleaned up as I go.
*
* Version: @(#)scsi_aha154x.c 1.0.20 2017/10/04
* Version: @(#)scsi_aha154x.c 1.0.21 2017/10/07
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Original Buslogic version by SA1988 and Miran Grca.
*
* Copyright 2017 Fred N. van Kempen.
*/
#include <stdio.h>
@@ -1994,7 +1995,7 @@ aha_setnvr(aha_t *dev)
/* General initialization routine for all boards. */
static void *
aha_init(int type)
aha_init(device_t *info)
{
aha_t *dev;
@@ -2002,7 +2003,7 @@ aha_init(int type)
dev = malloc(sizeof(aha_t));
if (dev == NULL) return(dev);
memset(dev, 0x00, sizeof(aha_t));
dev->type = type;
dev->type = info->local;
/*
* Set up the (initial) I/O address, IRQ and DMA info.
@@ -2022,7 +2023,7 @@ aha_init(int type)
#endif
/* Perform per-board initialization. */
switch(type) {
switch(dev->type) {
case AHA_154xB:
strcpy(dev->name, "AHA-154xB");
switch(dev->Base) {
@@ -2111,34 +2112,6 @@ aha_init(int type)
}
static void *
aha_154xB_init(device_t *info)
{
return(aha_init(AHA_154xB));
}
static void *
aha_154xC_init(device_t *info)
{
return(aha_init(AHA_154xC));
}
static void *
aha_154xCF_init(device_t *info)
{
return(aha_init(AHA_154xCF));
}
static void *
aha_1640_init(device_t *info)
{
return(aha_init(AHA_1640));
}
static void
aha_close(void *priv)
{
@@ -2276,55 +2249,35 @@ static device_config_t aha_154x_config[] = {
device_t aha1540b_device = {
"Adaptec AHA-1540B",
0,
0,
aha_154xB_init,
aha_close,
NULL,
NULL,
NULL,
NULL,
NULL,
0, AHA_154xB,
aha_init, aha_close, NULL,
NULL, NULL, NULL, NULL,
aha_154x_config
};
device_t aha1542c_device = {
"Adaptec AHA-1542C",
0,
0,
aha_154xC_init,
aha_close,
NULL,
NULL,
NULL,
NULL,
NULL,
AHA_154xC,
aha_init, aha_close, NULL,
NULL, NULL, NULL, NULL,
aha_154x_config
};
device_t aha1542cf_device = {
"Adaptec AHA-1542CF",
0,
0,
aha_154xCF_init,
aha_close,
NULL,
NULL,
NULL,
NULL,
NULL,
AHA_154xCF,
aha_init, aha_close, NULL,
NULL, NULL, NULL, NULL,
aha_154x_config
};
device_t aha1640_device = {
"Adaptec AHA-1640",
DEVICE_MCA,
0,
aha_1640_init,
aha_close,
NULL,
NULL,
NULL,
NULL,
AHA_1640,
aha_init, aha_close, NULL,
NULL, NULL, NULL, NULL,
NULL
};

View File

@@ -10,11 +10,12 @@
* 0 - BT-545C ISA;
* 1 - BT-958D PCI (but BT-545C ISA on non-PCI machines)
*
* Version: @(#)scsi_buslogic.c 1.0.16 2017/10/04
* Version: @(#)scsi_buslogic.c 1.0.17 2017/10/07
*
* Authors: TheCollector1995, <mariogplayer@gmail.com>
* Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2016,2017 Miran Grca.
* Copyright 2017 Fred N. van Kempen.
*/
@@ -2863,7 +2864,7 @@ BuslogicDeviceReset(void *p)
static void *
BuslogicInit(int chip)
Buslogic_Init(device_t *info)
{
Buslogic_t *bl;
wchar_t *bios_rom_name;
@@ -2879,12 +2880,12 @@ BuslogicInit(int chip)
bl = malloc(sizeof(Buslogic_t));
memset(bl, 0x00, sizeof(Buslogic_t));
if (!PCI && (chip == CHIP_BUSLOGIC_PCI))
bl->chip = info->local;
if ((bl->chip == CHIP_BUSLOGIC_PCI) && !PCI)
{
chip = CHIP_BUSLOGIC_ISA;
/* This is just wrong. Simply disallow PCI cards in non-PCI systems! */
bl->chip = CHIP_BUSLOGIC_ISA;
}
bl->chip = chip;
bl->Base = device_get_config_hex16("base");
bl->PCIBase = 0;
bl->MMIOBase = 0;
@@ -2892,7 +2893,6 @@ BuslogicInit(int chip)
bl->DmaChannel = device_get_config_int("dma");
bl->has_bios = device_get_config_int("bios");
if (bl->Base != 0) {
if (bl->chip == CHIP_BUSLOGIC_PCI) {
io_sethandler(bl->Base, 4,
@@ -3018,22 +3018,8 @@ BuslogicInit(int chip)
}
static void *
Buslogic_545C_Init(device_t *info)
{
return BuslogicInit(CHIP_BUSLOGIC_ISA);
}
static void *
Buslogic_958D_Init(device_t *info)
{
return BuslogicInit(CHIP_BUSLOGIC_PCI);
}
static void
BuslogicClose(void *p)
Buslogic_Close(void *p)
{
Buslogic_t *bl = (Buslogic_t *)p;
if (bl)
@@ -3143,27 +3129,17 @@ static device_config_t BuslogicConfig[] = {
device_t buslogic_device = {
"Buslogic BT-545C ISA",
0,
0,
Buslogic_545C_Init,
BuslogicClose,
NULL,
NULL,
NULL,
NULL,
NULL,
CHIP_BUSLOGIC_ISA,
Buslogic_Init, Buslogic_Close, NULL,
NULL, NULL, NULL, NULL,
BuslogicConfig
};
device_t buslogic_pci_device = {
"Buslogic BT-958D PCI",
0,
0,
Buslogic_958D_Init,
BuslogicClose,
NULL,
NULL,
NULL,
NULL,
NULL,
CHIP_BUSLOGIC_PCI,
Buslogic_Init, Buslogic_Close, NULL,
NULL, NULL, NULL, NULL,
BuslogicConfig
};