Cleaned up ibm.h, updated Bugger to use new UI function, misc network stuff.
This commit is contained in:
@@ -49,7 +49,7 @@ void x86abort(const char *format, ...)
|
|||||||
va_end(ap);
|
va_end(ap);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
savenvr();
|
savenvr();
|
||||||
dumpregs();
|
dumpregs(1);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
@@ -44,7 +44,7 @@
|
|||||||
* configuration register (CTRL_SPCFG bit set) but have to
|
* configuration register (CTRL_SPCFG bit set) but have to
|
||||||
* remember that stuff first...
|
* remember that stuff first...
|
||||||
*
|
*
|
||||||
* Version: @(#)bugger.c 1.0.3 2017/04/07
|
* Version: @(#)bugger.c 1.0.4 2017/05/09
|
||||||
*
|
*
|
||||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
* Copyright 1989-2017 Fred N. van Kempen.
|
* Copyright 1989-2017 Fred N. van Kempen.
|
||||||
@@ -98,10 +98,8 @@ bug_setui(void)
|
|||||||
(bug_ledr&0x08)?'R':'r', (bug_ledr&0x04)?'R':'r',
|
(bug_ledr&0x08)?'R':'r', (bug_ledr&0x04)?'R':'r',
|
||||||
(bug_ledr&0x02)?'R':'r', (bug_ledr&0x01)?'R':'r');
|
(bug_ledr&0x02)?'R':'r', (bug_ledr&0x01)?'R':'r');
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Send formatted string to the UI. */
|
/* Send formatted string to the UI. */
|
||||||
set_bugui(bug_str);
|
status_settext(bug_str);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
176
src/ibm.h
176
src/ibm.h
@@ -7,9 +7,9 @@
|
|||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#define printf pclog
|
#define printf pclog
|
||||||
|
|
||||||
|
|
||||||
/*Memory*/
|
/*Memory*/
|
||||||
uint8_t *ram;
|
uint8_t *ram;
|
||||||
|
|
||||||
uint32_t rammask;
|
uint32_t rammask;
|
||||||
|
|
||||||
int readlookup[256],readlookupp[256];
|
int readlookup[256],readlookupp[256];
|
||||||
@@ -25,32 +25,30 @@ extern int mmu_perm;
|
|||||||
#define readmemw(s,a) ((readlookup2[(uint32_t)((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF || (((s)+(a))&0xFFF)>0xFFE)?readmemwl(s,a):*(uint16_t *)(readlookup2[(uint32_t)((s)+(a))>>12]+(uint32_t)((s)+(a))))
|
#define readmemw(s,a) ((readlookup2[(uint32_t)((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF || (((s)+(a))&0xFFF)>0xFFE)?readmemwl(s,a):*(uint16_t *)(readlookup2[(uint32_t)((s)+(a))>>12]+(uint32_t)((s)+(a))))
|
||||||
#define readmeml(s,a) ((readlookup2[(uint32_t)((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF || (((s)+(a))&0xFFF)>0xFFC)?readmemll(s,a):*(uint32_t *)(readlookup2[(uint32_t)((s)+(a))>>12]+(uint32_t)((s)+(a))))
|
#define readmeml(s,a) ((readlookup2[(uint32_t)((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF || (((s)+(a))&0xFFF)>0xFFC)?readmemll(s,a):*(uint32_t *)(readlookup2[(uint32_t)((s)+(a))>>12]+(uint32_t)((s)+(a))))
|
||||||
|
|
||||||
uint8_t readmembl(uint32_t addr);
|
extern uint8_t readmembl(uint32_t addr);
|
||||||
void writemembl(uint32_t addr, uint8_t val);
|
extern void writemembl(uint32_t addr, uint8_t val);
|
||||||
uint8_t readmemb386l(uint32_t seg, uint32_t addr);
|
extern uint8_t readmemb386l(uint32_t seg, uint32_t addr);
|
||||||
void writememb386l(uint32_t seg, uint32_t addr, uint8_t val);
|
extern void writememb386l(uint32_t seg, uint32_t addr, uint8_t val);
|
||||||
uint16_t readmemwl(uint32_t seg, uint32_t addr);
|
extern uint16_t readmemwl(uint32_t seg, uint32_t addr);
|
||||||
void writememwl(uint32_t seg, uint32_t addr, uint16_t val);
|
extern void writememwl(uint32_t seg, uint32_t addr, uint16_t val);
|
||||||
uint32_t readmemll(uint32_t seg, uint32_t addr);
|
extern uint32_t readmemll(uint32_t seg, uint32_t addr);
|
||||||
void writememll(uint32_t seg, uint32_t addr, uint32_t val);
|
extern void writememll(uint32_t seg, uint32_t addr, uint32_t val);
|
||||||
uint64_t readmemql(uint32_t seg, uint32_t addr);
|
extern uint64_t readmemql(uint32_t seg, uint32_t addr);
|
||||||
void writememql(uint32_t seg, uint32_t addr, uint64_t val);
|
extern void writememql(uint32_t seg, uint32_t addr, uint64_t val);
|
||||||
|
|
||||||
uint8_t *getpccache(uint32_t a);
|
extern uint8_t *getpccache(uint32_t a);
|
||||||
|
extern uint32_t mmutranslatereal(uint32_t addr, int rw);
|
||||||
uint32_t mmutranslatereal(uint32_t addr, int rw);
|
extern void addreadlookup(uint32_t virt, uint32_t phys);
|
||||||
|
extern void addwritelookup(uint32_t virt, uint32_t phys);
|
||||||
void addreadlookup(uint32_t virt, uint32_t phys);
|
|
||||||
void addwritelookup(uint32_t virt, uint32_t phys);
|
|
||||||
|
|
||||||
|
|
||||||
/*IO*/
|
/*IO*/
|
||||||
uint8_t inb(uint16_t port);
|
extern uint8_t inb(uint16_t port);
|
||||||
void outb(uint16_t port, uint8_t val);
|
extern void outb(uint16_t port, uint8_t val);
|
||||||
uint16_t inw(uint16_t port);
|
extern uint16_t inw(uint16_t port);
|
||||||
void outw(uint16_t port, uint16_t val);
|
extern void outw(uint16_t port, uint16_t val);
|
||||||
uint32_t inl(uint16_t port);
|
extern uint32_t inl(uint16_t port);
|
||||||
void outl(uint16_t port, uint32_t val);
|
extern void outl(uint16_t port, uint32_t val);
|
||||||
|
|
||||||
extern int shadowbios,shadowbios_write;
|
extern int shadowbios,shadowbios_write;
|
||||||
extern int mem_size;
|
extern int mem_size;
|
||||||
@@ -163,6 +161,9 @@ struct
|
|||||||
} cpu_state;
|
} cpu_state;
|
||||||
|
|
||||||
#define cycles cpu_state._cycles
|
#define cycles cpu_state._cycles
|
||||||
|
#define cpu_rm cpu_state.rm_data.rm_mod_reg.rm
|
||||||
|
#define cpu_mod cpu_state.rm_data.rm_mod_reg.mod
|
||||||
|
#define cpu_reg cpu_state.rm_data.rm_mod_reg.reg
|
||||||
|
|
||||||
#ifdef __MSC__
|
#ifdef __MSC__
|
||||||
# define COMPILE_TIME_ASSERT(expr) /*nada*/
|
# define COMPILE_TIME_ASSERT(expr) /*nada*/
|
||||||
@@ -292,13 +293,8 @@ typedef struct PIT
|
|||||||
} PIT;
|
} PIT;
|
||||||
|
|
||||||
PIT pit, pit2;
|
PIT pit, pit2;
|
||||||
void setpitclock(float clock);
|
extern void setpitclock(float clock);
|
||||||
|
extern float pit_timer0_freq(void);
|
||||||
float pit_timer0_freq();
|
|
||||||
|
|
||||||
#define cpu_rm cpu_state.rm_data.rm_mod_reg.rm
|
|
||||||
#define cpu_mod cpu_state.rm_data.rm_mod_reg.mod
|
|
||||||
#define cpu_reg cpu_state.rm_data.rm_mod_reg.reg
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -649,24 +645,22 @@ extern uint32_t SCSIGetCDChannel(int channel);
|
|||||||
|
|
||||||
extern int ui_writeprot[4];
|
extern int ui_writeprot[4];
|
||||||
|
|
||||||
void pclog(const char *format, ...);
|
|
||||||
void pclog_w(const wchar_t *format, ...);
|
|
||||||
extern int nmi;
|
extern int nmi;
|
||||||
extern int nmi_auto_clear;
|
extern int nmi_auto_clear;
|
||||||
|
|
||||||
|
|
||||||
extern float isa_timing, bus_timing;
|
extern float isa_timing, bus_timing;
|
||||||
|
|
||||||
|
|
||||||
uint64_t timer_read();
|
extern uint64_t timer_read(void);
|
||||||
extern uint64_t timer_freq;
|
extern uint64_t timer_freq;
|
||||||
|
|
||||||
|
|
||||||
extern int infocus;
|
extern int infocus;
|
||||||
|
|
||||||
void onesec();
|
extern void onesec(void);
|
||||||
|
|
||||||
void resetpc_cad();
|
extern void resetpc_cad(void);
|
||||||
|
|
||||||
extern int dump_on_exit;
|
extern int dump_on_exit;
|
||||||
extern int start_in_fullscreen;
|
extern int start_in_fullscreen;
|
||||||
@@ -692,7 +686,6 @@ wchar_t *nvr_concat(wchar_t *to_concat);
|
|||||||
|
|
||||||
int mem_a20_state;
|
int mem_a20_state;
|
||||||
|
|
||||||
void fatal(const char *format, ...);
|
|
||||||
|
|
||||||
#ifdef ENABLE_LOG_TOGGLES
|
#ifdef ENABLE_LOG_TOGGLES
|
||||||
extern int buslogic_do_log;
|
extern int buslogic_do_log;
|
||||||
@@ -714,65 +707,72 @@ typedef struct PCI_RESET
|
|||||||
|
|
||||||
extern PCI_RESET pci_reset_handler;
|
extern PCI_RESET pci_reset_handler;
|
||||||
|
|
||||||
uint8_t trc_read(uint16_t port, void *priv);
|
extern uint8_t trc_read(uint16_t port, void *priv);
|
||||||
void trc_write(uint16_t port, uint8_t val, void *priv);
|
extern void trc_write(uint16_t port, uint8_t val, void *priv);
|
||||||
void trc_init();
|
extern void trc_init(void);
|
||||||
|
|
||||||
extern int enable_xtide;
|
extern int enable_xtide;
|
||||||
extern int enable_external_fpu;
|
extern int enable_external_fpu;
|
||||||
|
|
||||||
|
extern int serial_enabled[2];
|
||||||
|
extern int lpt_enabled, bugger_enabled;
|
||||||
|
|
||||||
extern int invert_display;
|
extern int invert_display;
|
||||||
|
|
||||||
uint32_t svga_color_transform(uint32_t color);
|
uint32_t svga_color_transform(uint32_t color);
|
||||||
|
|
||||||
extern int scale;
|
extern int scale;
|
||||||
|
|
||||||
/* Function prototypes. */
|
|
||||||
int checkio(int port);
|
|
||||||
void closepc();
|
|
||||||
void codegen_block_end();
|
|
||||||
void codegen_reset();
|
|
||||||
void cpu_set_edx();
|
|
||||||
int divl(uint32_t val);
|
|
||||||
void dumpregs();
|
|
||||||
void exec386(int cycs);
|
|
||||||
void exec386_dynarec(int cycs);
|
|
||||||
void execx86(int cycs);
|
|
||||||
void flushmmucache();
|
|
||||||
void flushmmucache_cr3();
|
|
||||||
int idivl(int32_t val);
|
|
||||||
void initpc(int argc, wchar_t *argv[]);
|
|
||||||
void loadcscall(uint16_t seg);
|
|
||||||
void loadcsjmp(uint16_t seg, uint32_t oxpc);
|
|
||||||
void mmu_invalidate(uint32_t addr);
|
|
||||||
void pclog(const char *format, ...);
|
|
||||||
void pmodeint(int num, int soft);
|
|
||||||
void pmoderetf(int is32, uint16_t off);
|
|
||||||
void pmodeiret(int is32);
|
|
||||||
void port_92_clear_reset();
|
|
||||||
uint8_t readdacfifo();
|
|
||||||
void refreshread();
|
|
||||||
int rep386(int fv);
|
|
||||||
void resetmcr();
|
|
||||||
void resetpchard();
|
|
||||||
void resetreadlookup();
|
|
||||||
void resetx86();
|
|
||||||
void runpc();
|
|
||||||
void saveconfig();
|
|
||||||
void softresetx86();
|
|
||||||
void speedchanged();
|
|
||||||
void status_settextw(wchar_t *wstr);
|
|
||||||
void status_settext(char *str);
|
|
||||||
void trc_reset(uint8_t val);
|
|
||||||
void update_status_bar_icon(int tag, int active);
|
|
||||||
void update_status_bar_icon_state(int tag, int state);
|
|
||||||
void x86_int_sw(int num);
|
|
||||||
void x86gpf(char *s, uint16_t error);
|
|
||||||
void x86np(char *s, uint16_t error);
|
|
||||||
void x86ss(char *s, uint16_t error);
|
|
||||||
void x86ts(char *s, uint16_t error);
|
|
||||||
void x87_dumpregs();
|
|
||||||
void x87_reset();
|
|
||||||
|
|
||||||
extern int serial_enabled[2];
|
/* Function prototypes. */
|
||||||
extern int lpt_enabled, bugger_enabled;
|
extern int checkio(int port);
|
||||||
|
extern void closepc(void);
|
||||||
|
extern void codegen_block_end(void);
|
||||||
|
extern void codegen_reset(void);
|
||||||
|
extern void cpu_set_edx(void);
|
||||||
|
extern int divl(uint32_t val);
|
||||||
|
extern void dumpregs(int __force);
|
||||||
|
extern void exec386(int cycs);
|
||||||
|
extern void exec386_dynarec(int cycs);
|
||||||
|
extern void execx86(int cycs);
|
||||||
|
extern void flushmmucache(void);
|
||||||
|
extern void flushmmucache_cr3(void);
|
||||||
|
extern int idivl(int32_t val);
|
||||||
|
extern void initpc(int argc, wchar_t *argv[]);
|
||||||
|
extern void loadcscall(uint16_t seg);
|
||||||
|
extern void loadcsjmp(uint16_t seg, uint32_t oxpc);
|
||||||
|
extern void mmu_invalidate(uint32_t addr);
|
||||||
|
extern void pclog(const char *format, ...);
|
||||||
|
extern void pmodeint(int num, int soft);
|
||||||
|
extern void pmoderetf(int is32, uint16_t off);
|
||||||
|
extern void pmodeiret(int is32);
|
||||||
|
extern void port_92_clear_reset(void);
|
||||||
|
extern uint8_t readdacfifo(void);
|
||||||
|
extern void refreshread(void);
|
||||||
|
extern int rep386(int fv);
|
||||||
|
extern void resetmcr(void);
|
||||||
|
extern void resetpchard(void);
|
||||||
|
extern void resetreadlookup(void);
|
||||||
|
extern void resetx86(void);
|
||||||
|
extern void runpc(void);
|
||||||
|
extern void saveconfig(void);
|
||||||
|
extern void softresetx86(void);
|
||||||
|
extern void speedchanged(void);
|
||||||
|
extern void trc_reset(uint8_t val);
|
||||||
|
extern void x86_int_sw(int num);
|
||||||
|
extern void x86gpf(char *s, uint16_t error);
|
||||||
|
extern void x86np(char *s, uint16_t error);
|
||||||
|
extern void x86ss(char *s, uint16_t error);
|
||||||
|
extern void x86ts(char *s, uint16_t error);
|
||||||
|
extern void x87_dumpregs(void);
|
||||||
|
extern void x87_reset(void);
|
||||||
|
|
||||||
|
/* Platform functions. */
|
||||||
|
extern void pclog(const char *format, ...);
|
||||||
|
extern void pclog_w(const wchar_t *format, ...);
|
||||||
|
extern void fatal(const char *format, ...);
|
||||||
|
|
||||||
|
extern void update_status_bar_icon(int tag, int active);
|
||||||
|
extern void update_status_bar_icon_state(int tag, int state);
|
||||||
|
extern void status_settextw(wchar_t *wstr);
|
||||||
|
extern void status_settext(char *str);
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Implementation of the network module.
|
* Implementation of the network module.
|
||||||
*
|
*
|
||||||
* Version: @(#)network.c 1.0.1 2017/05/09
|
* Version: @(#)network.c 1.0.2 2017/05/09
|
||||||
*
|
*
|
||||||
* Authors: Kotori, <oubattler@gmail.com>
|
* Authors: Kotori, <oubattler@gmail.com>
|
||||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
@@ -38,7 +38,7 @@ typedef struct {
|
|||||||
|
|
||||||
|
|
||||||
static int net_handlers_num;
|
static int net_handlers_num;
|
||||||
static uint32_t net_poll_time = 100;
|
static int net_poll_time;
|
||||||
static NETPOLL net_handlers[8];
|
static NETPOLL net_handlers[8];
|
||||||
static NETCARD net_cards[] = {
|
static NETCARD net_cards[] = {
|
||||||
{ "None", "none", NULL },
|
{ "None", "none", NULL },
|
||||||
@@ -75,12 +75,9 @@ net_poll(void *priv)
|
|||||||
void
|
void
|
||||||
network_init(void)
|
network_init(void)
|
||||||
{
|
{
|
||||||
/* No network interface right now. */
|
|
||||||
network_card_current = 0;
|
network_card_current = 0;
|
||||||
net_handlers_num = 0;
|
net_handlers_num = 0;
|
||||||
|
net_poll_time = 0;
|
||||||
/* This should be a config value, really. --FvK */
|
|
||||||
net_poll_time = 100;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -859,7 +859,7 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifdef WALTJE
|
#ifdef xWALTJE
|
||||||
int aha_do_log = 1;
|
int aha_do_log = 1;
|
||||||
# define ENABLE_AHA154X_LOG
|
# define ENABLE_AHA154X_LOG
|
||||||
#else
|
#else
|
||||||
|
@@ -82,6 +82,10 @@ inet_aton(cp, ia)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
extern void pclog(char *fmt, ...);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get our IP address and put it in our_addr
|
* Get our IP address and put it in our_addr
|
||||||
*/
|
*/
|
||||||
|
@@ -93,14 +93,3 @@ void status_open(HWND hwnd)
|
|||||||
status_hwnd = CreateDialog(hinstance, TEXT("StatusDlg"), hwnd, status_dlgproc);
|
status_hwnd = CreateDialog(hinstance, TEXT("StatusDlg"), hwnd, status_dlgproc);
|
||||||
ShowWindow(status_hwnd, SW_SHOW);
|
ShowWindow(status_hwnd, SW_SHOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
void
|
|
||||||
set_bugui(char *str)
|
|
||||||
{
|
|
||||||
if (str == NULL)
|
|
||||||
str = "L:R GGGGGGGG-RRRRRRRR";
|
|
||||||
SendMessage(status_hwnd, SB_SETTEXT, 2, (WPARAM)str);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
Reference in New Issue
Block a user