Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .ci/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def runBuild(args) {
if (isUnix())
return sh(returnStatus: true, script: "chmod u+x '$WORKSPACE/.ci/build.sh' && exec '$WORKSPACE/.ci/build.sh' $args")
else
return bat(returnStatus: true, script: "C:\\msys64\\msys2_shell.cmd -msys2 -defterm -here -no-start -c 'exec \"\$(cygpath -u \\'%WORKSPACE%\\')/.ci/build.sh\" $args'")
return bat(returnStatus: true, script: "C:\\msys64\\msys2_shell.cmd -ucrt64 -defterm -here -no-start -c 'exec \"\$(cygpath -u \\'%WORKSPACE%\\')/.ci/build.sh\" $args'")
}

def failStage() {
Expand Down
1 change: 1 addition & 0 deletions src/cpu/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,7 @@ extern int idivl(int32_t val);
extern void resetmcr(void);
extern void resetx86(void);
extern void refreshread(void);
extern void refreshread_vx0(void);
extern void resetreadlookup(void);
extern void softresetx86(void);
extern void hardresetx86(void);
Expand Down
16 changes: 2 additions & 14 deletions src/cpu/vx0.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@
#include <86box/plat_unused.h>
#include "vx0_biu.h"

#define do_cycle() wait(1)
#define do_cycle() wait_vx0(1)
#define do_cycle_no_modrm() if (!nx) \
do_cycle()
#define do_cycle_i() do_cycle()
#define do_cycles(c) wait(c)
#define do_cycles(c) wait_vx0(c)
#define do_cycles_i(c) do_cycles(c)
#define do_cycle_nx() nx = 1
#define do_cycle_nx_i() nx = 1
Expand Down Expand Up @@ -222,12 +222,6 @@ const uint8_t opf_0f[256] = { 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, /* F0 */
0, 0, 0, 0, 0, 0, 0, 0 }; /* F8 */

uint8_t use_custom_nmi_vector = 0;

uint32_t custom_nmi_vector = 0x00000000;

/* Is the CPU 8088 or 8086. */
int is8086 = 0;
int nx = 0;

static uint32_t cpu_src = 0;
Expand Down Expand Up @@ -422,12 +416,6 @@ sync_to_i8080(void)
emulated_processor.interrupt_delay = noint;
}

uint16_t
get_last_addr(void)
{
return last_addr;
}

static void
set_ip(uint16_t new_ip)
{
Expand Down
30 changes: 15 additions & 15 deletions src/cpu/vx0_biu.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
#include <86box/plat_unused.h>
#include "vx0_biu.h"

#define do_cycle() wait(1)
#define do_cycle() wait_vx0(1)
#define do_cycle_i() do_cycle()

uint8_t biu_preload_byte = 0x00;
Expand Down Expand Up @@ -287,6 +287,15 @@ bus_inw(uint16_t port)
return ret;
}

void
resub_cycles_vx0(int old_cycles)
{
if (old_cycles > cycles)
wait_states = old_cycles - cycles;

cycles = old_cycles;
}

static void
bus_do_io(int io_type)
{
Expand All @@ -310,7 +319,7 @@ bus_do_io(int io_type)
AL = bus_inb((uint16_t) cpu_state.eaaddr);
}

resub_cycles(old_cycles);
resub_cycles_vx0(old_cycles);
}

static void
Expand Down Expand Up @@ -370,7 +379,7 @@ bus_do_mem(int io_type)
mem_data = (mem_data & 0xff00) | ((uint16_t) bus_readb(mem_seg, (uint32_t) mem_addr));
}

resub_cycles(old_cycles);
resub_cycles_vx0(old_cycles);
}

static void
Expand Down Expand Up @@ -510,15 +519,6 @@ do_bus_access(void)
}
}

void
resub_cycles(int old_cycles)
{
if (old_cycles > cycles)
wait_states = old_cycles - cycles;

cycles = old_cycles;
}

static uint8_t
biu_queue_has_room(void)
{
Expand Down Expand Up @@ -705,7 +705,7 @@ biu_eu_request(void)
}

