mirror of
https://github.com/86Box/86Box.git
synced 2026-02-23 18:08:20 -07:00
Merge remote-tracking branch 'upstream/master' into feature/mtrr
This commit is contained in:
@@ -55,6 +55,14 @@
|
||||
#define BCD16(x) ((((x) / 1000) << 12) | (((x) / 100) << 8) | BCD8(x))
|
||||
#define BCD32(x) ((((x) / 10000000) << 28) | (((x) / 1000000) << 24) | (((x) / 100000) << 20) | (((x) / 10000) << 16) | BCD16(x))
|
||||
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
# define UNLIKELY(x) __builtin_expect((x), 0)
|
||||
# define LIKELY(x) __builtin_expect((x), 1)
|
||||
#else
|
||||
# define UNLIKELY(x) (x)
|
||||
# define LIKELY(x) (x)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -121,7 +129,8 @@ extern uint32_t mem_size; /* (C) memory size (Installed on system board)
|
||||
extern uint32_t isa_mem_size; /* (C) memory size (ISA Memory Cards) */
|
||||
extern int cpu, /* (C) cpu type */
|
||||
cpu_use_dynarec, /* (C) cpu uses/needs Dyna */
|
||||
fpu_type; /* (C) fpu type */
|
||||
fpu_type, /* (C) fpu type */
|
||||
fpu_softfloat; /* (C) fpu uses softfloat */
|
||||
extern int time_sync; /* (C) enable time sync */
|
||||
extern int hdd_format_type; /* (C) hard disk file format */
|
||||
extern int confirm_reset, /* (C) enable reset confirmation */
|
||||
|
||||
@@ -57,21 +57,24 @@
|
||||
#define CONFIG_SERPORT 12
|
||||
|
||||
enum {
|
||||
DEVICE_PCJR = 2, /* requires an IBM PCjr */
|
||||
DEVICE_AT = 4, /* requires an AT-compatible system */
|
||||
DEVICE_PS2 = 8, /* requires a PS/1 or PS/2 system */
|
||||
DEVICE_ISA = 0x10, /* requires the ISA bus */
|
||||
DEVICE_CBUS = 0x20, /* requires the C-BUS bus */
|
||||
DEVICE_MCA = 0x40, /* requires the MCA bus */
|
||||
DEVICE_EISA = 0x80, /* requires the EISA bus */
|
||||
DEVICE_VLB = 0x100, /* requires the PCI bus */
|
||||
DEVICE_PCI = 0x200, /* requires the VLB bus */
|
||||
DEVICE_AGP = 0x400, /* requires the AGP bus */
|
||||
DEVICE_AC97 = 0x800, /* requires the AC'97 bus */
|
||||
DEVICE_COM = 0x1000, /* requires a serial port */
|
||||
DEVICE_LPT = 0x2000, /* requires a parallel port */
|
||||
DEVICE_PCJR = 2, /* requires an IBM PCjr */
|
||||
DEVICE_AT = 4, /* requires an AT-compatible system */
|
||||
DEVICE_PS2 = 8, /* requires a PS/1 or PS/2 system */
|
||||
DEVICE_ISA = 0x10, /* requires the ISA bus */
|
||||
DEVICE_CBUS = 0x20, /* requires the C-BUS bus */
|
||||
DEVICE_MCA = 0x40, /* requires the MCA bus */
|
||||
DEVICE_EISA = 0x80, /* requires the EISA bus */
|
||||
DEVICE_VLB = 0x100, /* requires the PCI bus */
|
||||
DEVICE_PCI = 0x200, /* requires the VLB bus */
|
||||
DEVICE_AGP = 0x400, /* requires the AGP bus */
|
||||
DEVICE_AC97 = 0x800, /* requires the AC'97 bus */
|
||||
DEVICE_COM = 0x1000, /* requires a serial port */
|
||||
DEVICE_LPT = 0x2000, /* requires a parallel port */
|
||||
DEVICE_KBC = 0x4000, /* is a keyboard controller */
|
||||
|
||||
DEVICE_EXTPARAMS = 0x40000000 /* accepts extended parameters */
|
||||
DEVICE_EXTPARAMS = 0x40000000, /* accepts extended parameters */
|
||||
|
||||
DEVICE_ALL = 0xffffffff /* match all devices */
|
||||
};
|
||||
|
||||
#define BIOS_NORMAL 0
|
||||
@@ -171,8 +174,7 @@ extern void *device_cadd_inst_parameters(const device_t *d, const device_t *cd,
|
||||
extern void device_cadd_inst_ex(const device_t *d, const device_t *cd, void *priv, int inst);
|
||||
extern void device_cadd_inst_ex_parameters(const device_t *d, const device_t *cd, void *priv, int inst, void *params);
|
||||
extern void device_close_all(void);
|
||||
extern void device_reset_all(void);
|
||||
extern void device_reset_all_pci(void);
|
||||
extern void device_reset_all(uint32_t match_flags);
|
||||
extern void *device_get_priv(const device_t *d);
|
||||
extern int device_available(const device_t *d);
|
||||
extern int device_poll(const device_t *d, int x, int y, int z, int b);
|
||||
|
||||
@@ -30,26 +30,26 @@ typedef void *ini_t;
|
||||
typedef void *ini_section_t;
|
||||
|
||||
extern ini_t ini_new(void);
|
||||
extern ini_t ini_read(char *fn);
|
||||
extern void ini_write(ini_t ini, char *fn);
|
||||
extern ini_t ini_read(const char *fn);
|
||||
extern void ini_write(ini_t ini, const char *fn);
|
||||
extern void ini_dump(ini_t ini);
|
||||
extern void ini_close(ini_t ini);
|
||||
|
||||
extern void ini_section_delete_var(ini_section_t section, char *name);
|
||||
extern int ini_section_get_int(ini_section_t section, char *name, int def);
|
||||
extern double ini_section_get_double(ini_section_t section, char *name, double def);
|
||||
extern int ini_section_get_hex16(ini_section_t section, char *name, int def);
|
||||
extern int ini_section_get_hex20(ini_section_t section, char *name, int def);
|
||||
extern int ini_section_get_mac(ini_section_t section, char *name, int def);
|
||||
extern char *ini_section_get_string(ini_section_t section, char *name, char *def);
|
||||
extern wchar_t *ini_section_get_wstring(ini_section_t section, char *name, wchar_t *def);
|
||||
extern void ini_section_set_int(ini_section_t section, char *name, int val);
|
||||
extern void ini_section_set_double(ini_section_t section, char *name, double val);
|
||||
extern void ini_section_set_hex16(ini_section_t section, char *name, int val);
|
||||
extern void ini_section_set_hex20(ini_section_t section, char *name, int val);
|
||||
extern void ini_section_set_mac(ini_section_t section, char *name, int val);
|
||||
extern void ini_section_delete_var(ini_section_t section, const char *name);
|
||||
extern int ini_section_get_int(ini_section_t section, const char *name, int def);
|
||||
extern double ini_section_get_double(ini_section_t section, const char *name, double def);
|
||||
extern int ini_section_get_hex16(ini_section_t section, const char *name, int def);
|
||||
extern int ini_section_get_hex20(ini_section_t section, const char *name, int def);
|
||||
extern int ini_section_get_mac(ini_section_t section, const char *name, int def);
|
||||
extern char *ini_section_get_string(ini_section_t section, const char *name, char *def);
|
||||
extern wchar_t *ini_section_get_wstring(ini_section_t section, const char *name, wchar_t *def);
|
||||
extern void ini_section_set_int(ini_section_t section, const char *name, int val);
|
||||
extern void ini_section_set_double(ini_section_t section, const char *name, double val);
|
||||
extern void ini_section_set_hex16(ini_section_t section, const char *name, int val);
|
||||
extern void ini_section_set_hex20(ini_section_t section, const char *name, int val);
|
||||
extern void ini_section_set_mac(ini_section_t section, const char *name, int val);
|
||||
extern void ini_section_set_string(ini_section_t section, const char *name, const char *val);
|
||||
extern void ini_section_set_wstring(ini_section_t section, char *name, wchar_t *val);
|
||||
extern void ini_section_set_wstring(ini_section_t section, const char *name, wchar_t *val);
|
||||
|
||||
#define ini_delete_var(ini, head, name) ini_section_delete_var(ini_find_section(ini, head), name)
|
||||
|
||||
@@ -69,13 +69,13 @@ extern void ini_section_set_wstring(ini_section_t section, char *name, wchar
|
||||
#define ini_set_string(ini, head, name, val) ini_section_set_string(ini_find_or_create_section(ini, head), name, val)
|
||||
#define ini_set_wstring(ini, head, name, val) ini_section_set_wstring(ini_find_or_create_section(ini, head), name, val)
|
||||
|
||||
extern ini_section_t ini_find_section(ini_t ini, char *name);
|
||||
extern ini_section_t ini_find_or_create_section(ini_t ini, char *name);
|
||||
extern void ini_rename_section(ini_section_t section, char *name);
|
||||
extern ini_section_t ini_find_section(ini_t ini, const char *name);
|
||||
extern ini_section_t ini_find_or_create_section(ini_t ini, const char *name);
|
||||
extern void ini_rename_section(ini_section_t section, const char *name);
|
||||
extern void ini_delete_section_if_empty(ini_t ini, ini_section_t section);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -27,27 +27,33 @@ enum {
|
||||
DEV_AUX
|
||||
};
|
||||
|
||||
enum {
|
||||
DEV_STATE_MAIN_1 = 0,
|
||||
DEV_STATE_MAIN_OUT,
|
||||
DEV_STATE_MAIN_2,
|
||||
DEV_STATE_MAIN_CMD,
|
||||
DEV_STATE_MAIN_WANT_IN,
|
||||
DEV_STATE_MAIN_IN
|
||||
};
|
||||
|
||||
/* Used by the AT / PS/2 keyboard controller, common device, keyboard, and mouse. */
|
||||
typedef struct {
|
||||
uint8_t wantcmd, dat, pad, pad0;
|
||||
uint8_t wantcmd, dat;
|
||||
|
||||
int out_new;
|
||||
int16_t out_new;
|
||||
|
||||
void *priv;
|
||||
|
||||
void (*poll)(void *priv);
|
||||
} kbc_port_t;
|
||||
} kbc_at_port_t;
|
||||
|
||||
/* Used by the AT / PS/2 common device, keyboard, and mouse. */
|
||||
typedef struct {
|
||||
const char *name; /* name of this device */
|
||||
|
||||
uint8_t type, inst, command, wantdata,
|
||||
last_scan_code, state, resolution, rate,
|
||||
cmd_queue_start, cmd_queue_end, queue_start, queue_end;
|
||||
|
||||
/* 6 bytes needed for mouse */
|
||||
uint8_t last_data[6];
|
||||
uint8_t type, command, last_scan_code, state,
|
||||
resolution, rate, cmd_queue_start, cmd_queue_end,
|
||||
queue_start, queue_end;
|
||||
|
||||
uint16_t flags;
|
||||
|
||||
@@ -65,7 +71,7 @@ typedef struct {
|
||||
void (*process_cmd)(void *priv);
|
||||
void (*execute_bat)(void *priv);
|
||||
|
||||
kbc_port_t *port;
|
||||
kbc_at_port_t *port;
|
||||
} atkbc_dev_t;
|
||||
|
||||
typedef struct {
|
||||
@@ -188,7 +194,7 @@ extern int mouse_queue_start, mouse_queue_end;
|
||||
extern int mouse_cmd_queue_start, mouse_cmd_queue_end;
|
||||
extern int mouse_scan;
|
||||
|
||||
extern kbc_port_t *kbc_ports[2];
|
||||
extern kbc_at_port_t *kbc_at_ports[2];
|
||||
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t keyboard_pc_device;
|
||||
@@ -219,7 +225,6 @@ extern const device_t keyboard_ps2_ami_device;
|
||||
extern const device_t keyboard_ps2_tg_ami_device;
|
||||
extern const device_t keyboard_ps2_tg_ami_green_device;
|
||||
extern const device_t keyboard_ps2_olivetti_device;
|
||||
extern const device_t keyboard_ps2_mca_device;
|
||||
extern const device_t keyboard_ps2_mca_2_device;
|
||||
extern const device_t keyboard_ps2_quadtel_device;
|
||||
extern const device_t keyboard_ps2_pci_device;
|
||||
@@ -228,6 +233,8 @@ extern const device_t keyboard_ps2_intel_ami_pci_device;
|
||||
extern const device_t keyboard_ps2_acer_pci_device;
|
||||
extern const device_t keyboard_ps2_ali_pci_device;
|
||||
extern const device_t keyboard_ps2_tg_ami_pci_device;
|
||||
|
||||
extern const device_t keyboard_at_generic_device;
|
||||
#endif /*EMU_DEVICE_H*/
|
||||
|
||||
extern void keyboard_init(void);
|
||||
@@ -249,14 +256,10 @@ extern int keyboard_isfsexit_down(void);
|
||||
extern int keyboard_ismsexit(void);
|
||||
extern void keyboard_set_is_amstrad(int ams);
|
||||
|
||||
extern void keyboard_at_adddata_mouse(uint8_t val);
|
||||
extern void keyboard_at_adddata_mouse_cmd(uint8_t val);
|
||||
extern void keyboard_at_mouse_reset(void);
|
||||
extern uint8_t keyboard_at_mouse_pos(void);
|
||||
extern void keyboard_at_set_mouse(void (*mouse_write)(uint8_t val, void *), void *);
|
||||
extern void keyboard_at_set_a20_key(int state);
|
||||
extern void keyboard_at_reset(void);
|
||||
extern void kbc_at_a20_reset(void);
|
||||
extern uint8_t kbc_at_dev_queue_pos(atkbc_dev_t *dev, uint8_t main);
|
||||
extern void kbc_at_dev_queue_add(atkbc_dev_t *dev, uint8_t val, uint8_t main);
|
||||
extern void kbc_at_dev_reset(atkbc_dev_t *dev, int do_fa);
|
||||
extern atkbc_dev_t *kbc_at_dev_init(uint8_t inst);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -772,6 +772,7 @@ extern int machine_ps2_model_65sx_init(const machine_t *);
|
||||
extern int machine_ps2_model_70_type3_init(const machine_t *);
|
||||
extern int machine_ps2_model_80_init(const machine_t *);
|
||||
extern int machine_ps2_model_80_axx_init(const machine_t *);
|
||||
extern int machine_ps2_model_70_type4_init(const machine_t *);
|
||||
|
||||
/* m_tandy.c */
|
||||
extern int tandy1k_eeprom_read(void);
|
||||
|
||||
@@ -80,6 +80,8 @@ extern void mouse_poll(void);
|
||||
|
||||
extern void mouse_bus_set_irq(void *priv, int irq);
|
||||
|
||||
extern void mouse_set_sample_rate(double new_rate);
|
||||
|
||||
extern char *mouse_get_name(int mouse);
|
||||
extern char *mouse_get_internal_name(int mouse);
|
||||
extern int mouse_get_from_internal_name(char *s);
|
||||
|
||||
@@ -185,19 +185,20 @@
|
||||
#ifdef USE_DYNAREC
|
||||
# define IDC_CHECK_DYNAREC 1017
|
||||
#endif
|
||||
#define IDC_MEMTEXT 1018
|
||||
#define IDC_MEMSPIN 1019
|
||||
#define IDC_CHECK_SOFTFLOAT 1018
|
||||
#define IDC_MEMTEXT 1019
|
||||
#define IDC_MEMSPIN 1020
|
||||
#define IDC_TEXT_MB IDT_MB
|
||||
|
||||
#define IDC_VIDEO 1020 /* video config */
|
||||
#define IDC_COMBO_VIDEO 1021
|
||||
#define IDC_VIDEO_2 1022
|
||||
#define IDC_COMBO_VIDEO_2 1023
|
||||
#define IDC_CHECK_VOODOO 1024
|
||||
#define IDC_BUTTON_VOODOO 1025
|
||||
#define IDC_CHECK_IBM8514 1026
|
||||
#define IDC_CHECK_XGA 1027
|
||||
#define IDC_BUTTON_XGA 1028
|
||||
#define IDC_VIDEO 1021 /* video config */
|
||||
#define IDC_COMBO_VIDEO 1022
|
||||
#define IDC_VIDEO_2 1023
|
||||
#define IDC_COMBO_VIDEO_2 1024
|
||||
#define IDC_CHECK_VOODOO 1025
|
||||
#define IDC_BUTTON_VOODOO 1026
|
||||
#define IDC_CHECK_IBM8514 1027
|
||||
#define IDC_CHECK_XGA 1028
|
||||
#define IDC_BUTTON_XGA 1029
|
||||
|
||||
#define IDC_INPUT 1030 /* input config */
|
||||
#define IDC_COMBO_MOUSE 1031
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
extern int sound_gain;
|
||||
|
||||
#define FREQ_44100 44100
|
||||
#define FREQ_48000 48000
|
||||
#define FREQ_49716 49716
|
||||
#define FREQ_88200 88200
|
||||
#define FREQ_96000 96000
|
||||
#define FREQ_44100 44100
|
||||
#define FREQ_48000 48000
|
||||
#define FREQ_49716 49716
|
||||
#define FREQ_88200 88200
|
||||
#define FREQ_96000 96000
|
||||
|
||||
#define SOUND_FREQ FREQ_48000
|
||||
#define SOUND_FREQ FREQ_48000
|
||||
#define SOUNDBUFLEN (SOUND_FREQ / 50)
|
||||
|
||||
#define CD_FREQ FREQ_44100
|
||||
@@ -62,7 +62,7 @@ extern const device_t *sound_card_getdevice(int card);
|
||||
#endif
|
||||
extern int sound_card_has_config(int card);
|
||||
extern char *sound_card_get_internal_name(int card);
|
||||
extern int sound_card_get_from_internal_name(char *s);
|
||||
extern int sound_card_get_from_internal_name(const char *s);
|
||||
extern void sound_card_init(void);
|
||||
extern void sound_set_cd_volume(unsigned int vol_l, unsigned int vol_r);
|
||||
|
||||
|
||||
@@ -22,15 +22,36 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct usb_t usb_t;
|
||||
|
||||
/* USB device creation parameters struct */
|
||||
typedef struct
|
||||
{
|
||||
void (*raise_interrupt)(usb_t*, void*);
|
||||
void* parent_priv;
|
||||
} usb_params_t;
|
||||
|
||||
/* USB Host Controller device struct */
|
||||
typedef struct usb_t
|
||||
{
|
||||
uint8_t uhci_io[32], ohci_mmio[4096];
|
||||
uint16_t uhci_io_base;
|
||||
int uhci_enable, ohci_enable;
|
||||
uint32_t ohci_mem_base;
|
||||
mem_mapping_t ohci_mmio_mapping;
|
||||
pc_timer_t ohci_frame_timer;
|
||||
pc_timer_t ohci_port_reset_timer[2];
|
||||
|
||||
usb_params_t* usb_params;
|
||||
} usb_t;
|
||||
|
||||
/* USB endpoint device struct. Incomplete and unused. */
|
||||
typedef struct
|
||||
{
|
||||
uint16_t vendor_id;
|
||||
uint16_t device_id;
|
||||
} usb_device_t;
|
||||
|
||||
/* Global variables. */
|
||||
extern const device_t usb_device;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user