Merge branch 'master' of https://github.com/86Box/86Box into feature/968_new
This commit is contained in:
@@ -1423,7 +1423,11 @@ static inline void MEM_STORE_ADDR_EA_B(x86seg *seg, int host_reg)
|
||||
addbyte(REG_EDI | (REG_ESI << 3));
|
||||
}
|
||||
addbyte(0xeb); /*JMP done*/
|
||||
addbyte(2+2+3+12+4+6);
|
||||
if (host_reg & 8) {
|
||||
addbyte(2+2+3+12+4+6);
|
||||
} else {
|
||||
addbyte(2+2+2+12+4+6);
|
||||
}
|
||||
/*slowpath:*/
|
||||
addbyte(0x01); /*ADD ECX,EAX*/
|
||||
addbyte(0xc1);
|
||||
@@ -1515,7 +1519,11 @@ static inline void MEM_STORE_ADDR_EA_W(x86seg *seg, int host_reg)
|
||||
addbyte(REG_EDI | (REG_ESI << 3));
|
||||
}
|
||||
addbyte(0xeb); /*JMP done*/
|
||||
addbyte(2+2+3+12+4+6);
|
||||
if (host_reg & 8) {
|
||||
addbyte(2+2+3+12+4+6);
|
||||
} else {
|
||||
addbyte(2+2+2+12+4+6);
|
||||
}
|
||||
/*slowpath:*/
|
||||
addbyte(0x01); /*ADD ECX,EAX*/
|
||||
addbyte(0xc1);
|
||||
@@ -1605,7 +1613,11 @@ static inline void MEM_STORE_ADDR_EA_L(x86seg *seg, int host_reg)
|
||||
addbyte(REG_EDI | (REG_ESI << 3));
|
||||
}
|
||||
addbyte(0xeb); /*JMP done*/
|
||||
addbyte(2+2+3+12+4+6);
|
||||
if (host_reg & 8) {
|
||||
addbyte(2+2+3+12+4+6);
|
||||
} else {
|
||||
addbyte(2+2+2+12+4+6);
|
||||
}
|
||||
/*slowpath:*/
|
||||
addbyte(0x01); /*ADD ECX,EAX*/
|
||||
addbyte(0xc1);
|
||||
@@ -6059,12 +6071,16 @@ static inline void MEM_STORE_ADDR_EA_B_NO_ABRT(x86seg *seg, int host_reg)
|
||||
addbyte(REG_EDI | (REG_ESI << 3));
|
||||
}
|
||||
addbyte(0xeb); /*JMP done*/
|
||||
addbyte(2+2+3+12);
|
||||
if (host_reg & 8) {
|
||||
addbyte(2+2+3+12);
|
||||
} else {
|
||||
addbyte(2+2+2+12);
|
||||
}
|
||||
/*slowpath:*/
|
||||
load_param_2_reg_32(host_reg);
|
||||
addbyte(0x01); /*ADD ECX,EAX*/
|
||||
addbyte(0xc1);
|
||||
load_param_1_reg_32(REG_ECX);
|
||||
addbyte(0x01); /*ADD EBX,EAX*/
|
||||
addbyte(0xc3);
|
||||
load_param_1_reg_32(REG_EBX);
|
||||
call_long((uintptr_t)writemembl);
|
||||
/*done:*/
|
||||
}
|
||||
@@ -6144,12 +6160,16 @@ static inline void MEM_STORE_ADDR_EA_W_NO_ABRT(x86seg *seg, int host_reg)
|
||||
addbyte(REG_EDI | (REG_ESI << 3));
|
||||
}
|
||||
addbyte(0xeb); /*JMP done*/
|
||||
addbyte(2+2+3+12);
|
||||
if (host_reg & 8) {
|
||||
addbyte(2+2+3+12);
|
||||
} else {
|
||||
addbyte(2+2+2+12);
|
||||
}
|
||||
/*slowpath:*/
|
||||
load_param_2_reg_32(host_reg);
|
||||
addbyte(0x01); /*ADD ECX,EAX*/
|
||||
addbyte(0xc1);
|
||||
load_param_1_reg_32(REG_ECX);
|
||||
addbyte(0x01); /*ADD EBX,EAX*/
|
||||
addbyte(0xc3);
|
||||
load_param_1_reg_32(REG_EBX);
|
||||
call_long((uintptr_t)writememwl);
|
||||
/*done:*/
|
||||
}
|
||||
@@ -6227,12 +6247,16 @@ static inline void MEM_STORE_ADDR_EA_L_NO_ABRT(x86seg *seg, int host_reg)
|
||||
addbyte(REG_EDI | (REG_ESI << 3));
|
||||
}
|
||||
addbyte(0xeb); /*JMP done*/
|
||||
addbyte(2+2+3+12);
|
||||
if (host_reg & 8) {
|
||||
addbyte(2+2+3+12);
|
||||
} else {
|
||||
addbyte(2+2+2+12);
|
||||
}
|
||||
/*slowpath:*/
|
||||
load_param_2_reg_32(host_reg);
|
||||
addbyte(0x01); /*ADD ECX,EAX*/
|
||||
addbyte(0xc1);
|
||||
load_param_1_reg_32(REG_ECX);
|
||||
addbyte(0x01); /*ADD EBX,EAX*/
|
||||
addbyte(0xc3);
|
||||
load_param_1_reg_32(REG_EBX);
|
||||
call_long((uintptr_t)writememll);
|
||||
/*done:*/
|
||||
}
|
||||
|
@@ -63,10 +63,11 @@ const machine_t machines[] = {
|
||||
{ "[8088] IBM XT (1986)", "ibmxt86", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 64, 0, machine_xt86_init, NULL },
|
||||
{ "[8088] American XT Computer", "americxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_americxt_init, NULL },
|
||||
{ "[8088] AMI XT clone", "amixt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_amixt_init, NULL },
|
||||
{ "[8088] Compaq Portable", "portable", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO, 128, 640, 128, 0, machine_xt_compaq_portable_init, NULL },
|
||||
{ "[8088] Compaq Portable", "portable", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_compaq_portable_init, NULL },
|
||||
{ "[8088] DTK XT clone", "dtk", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_dtk_init, NULL },
|
||||
{ "[8088] Generic XT clone", "genxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_genxt_init, NULL },
|
||||
{ "[8088] Juko XT clone", "jukopc", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_jukopc_init, NULL },
|
||||
{ "[8088] Olivetti M19", "olivetti_m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_olim19_init, NULL },
|
||||
{ "[8088] OpenXT", "open_xt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_open_xt_init, NULL },
|
||||
{ "[8088] Phoenix XT clone", "pxxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_pxxt_init, NULL },
|
||||
{ "[8088] Schneider EuroPC", "europc", MACHINE_TYPE_8088, CPU_PKG_8088_EUROPC, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_XTA | MACHINE_MOUSE, 512, 640, 128, 15, machine_europc_init, NULL },
|
||||
@@ -79,7 +80,6 @@ const machine_t machines[] = {
|
||||
{ "[8088] Xi8088", "xi8088", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2, 64, 1024, 128, 127, machine_xt_xi8088_init, xi8088_get_device },
|
||||
{ "[8088] Zenith Data SupersPort", "zdsupers", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_zenith_init, NULL },
|
||||
|
||||
{ "[8088] Olivetti M19", "olivetti_m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_olim19_init, NULL },
|
||||
/* 8086 Machines */
|
||||
{ "[8086] Amstrad PC1512", "pc1512", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 8000000, 8000000, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED | MACHINE_MOUSE, 512, 640, 128, 63, machine_pc1512_init, pc1512_get_device },
|
||||
{ "[8086] Amstrad PC1640", "pc1640", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE, 640, 640, 640, 63, machine_pc1640_init, pc1640_get_device },
|
||||
@@ -87,13 +87,12 @@ const machine_t machines[] = {
|
||||
{ "[8086] Amstrad PC3086", "pc3086", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED | MACHINE_MOUSE, 640, 640, 640, 63, machine_pc3086_init, pc3086_get_device },
|
||||
{ "[8086] Amstrad PC20(0)", "pc200", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE | MACHINE_NONMI, 512, 640, 128, 63, machine_pc200_init, pc200_get_device },
|
||||
{ "[8086] Amstrad PPC512/640", "ppc512", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE | MACHINE_NONMI, 512, 640, 128, 63, machine_ppc512_init, ppc512_get_device },
|
||||
{ "[8086] Compaq Deskpro", "deskpro", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_compaq_deskpro_init, NULL },
|
||||
{ "[8086] Olivetti M24", "olivetti_m24", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE, 128, 640, 128, 0, machine_xt_olim24_init, m24_get_device },
|
||||
{ "[8086] Compaq Deskpro", "deskpro", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_compaq_deskpro_init, NULL },
|
||||
{ "[8086] Olivetti M24", "olivetti_m24", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE, 128, 640, 128, 0, machine_xt_olim24_init, m24_get_device },
|
||||
{ "[8086] Olivetti M240", "olivetti_m240", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_olim240_init, NULL },
|
||||
{ "[8086] Schetmash Iskra-3104", "iskra3104", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_iskra3104_init, NULL },
|
||||
{ "[8086] Tandy 1000 SL/2", "tandy1000sl2", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 512, 768, 128, 0, machine_tandy1000sl2_init, tandy1k_sl_get_device },
|
||||
{ "[8086] Toshiba T1200", "t1200", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO, 1024, 2048,1024, 63, machine_xt_t1200_init, t1200_get_device },
|
||||
|
||||
{ "[8086] Olivetti M240", "olivetti_m240", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_olim240_init, NULL },
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_LASERXT)
|
||||
{ "[8086] VTech Laser XT3", "lxt3", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 256, 0, machine_xt_lxt3_init, NULL },
|
||||
|
Reference in New Issue
Block a user