void
wait(int c)
wait_vx0(int c)
{
x808x_biu_log("[%04X:%04X] %02X %i cycles\n", CS, cpu_state.pc, opcode, c);

Expand All @@ -715,7 +715,7 @@ wait(int c)

/* This is for external subtraction of cycles, ie. wait states. */
void
sub_cycles(int c)
sub_cycles_vx0(int c)
{
cycles -= c;
}
Expand Down Expand Up @@ -1143,7 +1143,7 @@ biu_suspend_fetch(void)

/* Memory refresh read - called by reads and writes on DMA channel 0. */
void
refreshread(void)
refreshread_vx0(void)
{
if (dma_state == DMA_STATE_IDLE) {
dma_state = DMA_STATE_TIMER;
Expand Down
2 changes: 1 addition & 1 deletion src/cpu/vx0_biu.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ enum {

/* Temporary BIU externs - move to 808x_biu.h. */
extern void biu_resume_on_queue_read(void);
extern void wait(int c);
extern void wait_vx0(int c);
extern void biu_reset(void);
extern void cpu_io_vx0(int bits, int out, uint16_t port);
extern void biu_state_set_eu(void);
Expand Down
32 changes: 16 additions & 16 deletions src/cpu/x87_ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ FPU_ILLEGAL_a32(uint32_t fetchdat)
#define ILLEGAL_a16 FPU_ILLEGAL_a16

#ifdef FPU_8087
const OpFn OP_TABLE(sf_fpu_8087_d8)[32] = {
static const OpFn OP_TABLE(sf_fpu_8087_d8)[32] = {
// clang-format off
sf_FADDs_a16, sf_FMULs_a16, sf_FCOMs_a16, sf_FCOMPs_a16, sf_FSUBs_a16, sf_FSUBRs_a16, sf_FDIVs_a16, sf_FDIVRs_a16,
sf_FADDs_a16, sf_FMULs_a16, sf_FCOMs_a16, sf_FCOMPs_a16, sf_FSUBs_a16, sf_FSUBRs_a16, sf_FDIVs_a16, sf_FDIVRs_a16,
Expand All @@ -590,7 +590,7 @@ const OpFn OP_TABLE(sf_fpu_8087_d8)[32] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_d9)[256] = {
static const OpFn OP_TABLE(sf_fpu_8087_d9)[256] = {
// clang-format off
sf_FLDs_a16, sf_FLDs_a16, sf_FLDs_a16, sf_FLDs_a16, sf_FLDs_a16, sf_FLDs_a16, sf_FLDs_a16, sf_FLDs_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -630,7 +630,7 @@ const OpFn OP_TABLE(sf_fpu_8087_d9)[256] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_da)[256] = {
static const OpFn OP_TABLE(sf_fpu_8087_da)[256] = {
// clang-format off
sf_FADDil_a16, sf_FADDil_a16, sf_FADDil_a16, sf_FADDil_a16, sf_FADDil_a16, sf_FADDil_a16, sf_FADDil_a16, sf_FADDil_a16,
sf_FMULil_a16, sf_FMULil_a16, sf_FMULil_a16, sf_FMULil_a16, sf_FMULil_a16, sf_FMULil_a16, sf_FMULil_a16, sf_FMULil_a16,
Expand Down Expand Up @@ -670,7 +670,7 @@ const OpFn OP_TABLE(sf_fpu_8087_da)[256] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_db)[256] = {
static const OpFn OP_TABLE(sf_fpu_8087_db)[256] = {
// clang-format off
sf_FILDil_a16, sf_FILDil_a16, sf_FILDil_a16, sf_FILDil_a16, sf_FILDil_a16, sf_FILDil_a16, sf_FILDil_a16, sf_FILDil_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -710,7 +710,7 @@ const OpFn OP_TABLE(sf_fpu_8087_db)[256] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_dc)[32] = {
static const OpFn OP_TABLE(sf_fpu_8087_dc)[32] = {
// clang-format off
sf_FADDd_a16, sf_FMULd_a16, sf_FCOMd_a16, sf_FCOMPd_a16, sf_FSUBd_a16, sf_FSUBRd_a16, sf_FDIVd_a16, sf_FDIVRd_a16,
sf_FADDd_a16, sf_FMULd_a16, sf_FCOMd_a16, sf_FCOMPd_a16, sf_FSUBd_a16, sf_FSUBRd_a16, sf_FDIVd_a16, sf_FDIVRd_a16,
Expand All @@ -719,7 +719,7 @@ const OpFn OP_TABLE(sf_fpu_8087_dc)[32] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_dd)[256] = {
static const OpFn OP_TABLE(sf_fpu_8087_dd)[256] = {
// clang-format off
sf_FLDd_a16, sf_FLDd_a16, sf_FLDd_a16, sf_FLDd_a16, sf_FLDd_a16, sf_FLDd_a16, sf_FLDd_a16, sf_FLDd_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -759,7 +759,7 @@ const OpFn OP_TABLE(sf_fpu_8087_dd)[256] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_de)[256] = {
static const OpFn OP_TABLE(sf_fpu_8087_de)[256] = {
// clang-format off
sf_FADDiw_a16, sf_FADDiw_a16, sf_FADDiw_a16, sf_FADDiw_a16, sf_FADDiw_a16, sf_FADDiw_a16, sf_FADDiw_a16, sf_FADDiw_a16,
sf_FMULiw_a16, sf_FMULiw_a16, sf_FMULiw_a16, sf_FMULiw_a16, sf_FMULiw_a16, sf_FMULiw_a16, sf_FMULiw_a16, sf_FMULiw_a16,
Expand Down Expand Up @@ -799,7 +799,7 @@ const OpFn OP_TABLE(sf_fpu_8087_de)[256] = {
// clang-format on
};

const OpFn OP_TABLE(sf_fpu_8087_df)[256] = {
static const OpFn OP_TABLE(sf_fpu_8087_df)[256] = {
// clang-format off
sf_FILDiw_a16, sf_FILDiw_a16, sf_FILDiw_a16, sf_FILDiw_a16, sf_FILDiw_a16, sf_FILDiw_a16, sf_FILDiw_a16, sf_FILDiw_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -839,7 +839,7 @@ const OpFn OP_TABLE(sf_fpu_8087_df)[256] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_d8)[32] = {
static const OpFn OP_TABLE(fpu_8087_d8)[32] = {
// clang-format off
opFADDs_a16, opFMULs_a16, opFCOMs_a16, opFCOMPs_a16, opFSUBs_a16, opFSUBRs_a16, opFDIVs_a16, opFDIVRs_a16,
opFADDs_a16, opFMULs_a16, opFCOMs_a16, opFCOMPs_a16, opFSUBs_a16, opFSUBRs_a16, opFDIVs_a16, opFDIVRs_a16,
Expand All @@ -848,7 +848,7 @@ const OpFn OP_TABLE(fpu_8087_d8)[32] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_d9)[256] = {
static const OpFn OP_TABLE(fpu_8087_d9)[256] = {
// clang-format off
opFLDs_a16, opFLDs_a16, opFLDs_a16, opFLDs_a16, opFLDs_a16, opFLDs_a16, opFLDs_a16, opFLDs_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -888,7 +888,7 @@ const OpFn OP_TABLE(fpu_8087_d9)[256] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_da)[256] = {
static const OpFn OP_TABLE(fpu_8087_da)[256] = {
// clang-format off
opFADDil_a16, opFADDil_a16, opFADDil_a16, opFADDil_a16, opFADDil_a16, opFADDil_a16, opFADDil_a16, opFADDil_a16,
opFMULil_a16, opFMULil_a16, opFMULil_a16, opFMULil_a16, opFMULil_a16, opFMULil_a16, opFMULil_a16, opFMULil_a16,
Expand Down Expand Up @@ -928,7 +928,7 @@ const OpFn OP_TABLE(fpu_8087_da)[256] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_db)[256] = {
static const OpFn OP_TABLE(fpu_8087_db)[256] = {
// clang-format off
opFILDil_a16, opFILDil_a16, opFILDil_a16, opFILDil_a16, opFILDil_a16, opFILDil_a16, opFILDil_a16, opFILDil_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -968,7 +968,7 @@ const OpFn OP_TABLE(fpu_8087_db)[256] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_dc)[32] = {
static const OpFn OP_TABLE(fpu_8087_dc)[32] = {
// clang-format off
opFADDd_a16, opFMULd_a16, opFCOMd_a16, opFCOMPd_a16, opFSUBd_a16, opFSUBRd_a16, opFDIVd_a16, opFDIVRd_a16,
opFADDd_a16, opFMULd_a16, opFCOMd_a16, opFCOMPd_a16, opFSUBd_a16, opFSUBRd_a16, opFDIVd_a16, opFDIVRd_a16,
Expand All @@ -977,7 +977,7 @@ const OpFn OP_TABLE(fpu_8087_dc)[32] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_dd)[256] = {
static const OpFn OP_TABLE(fpu_8087_dd)[256] = {
// clang-format off
opFLDd_a16, opFLDd_a16, opFLDd_a16, opFLDd_a16, opFLDd_a16, opFLDd_a16, opFLDd_a16, opFLDd_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down Expand Up @@ -1017,7 +1017,7 @@ const OpFn OP_TABLE(fpu_8087_dd)[256] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_de)[256] = {
static const OpFn OP_TABLE(fpu_8087_de)[256] = {
// clang-format off
opFADDiw_a16, opFADDiw_a16, opFADDiw_a16, opFADDiw_a16, opFADDiw_a16, opFADDiw_a16, opFADDiw_a16, opFADDiw_a16,
opFMULiw_a16, opFMULiw_a16, opFMULiw_a16, opFMULiw_a16, opFMULiw_a16, opFMULiw_a16, opFMULiw_a16, opFMULiw_a16,
Expand Down Expand Up @@ -1057,7 +1057,7 @@ const OpFn OP_TABLE(fpu_8087_de)[256] = {
// clang-format on
};

const OpFn OP_TABLE(fpu_8087_df)[256] = {
static const OpFn OP_TABLE(fpu_8087_df)[256] = {
// clang-format off
opFILDiw_a16, opFILDiw_a16, opFILDiw_a16, opFILDiw_a16, opFILDiw_a16, opFILDiw_a16, opFILDiw_a16, opFILDiw_a16,
ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16, ILLEGAL_a16,
Expand Down
4 changes: 2 additions & 2 deletions src/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -1503,7 +1503,7 @@ dma_channel_read_only(int channel)
dma_channel_advance(channel);

if (!dma_at && !channel)
refreshread();
is_nec ? refreshread_vx0() : refreshread();

if (!dma_c->size) {
temp = _dma_read(dma_c->ac, dma_c);
Expand Down Expand Up @@ -1611,7 +1611,7 @@ dma_channel_read(int channel)
dma_channel_advance(channel);

if (!dma_at && !channel)
refreshread();
is_nec ? refreshread_vx0() : refreshread();

if (!dma_c->size) {
temp = _dma_read(dma_c->ac, dma_c);
Expand Down
3 changes: 3 additions & 0 deletions src/include/86box/86box.h
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,9 @@ extern uint16_t get_last_addr(void);
extern void sub_cycles(int c);
extern void resub_cycles(int old_cycles);

extern void sub_cycles_vx0(int c);
extern void resub_cycles_vx0(int old_cycles);

extern void ack_pause(void);
extern void do_pause(int p);

Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_table.c
Original file line number Diff line number Diff line change
Expand Up @@ -18517,7 +18517,7 @@ const machine_t machines[] = {
.max_multi = 5.0
},
.bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
.ram = {
.min = 8192,
.max = 262144,
Expand Down
4 changes: 2 additions & 2 deletions src/qt/languages/de-DE.po
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2025-11-29 00:34+0000\n"
"PO-Revision-Date: 2026-01-28 08:57+0000\n"
"Last-Translator: OBattler <oubattler@gmail.com>\n"
"Language-Team: German <https://weblate.86box.net/projects/86box/86box/de/>\n"
"Language: de-DE\n"
Expand Down Expand Up @@ -2872,7 +2872,7 @@ msgid "%1 VM Manager"
msgstr ""

msgid "%n disk(s)"
msgstr ""
msgstr "%n Festplatte(n)"

msgid "Unknown Status"
msgstr "Unbekannter Status"
Expand Down
Loading
Loading