clang-format in src/machine

This commit is contained in:
Jasmine Iwanek
2022-07-27 15:17:53 -04:00
parent fe98b05da3
commit ff39a77afc
36 changed files with 8750 additions and 9405 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -35,7 +35,8 @@
* 59 Temple Place - Suite 330
* Boston, MA 02111-1307
* USA.
*/
*/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
@@ -59,7 +60,6 @@
#include <86box/port_6x.h>
#include <86box/machine.h>
void
machine_at_common_init_ex(const machine_t *model, int type)
{
@@ -71,25 +71,23 @@ machine_at_common_init_ex(const machine_t *model, int type)
dma16_init();
if (!(type & 4))
device_add(&port_6x_device);
device_add(&port_6x_device);
type &= 3;
if (type == 1)
device_add(&ibmat_nvr_device);
device_add(&ibmat_nvr_device);
else if (type == 0)
device_add(&at_nvr_device);
device_add(&at_nvr_device);
standalone_gameport_type = &gameport_device;
}
void
machine_at_common_init(const machine_t *model)
{
machine_at_common_init_ex(model, 0);
}
void
machine_at_init(const machine_t *model)
{
@@ -98,7 +96,6 @@ machine_at_init(const machine_t *model)
device_add(&keyboard_at_device);
}
static void
machine_at_ibm_common_init(const machine_t *model)
{
@@ -109,10 +106,9 @@ machine_at_ibm_common_init(const machine_t *model)
mem_remap_top(384);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
}
void
machine_at_ps2_init(const machine_t *model)
{
@@ -121,7 +117,6 @@ machine_at_ps2_init(const machine_t *model)
device_add(&keyboard_ps2_device);
}
void
machine_at_common_ide_init(const machine_t *model)
{
@@ -130,7 +125,6 @@ machine_at_common_ide_init(const machine_t *model)
device_add(&ide_isa_device);
}
void
machine_at_ibm_common_ide_init(const machine_t *model)
{
@@ -139,7 +133,6 @@ machine_at_ibm_common_ide_init(const machine_t *model)
device_add(&ide_isa_device);
}
void
machine_at_ide_init(const machine_t *model)
{
@@ -148,7 +141,6 @@ machine_at_ide_init(const machine_t *model)
device_add(&ide_isa_device);
}
void
machine_at_ps2_ide_init(const machine_t *model)
{
@@ -157,25 +149,23 @@ machine_at_ps2_ide_init(const machine_t *model)
device_add(&ide_isa_device);
}
int
machine_at_ibm_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/ibmat/62x0820.u27",
"roms/machines/ibmat/62x0821.u47",
0x000f0000, 65536, 0);
"roms/machines/ibmat/62x0821.u47",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);
return ret;
}
/* IBM AT machines with custom BIOSes */
int
machine_at_ibmatquadtel_init(const machine_t *model)
@@ -183,65 +173,62 @@ machine_at_ibmatquadtel_init(const machine_t *model)
int ret;
ret = bios_load_interleaved("roms/machines/ibmatquadtel/BIOS_30MAR90_U27_QUADTEL_ENH_286_BIOS_3.05.01_27256.BIN",
"roms/machines/ibmatquadtel/BIOS_30MAR90_U47_QUADTEL_ENH_286_BIOS_3.05.01_27256.BIN",
0x000f0000, 65536, 0);
"roms/machines/ibmatquadtel/BIOS_30MAR90_U47_QUADTEL_ENH_286_BIOS_3.05.01_27256.BIN",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);
return ret;
}
int
machine_at_ibmatami_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/ibmatami/BIOS_5170_30APR89_U27_AMI_27256.BIN",
"roms/machines/ibmatami/BIOS_5170_30APR89_U47_AMI_27256.BIN",
0x000f0000, 65536, 0);
"roms/machines/ibmatami/BIOS_5170_30APR89_U47_AMI_27256.BIN",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);
return ret;
}
int
machine_at_ibmatpx_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/ibmatpx/BIOS ROM - PhoenixBIOS A286 - Version 1.01 - Even.bin",
"roms/machines/ibmatpx/BIOS ROM - PhoenixBIOS A286 - Version 1.01 - Odd.bin",
0x000f0000, 65536, 0);
"roms/machines/ibmatpx/BIOS ROM - PhoenixBIOS A286 - Version 1.01 - Odd.bin",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);
return ret;
}
int
machine_at_ibmxt286_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/ibmxt286/bios_5162_21apr86_u34_78x7460_27256.bin",
"roms/machines/ibmxt286/bios_5162_21apr86_u35_78x7461_27256.bin",
0x000f0000, 65536, 0);
"roms/machines/ibmxt286/bios_5162_21apr86_u35_78x7461_27256.bin",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);
@@ -254,17 +241,16 @@ machine_at_siemens_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/siemens/286BIOS.BIN",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);
return ret;
}
#if defined(DEV_BRANCH) && defined(USE_OPEN_AT)
int
machine_at_openat_init(const machine_t *model)
@@ -272,10 +258,10 @@ machine_at_openat_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/openat/bios.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ibm_common_init(model);

View File

@@ -51,34 +51,33 @@ machine_at_mr286_init(const machine_t *model)
int ret;
ret = bios_load_interleaved("roms/machines/mr286/V000B200-1",
"roms/machines/mr286/V000B200-2",
0x000f0000, 65536, 0);
"roms/machines/mr286/V000B200-2",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_ide_init(model);
device_add(&keyboard_at_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
static void
machine_at_headland_common_init(int ht386)
{
device_add(&keyboard_at_ami_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
if (ht386)
device_add(&headland_ht18b_device);
device_add(&headland_ht18b_device);
else
device_add(&headland_gc10x_device);
device_add(&headland_gc10x_device);
}
int
@@ -87,10 +86,10 @@ machine_at_tg286m_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/tg286m/ami.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_ide_init(model);
@@ -105,160 +104,153 @@ machine_at_ama932j_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/ama932j/ami.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_ide_init(model);
if (gfxcard == VID_INTERNAL)
device_add(&oti067_ama932j_device);
device_add(&oti067_ama932j_device);
machine_at_headland_common_init(1);
return ret;
}
int
machine_at_quadt286_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/quadt286/QUADT89L.ROM",
"roms/machines/quadt286/QUADT89H.ROM",
0x000f0000, 65536, 0);
"roms/machines/quadt286/QUADT89H.ROM",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&keyboard_at_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&headland_gc10x_device);
return ret;
}
int
machine_at_quadt386sx_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/quadt386sx/QTC-SXM-EVEN-U3-05-07.BIN",
"roms/machines/quadt386sx/QTC-SXM-ODD-U3-05-07.BIN",
0x000f0000, 65536, 0);
"roms/machines/quadt386sx/QTC-SXM-ODD-U3-05-07.BIN",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&headland_gc10x_device);
return ret;
}
int
machine_at_neat_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/dtk386/3cto001.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_init(model);
device_add(&neat_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_neat_ami_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ami286/AMIC206.BIN",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&neat_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
return ret;
}
int
machine_at_px286_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/px286/KENITEC.BIN",
0x000f0000, 65536, 0);
ret = bios_load_linear("roms/machines/px286/KENITEC.BIN",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&neat_device);
return ret;
}
int
machine_at_micronics386_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/micronics386/386-Micronics-09-00021-EVEN.BIN",
"roms/machines/micronics386/386-Micronics-09-00021-ODD.BIN",
0x000f0000, 65536, 0);
"roms/machines/micronics386/386-Micronics-09-00021-ODD.BIN",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_init(model);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
static void
machine_at_scat_init(const machine_t *model, int is_v4)
{
@@ -266,12 +258,11 @@ machine_at_scat_init(const machine_t *model, int is_v4)
device_add(&keyboard_at_ami_device);
if (is_v4)
device_add(&scat_4_device);
device_add(&scat_4_device);
else
device_add(&scat_device);
device_add(&scat_device);
}
static void
machine_at_scatsx_init(const machine_t *model)
{
@@ -280,27 +271,26 @@ machine_at_scatsx_init(const machine_t *model)
device_add(&keyboard_at_ami_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&scat_sx_device);
}
int
machine_at_award286_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/award286/award.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scat_init(model, 0);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
@@ -311,15 +301,15 @@ machine_at_gdc212m_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/gdc212m/gdc212m_72h.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scat_init(model, 0);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&ide_isa_device);
@@ -332,10 +322,10 @@ machine_at_gw286ct_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/gw286ct/2ctc001.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
device_add(&f82c710_device);
@@ -349,63 +339,60 @@ machine_at_gw286ct_init(const machine_t *model)
return ret;
}
int
machine_at_super286tr_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/super286tr/hyundai_award286.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scat_init(model, 0);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_spc4200p_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/spc4200p/u8.01",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scat_init(model, 0);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_spc4216p_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/spc4216p/7101.U8",
"roms/machines/spc4216p/AC64.U10",
0x000f0000, 131072, 0);
"roms/machines/spc4216p/AC64.U10",
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scat_init(model, 1);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
@@ -416,72 +403,69 @@ machine_at_spc4620p_init(const machine_t *model)
int ret;
ret = bios_load_interleaved("roms/machines/spc4620p/31005h.u8",
"roms/machines/spc4620p/31005h.u10",
0x000f0000, 131072, 0x8000);
"roms/machines/spc4620p/31005h.u10",
0x000f0000, 131072, 0x8000);
if (bios_only || !ret)
return ret;
return ret;
if (gfxcard == VID_INTERNAL)
device_add(&ati28800k_spc4620p_device);
device_add(&ati28800k_spc4620p_device);
machine_at_scat_init(model, 1);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_kmxc02_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/kmxc02/3ctm005.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scatsx_init(model);
return ret;
}
int
machine_at_deskmaster286_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/deskmaster286/SAMSUNG-DESKMASTER-28612-ROM.BIN",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scat_init(model, 0);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_shuttle386sx_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/shuttle386sx/386-Shuttle386SX-Even.BIN",
"roms/machines/shuttle386sx/386-Shuttle386SX-Odd.BIN",
0x000f0000, 131072, 0);
"roms/machines/shuttle386sx/386-Shuttle386SX-Odd.BIN",
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -489,23 +473,22 @@ machine_at_shuttle386sx_init(const machine_t *model)
device_add(&keyboard_at_ami_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_adi386sx_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/adi386sx/3iip001l.bin",
"roms/machines/adi386sx/3iip001h.bin",
0x000f0000, 65536, 0);
"roms/machines/adi386sx/3iip001h.bin",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -513,28 +496,27 @@ machine_at_adi386sx_init(const machine_t *model)
device_add(&keyboard_at_ami_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_wd76c10_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/megapc/41651-bios lo.u18",
"roms/machines/megapc/211253-bios hi.u19",
0x000f0000, 65536, 0x08000);
"roms/machines/megapc/211253-bios hi.u19",
0x000f0000, 65536, 0x08000);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
if (gfxcard == VID_INTERNAL)
device_add(&paradise_wd90c11_megapc_device);
device_add(&paradise_wd90c11_megapc_device);
device_add(&keyboard_ps2_quadtel_device);
@@ -543,25 +525,24 @@ machine_at_wd76c10_init(const machine_t *model)
return ret;
}
int
machine_at_cmdsl386sx16_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/cmdsl386sx16/cbm-sl386sx-bios-lo-v1.04-390914-04.bin",
"roms/machines/cmdsl386sx16/cbm-sl386sx-bios-hi-v1.04-390915-04.bin",
0x000f0000, 65536, 0);
"roms/machines/cmdsl386sx16/cbm-sl386sx-bios-hi-v1.04-390915-04.bin",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_ide_init(model);
device_add(&keyboard_at_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&neat_device);
/* Two serial ports - on the real hardware SL386SX-16, they are on the single UMC UM82C452. */
@@ -571,127 +552,119 @@ machine_at_cmdsl386sx16_init(const machine_t *model)
return ret;
}
static void
machine_at_scamp_common_init(const machine_t *model, int is_ps2)
{
machine_at_common_ide_init(model);
if (is_ps2)
device_add(&keyboard_ps2_ami_device);
device_add(&keyboard_ps2_ami_device);
else
device_add(&keyboard_at_ami_device);
device_add(&keyboard_at_ami_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&vlsi_scamp_device);
}
const device_t *
at_cmdsl386sx25_get_device(void)
{
return &gd5402_onboard_device;
}
int
machine_at_cmdsl386sx25_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/cmdsl386sx25/f000.rom",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
if (gfxcard == VID_INTERNAL)
device_add(&gd5402_onboard_device);
device_add(&gd5402_onboard_device);
machine_at_scamp_common_init(model, 1);
return ret;
}
int
machine_at_dataexpert386sx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/dataexpert386sx/5e9f20e5ef967717086346.BIN",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_scamp_common_init(model, 0);
return ret;
}
const device_t *
at_spc6033p_get_device(void)
{
return &ati28800k_spc6033p_device;
}
int
machine_at_spc6033p_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/spc6033p/phoenix.BIN",
0x000f0000, 65536, 0x10000);
0x000f0000, 65536, 0x10000);
if (bios_only || !ret)
return ret;
return ret;
if (gfxcard == VID_INTERNAL)
device_add(&ati28800k_spc6033p_device);
device_add(&ati28800k_spc6033p_device);
machine_at_scamp_common_init(model, 1);
return ret;
}
int
machine_at_awardsx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/awardsx/Unknown 386SX OPTi291 - Award (original).BIN",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_init(model);
device_add(&opti291_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_arb1374_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/arb1374/1374s.rom",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -702,17 +675,16 @@ machine_at_arb1374_init(const machine_t *model)
return ret;
}
int
machine_at_sbc350a_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/sbc350a/350a.rom",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -723,17 +695,16 @@ machine_at_sbc350a_init(const machine_t *model)
return ret;
}
int
machine_at_flytech386_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/flytech386/FLYTECH.BIO",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -741,31 +712,29 @@ machine_at_flytech386_init(const machine_t *model)
device_add(&w83787f_ide_en_device);
if (gfxcard == VID_INTERNAL)
device_add(&tvga8900d_device);
device_add(&tvga8900d_device);
device_add(&keyboard_ps2_device);
return ret;
}
const device_t *
at_flytech386_get_device(void)
{
return &tvga8900d_device;
}
int
machine_at_mr1217_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/mr1217/mrbios.BIN",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -777,17 +746,16 @@ machine_at_mr1217_init(const machine_t *model)
return ret;
}
int
machine_at_pja511m_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pja511m/2006915102435734.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -800,17 +768,16 @@ machine_at_pja511m_init(const machine_t *model)
return ret;
}
int
machine_at_prox1332_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/prox1332/D30B3AC1.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -822,7 +789,6 @@ machine_at_prox1332_init(const machine_t *model)
return ret;
}
/*
* Current bugs:
* - ctrl-alt-del produces an 8042 error
@@ -833,22 +799,21 @@ machine_at_pc8_init(const machine_t *model)
int ret;
ret = bios_load_interleaved("roms/machines/pc8/ncr_35117_u127_vers.4-2.bin",
"roms/machines/pc8/ncr_35116_u113_vers.4-2.bin",
0x000f0000, 65536, 0);
"roms/machines/pc8/ncr_35116_u113_vers.4-2.bin",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_ncr_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
/*
* Current bugs:
* - ctrl-alt-del produces an 8042 error
@@ -859,31 +824,30 @@ machine_at_3302_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/3302/f000-flex_drive_test.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (ret) {
bios_load_aux_linear("roms/machines/3302/f800-setup_ncr3.5-013190.bin",
0x000f8000, 32768, 0);
bios_load_aux_linear("roms/machines/3302/f800-setup_ncr3.5-013190.bin",
0x000f8000, 32768, 0);
}
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_ide_init(model);
device_add(&neat_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
if (gfxcard == VID_INTERNAL)
device_add(&paradise_pvga1a_ncr3302_device);
device_add(&paradise_pvga1a_ncr3302_device);
device_add(&keyboard_at_ncr_device);
return ret;
}
/*
* Current bugs:
* - soft-reboot after saving CMOS settings/pressing ctrl-alt-del produces an 8042 error
@@ -894,11 +858,11 @@ machine_at_pc916sx_init(const machine_t *model)
int ret;
ret = bios_load_interleaved("roms/machines/pc916sx/ncr_386sx_u46-17_7.3.bin",
"roms/machines/pc916sx/ncr_386sx_u12-19_7.3.bin",
0x000f0000, 65536, 0);
"roms/machines/pc916sx/ncr_386sx_u12-19_7.3.bin",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -906,12 +870,11 @@ machine_at_pc916sx_init(const machine_t *model)
mem_remap_top(384);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
#if defined(DEV_BRANCH) && defined(USE_OLIVETTI)
int
machine_at_m290_init(const machine_t *model)
@@ -919,17 +882,17 @@ machine_at_m290_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/m290/m290_pep3_1.25.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 4);
device_add(&keyboard_at_olivetti_device);
device_add(&port_6x_olivetti_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&olivetti_eva_device);

File diff suppressed because it is too large Load Diff

View File

@@ -35,7 +35,7 @@
* 59 Temple Place - Suite 330
* Boston, MA 02111-1307
* USA.
*/
*/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
@@ -53,10 +53,8 @@
#include <86box/fdc.h>
#include <86box/machine.h>
static serial_t *cmd_uart;
static void
cbm_io_write(uint16_t port, uint8_t val, void *p)
{
@@ -64,53 +62,51 @@ cbm_io_write(uint16_t port, uint8_t val, void *p)
lpt2_remove();
switch (val & 3) {
case 1:
lpt1_init(LPT_MDA_ADDR);
break;
case 2:
lpt1_init(LPT1_ADDR);
break;
case 3:
lpt1_init(LPT2_ADDR);
break;
case 1:
lpt1_init(LPT_MDA_ADDR);
break;
case 2:
lpt1_init(LPT1_ADDR);
break;
case 3:
lpt1_init(LPT2_ADDR);
break;
}
switch (val & 0xc) {
case 0x4:
serial_setup(cmd_uart, COM2_ADDR, COM2_IRQ);
break;
case 0x8:
serial_setup(cmd_uart, COM1_ADDR, COM1_IRQ);
break;
case 0x4:
serial_setup(cmd_uart, COM2_ADDR, COM2_IRQ);
break;
case 0x8:
serial_setup(cmd_uart, COM1_ADDR, COM1_IRQ);
break;
}
}
static void
cbm_io_init()
{
io_sethandler(0x0230, 0x0001, NULL,NULL,NULL, cbm_io_write,NULL,NULL, NULL);
io_sethandler(0x0230, 0x0001, NULL, NULL, NULL, cbm_io_write, NULL, NULL, NULL);
}
int
machine_at_cmdpc_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/cmdpc30/commodore pc 30 iii even.bin",
"roms/machines/cmdpc30/commodore pc 30 iii odd.bin",
0x000f8000, 32768, 0);
"roms/machines/cmdpc30/commodore pc 30 iii odd.bin",
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_init(model);
mem_remap_top(384);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
cmd_uart = device_add(&ns8250_device);

File diff suppressed because it is too large Load Diff

View File

@@ -44,10 +44,10 @@ machine_at_vpc2007_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/vpc2007/13500.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
is_vpc = 1;

View File

@@ -46,27 +46,26 @@ machine_at_p65up5_cpknd_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/p65up5/NDKN0218.AWD",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_p65up5_common_init(model, &i440fx_device);
return ret;
}
int
machine_at_kn97_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/kn97/0116I.001",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -85,22 +84,21 @@ machine_at_kn97_init(const machine_t *model)
device_add(&intel_flash_bxt_device);
device_add(&lm78_device); /* fans: Chassis, CPU, Power; temperature: MB */
for (uint8_t i = 0; i < 3; i++)
hwm_values.fans[i] *= 2; /* BIOS reports fans with the wrong divisor for some reason */
hwm_values.fans[i] *= 2; /* BIOS reports fans with the wrong divisor for some reason */
return ret;
}
int
machine_at_lx6_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/lx6/LX6C_PZ.B00",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -122,17 +120,16 @@ machine_at_lx6_init(const machine_t *model)
return ret;
}
int
machine_at_spitfire_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/spitfire/SPIHM.02",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -155,50 +152,48 @@ machine_at_spitfire_init(const machine_t *model)
return ret;
}
int
machine_at_p6i440e2_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p6i440e2/E2_v14sl.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440ex_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x03, 256);
device_add(&w83781d_device); /* fans: CPU, CHS, PS; temperatures: unused, CPU, System */
hwm_values.temperatures[0] = 0; /* unused */
hwm_values.voltages[1] = 1500; /* CPUVTT */
device_add(&w83781d_device); /* fans: CPU, CHS, PS; temperatures: unused, CPU, System */
hwm_values.temperatures[0] = 0; /* unused */
hwm_values.voltages[1] = 1500; /* CPUVTT */
return ret;
}
int
machine_at_p2bls_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p2bls/1014ls.003",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -216,27 +211,26 @@ machine_at_p2bls_init(const machine_t *model)
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&w83977ef_device);
//device_add(ics9xxx_get(ICS9150_08)); /* setting proper speeds requires some interaction with the AS97127F ASIC */
// device_add(ics9xxx_get(ICS9150_08)); /* setting proper speeds requires some interaction with the AS97127F ASIC */
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
hwm_values.temperatures[1] = 0; /* unused */
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
hwm_values.temperatures[1] = 0; /* unused */
hwm_values.temperatures[2] -= 3; /* CPU offset */
return ret;
}
int
machine_at_p3bf_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p3bf/1008f.004",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -257,23 +251,22 @@ machine_at_p3bf_init(const machine_t *model)
device_add(ics9xxx_get(ICS9250_08));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
device_add(&as99127f_device); /* fans: Chassis, CPU, Power; temperatures: MB, JTPWR, CPU */
device_add(&as99127f_device); /* fans: Chassis, CPU, Power; temperatures: MB, JTPWR, CPU */
hwm_values.voltages[4] = hwm_values.voltages[5]; /* +12V reading not in line with other boards; appears to be close to the -12V reading */
return ret;
}
int
machine_at_bf6_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/bf6/Beh_70.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -298,17 +291,16 @@ machine_at_bf6_init(const machine_t *model)
return ret;
}
int
machine_at_ax6bc_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ax6bc/AX6BC_R2.59.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -332,17 +324,16 @@ machine_at_ax6bc_init(const machine_t *model)
return ret;
}
int
machine_at_atc6310bxii_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/atc6310bxii/6310s102.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -365,17 +356,16 @@ machine_at_atc6310bxii_init(const machine_t *model)
return ret;
}
int
machine_at_686bx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/686bx/6BX.F2a",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -393,27 +383,26 @@ machine_at_686bx_init(const machine_t *model)
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
device_add(&w83781d_device); /* fans: CPU, unused, unused; temperatures: unused, CPU, unused */
hwm_values.temperatures[0] = 0; /* unused */
device_add(&w83781d_device); /* fans: CPU, unused, unused; temperatures: unused, CPU, unused */
hwm_values.temperatures[0] = 0; /* unused */
hwm_values.temperatures[1] += 4; /* CPU offset */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.fans[1] = 0; /* unused */
hwm_values.fans[2] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.fans[1] = 0; /* unused */
hwm_values.fans[2] = 0; /* unused */
return ret;
}
int
machine_at_p6sba_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p6sba/SBAB21.ROM",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -433,8 +422,8 @@ machine_at_p6sba_init(const machine_t *model)
device_add(&keyboard_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&w83781d_device); /* fans: CPU1, CPU2, Thermal Control; temperatures: unused, CPU1, CPU2? */
hwm_values.fans[1] = 0; /* no CPU2 fan */
device_add(&w83781d_device); /* fans: CPU1, CPU2, Thermal Control; temperatures: unused, CPU1, CPU2? */
hwm_values.fans[1] = 0; /* no CPU2 fan */
hwm_values.temperatures[0] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* CPU2? */
/* no CPU2 voltage */
@@ -442,17 +431,16 @@ machine_at_p6sba_init(const machine_t *model)
return ret;
}
int
machine_at_s1846_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/s1846/bx46200f.rom",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -474,8 +462,8 @@ machine_at_s1846_init(const machine_t *model)
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
if (sound_card_current == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* found on other Tyan boards around the same time */
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* found on other Tyan boards around the same time */
}
return ret;
@@ -487,10 +475,10 @@ machine_at_ficka6130_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/ficka6130/qa4163.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -512,17 +500,16 @@ machine_at_ficka6130_init(const machine_t *model)
return ret;
}
int
machine_at_p3v133_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p3v133/1003.002",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -543,24 +530,23 @@ machine_at_p3v133_init(const machine_t *model)
device_add(ics9xxx_get(ICS9248_39));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
hwm_values.temperatures[1] = 0; /* unused */
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
hwm_values.temperatures[1] = 0; /* unused */
hwm_values.temperatures[2] -= 3; /* CPU offset */
return ret;
}
int
machine_at_p3v4x_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p3v4x/1006.004",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -586,17 +572,16 @@ machine_at_p3v4x_init(const machine_t *model)
return ret;
}
int
machine_at_vei8_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/vei8/QHW1001.BIN",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -619,7 +604,6 @@ machine_at_vei8_init(const machine_t *model)
return ret;
}
static void
machine_at_ms6168_common_init(const machine_t *model)
{
@@ -638,70 +622,66 @@ machine_at_ms6168_common_init(const machine_t *model)
device_add(&w83977ef_device);
if (gfxcard == VID_INTERNAL)
device_add(&voodoo_3_2000_agp_onboard_8m_device);
device_add(&voodoo_3_2000_agp_onboard_8m_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
if (sound_card_current == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device);
device_add(&es1371_onboard_device);
device_add(&cs4297_device);
}
}
const device_t *
at_ms6168_get_device(void)
{
return &voodoo_3_2000_agp_onboard_8m_device;
}
int
machine_at_borapro_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/borapro/MS6168V2.50",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ms6168_common_init(model);
return ret;
}
int
machine_at_ms6168_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ms6168/w6168ims.130",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_ms6168_common_init(model);
return ret;
}
int
machine_at_m729_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/m729/M729NEW.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -716,7 +696,7 @@ machine_at_m729_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&ali1621_device);
device_add(&ali1543c_device); /* +0 */
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);

View File

@@ -46,10 +46,10 @@ machine_at_6gxu_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/6gxu/6gxu.f1c",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -69,9 +69,9 @@ machine_at_6gxu_init(const machine_t *model)
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
device_add(&w83782d_device); /* fans: CPU, Power, System; temperatures: System, CPU, unused */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.voltages[1] = 1500; /* VGTL */
device_add(&w83782d_device); /* fans: CPU, Power, System; temperatures: System, CPU, unused */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.voltages[1] = 1500; /* VGTL */
return ret;
}
@@ -82,10 +82,10 @@ machine_at_s2dge_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/s2dge/2gu7301.rom",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -106,8 +106,8 @@ machine_at_s2dge_init(const machine_t *model)
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
device_add(&w83781d_device); /* fans: CPU1, CPU2, Thermal Control; temperatures: unused, CPU1, CPU2? */
hwm_values.fans[1] = 0; /* no CPU2 fan */
device_add(&w83781d_device); /* fans: CPU1, CPU2, Thermal Control; temperatures: unused, CPU1, CPU2? */
hwm_values.fans[1] = 0; /* no CPU2 fan */
hwm_values.temperatures[0] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* CPU2? */
@@ -120,10 +120,10 @@ machine_at_fw6400gx_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/fw6400gx/FWGX1211.ROM",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -145,9 +145,9 @@ machine_at_fw6400gx_init(const machine_t *model)
device_add(ics9xxx_get(ICS9250_08));
device_add(&sst_flash_29ee020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
device_add(&w83781d_device); /* fans: Chassis, Power, CPU; temperatures: System, CPU, unused */
hwm_values.temperatures[3] = 0; /* unused */
hwm_values.voltages[1] = 1500; /* Vtt */
device_add(&w83781d_device); /* fans: Chassis, Power, CPU; temperatures: System, CPU, unused */
hwm_values.temperatures[3] = 0; /* unused */
hwm_values.voltages[1] = 1500; /* Vtt */
return ret;
}

View File

@@ -40,17 +40,16 @@
#include <86box/sound.h>
#include <86box/snd_ac97.h>
int
machine_at_s370slm_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/s370slm/3LM1202.rom",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -68,24 +67,23 @@ machine_at_s370slm_init(const machine_t *model)
device_add(&keyboard_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&w83781d_device); /* fans: CPU, Fan 2, Chassis; temperatures: unused, CPU, unused */
device_add(&w83781d_device); /* fans: CPU, Fan 2, Chassis; temperatures: unused, CPU, unused */
hwm_values.temperatures[0] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
return ret;
}
int
machine_at_s1857_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/s1857/BX57200A.ROM",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -107,24 +105,23 @@ machine_at_s1857_init(const machine_t *model)
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
if (sound_card_current == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* found on other Tyan boards around the same time */
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* found on other Tyan boards around the same time */
}
return ret;
}
int
machine_at_p6bap_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p6bap/bapa14a.BIN",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -147,17 +144,16 @@ machine_at_p6bap_init(const machine_t *model)
return ret;
}
int
machine_at_cubx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/cubx/1008cu.004",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -184,17 +180,16 @@ machine_at_cubx_init(const machine_t *model)
return ret;
}
int
machine_at_atc7020bxii_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/atc7020bxii/7020s102.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -217,17 +212,16 @@ machine_at_atc7020bxii_init(const machine_t *model)
return ret;
}
int
machine_at_ambx133_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ambx133/mkbx2vg2.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -248,23 +242,22 @@ machine_at_ambx133_init(const machine_t *model)
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&gl518sm_2d_device); /* fans: CPUFAN1, CPUFAN2; temperature: CPU */
hwm_values.fans[1] += 500;
hwm_values.temperatures[0] += 4; /* CPU offset */
hwm_values.temperatures[0] += 4; /* CPU offset */
hwm_values.voltages[1] = RESISTOR_DIVIDER(12000, 10, 2); /* different 12V divider in BIOS (10K/2K?) */
return ret;
}
int
machine_at_awo671r_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/awo671r/a08139c.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -288,17 +281,16 @@ machine_at_awo671r_init(const machine_t *model)
return ret;
}
int
machine_at_63a1_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/63a1/63a-q3.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -321,17 +313,16 @@ machine_at_63a1_init(const machine_t *model)
return ret;
}
int
machine_at_apas3_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/apas3/V0218SAG.BIN",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -353,17 +344,16 @@ machine_at_apas3_init(const machine_t *model)
return ret;
}
int
machine_at_gt694va_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/gt694va/21071100.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -381,32 +371,31 @@ machine_at_gt694va_init(const machine_t *model)
device_add(&keyboard_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 1024);
device_add(&w83782d_device); /* fans: CPU, unused, unused; temperatures: System, CPU1, unused */
hwm_values.voltages[1] = 1500; /* IN1 (unknown purpose, assumed Vtt) */
hwm_values.fans[0] = 4500; /* BIOS does not display <4411 RPM */
hwm_values.fans[1] = 0; /* unused */
hwm_values.fans[2] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
device_add(&w83782d_device); /* fans: CPU, unused, unused; temperatures: System, CPU1, unused */
hwm_values.voltages[1] = 1500; /* IN1 (unknown purpose, assumed Vtt) */
hwm_values.fans[0] = 4500; /* BIOS does not display <4411 RPM */
hwm_values.fans[1] = 0; /* unused */
hwm_values.fans[2] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
if (sound_card_current == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* assumed */
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* assumed */
}
return ret;
}
int
machine_at_cuv4xls_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/cuv4xls/1005LS.001",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -431,7 +420,7 @@ machine_at_cuv4xls_init(const machine_t *model)
device_add(&as99127f_device); /* fans: Chassis, CPU, Power; temperatures: MB, JTPWR, CPU */
if (sound_card_current == SOUND_INTERNAL)
device_add(&cmi8738_onboard_device);
device_add(&cmi8738_onboard_device);
return ret;
}
@@ -442,10 +431,10 @@ machine_at_6via90ap_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/6via90ap/90ap10.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -466,10 +455,10 @@ machine_at_6via90ap_init(const machine_t *model)
spd_register(SPD_TYPE_SDRAM, 0x7, 1024);
hwm_values.temperatures[0] += 2; /* CPU offset */
hwm_values.temperatures[1] += 2; /* System offset */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
if (sound_card_current == SOUND_INTERNAL)
device_add(&alc100_device); /* ALC100P identified on similar Acorp boards (694TA, 6VIA90A1) */
device_add(&alc100_device); /* ALC100P identified on similar Acorp boards (694TA, 6VIA90A1) */
return ret;
}

View File

@@ -39,10 +39,10 @@
#include <86box/nvr.h>
#include <86box/scsi_ncr53c8xx.h>
#include <86box/sio.h>
#include <86box/timer.h>
#include <86box/video.h>
#include <86box/machine.h>
void
machine_at_premiere_common_init(const machine_t *model, int pci_switch)
{
@@ -62,7 +62,6 @@ machine_at_premiere_common_init(const machine_t *model, int pci_switch)
device_add(&intel_flash_bxt_ami_device);
}
void
machine_at_award_common_init(const machine_t *model)
{
@@ -80,13 +79,12 @@ machine_at_award_common_init(const machine_t *model)
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
// device_add(&keyboard_ps2_pci_device);
device_add(&keyboard_ps2_ami_pci_device);
}
void
machine_at_sp4_common_init(const machine_t *model)
{
@@ -110,17 +108,16 @@ machine_at_sp4_common_init(const machine_t *model)
device_add(&intel_flash_bxt_device);
}
int
machine_at_excaliburpci_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_inverted("roms/machines/excaliburpci/S701P.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -142,17 +139,16 @@ machine_at_excaliburpci_init(const machine_t *model)
return ret;
}
int
machine_at_p5mp3_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p5mp3/0205.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&ide_pci_device);
@@ -173,17 +169,16 @@ machine_at_p5mp3_init(const machine_t *model)
return ret;
}
int
machine_at_dellxp60_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_inverted("roms/machines/dellxp60/XP60-A08.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&ide_pci_2ch_device);
@@ -206,17 +201,16 @@ machine_at_dellxp60_init(const machine_t *model)
return ret;
}
int
machine_at_opti560l_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_inverted("roms/machines/opti560l/560L_A06.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&ide_pci_2ch_device);
@@ -236,17 +230,16 @@ machine_at_opti560l_init(const machine_t *model)
return ret;
}
int
machine_at_ambradp60_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/ambradp60/1004AF1P.BIO",
"roms/machines/ambradp60/1004AF1P.BI1", 0x1c000, 128);
"roms/machines/ambradp60/1004AF1P.BI1", 0x1c000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_premiere_common_init(model, 0);
@@ -255,17 +248,16 @@ machine_at_ambradp60_init(const machine_t *model)
return ret;
}
int
machine_at_valuepointp60_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/valuepointp60/1006AV0M.BIO",
"roms/machines/valuepointp60/1006AV0M.BI1", 0x1d000, 128);
"roms/machines/valuepointp60/1006AV0M.BI1", 0x1d000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
device_add(&ide_pci_2ch_device);
@@ -287,17 +279,16 @@ machine_at_valuepointp60_init(const machine_t *model)
return ret;
}
int
machine_at_revenge_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/revenge/1009af2_.bio",
"roms/machines/revenge/1009af2_.bi1", 0x1c000, 128);
"roms/machines/revenge/1009af2_.bi1", 0x1c000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_premiere_common_init(model, 0);
@@ -306,17 +297,16 @@ machine_at_revenge_init(const machine_t *model)
return ret;
}
int
machine_at_586mc1_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/586mc1/IS.34",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_award_common_init(model);
@@ -327,17 +317,16 @@ machine_at_586mc1_init(const machine_t *model)
return ret;
}
int
machine_at_pb520r_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/pb520r/1009bc0r.bio",
"roms/machines/pb520r/1009bc0r.bi1", 0x1d000, 128);
"roms/machines/pb520r/1009bc0r.bi1", 0x1d000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -353,7 +342,7 @@ machine_at_pb520r_init(const machine_t *model)
device_add(&ide_cmd640_pci_single_channel_device);
if (gfxcard == VID_INTERNAL)
device_add(&gd5434_onboard_pci_device);
device_add(&gd5434_onboard_pci_device);
device_add(&keyboard_ps2_pci_device);
device_add(&sio_zb_device);
@@ -369,10 +358,10 @@ machine_at_excalibur_init(const machine_t *model)
int ret;
ret = bios_load_linear_inverted("roms/machines/excalibur/S75P.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -384,17 +373,16 @@ machine_at_excalibur_init(const machine_t *model)
return ret;
}
int
machine_at_p5vl_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p5vl/SM507.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
@@ -408,22 +396,21 @@ machine_at_p5vl_init(const machine_t *model)
device_add(&keyboard_at_ami_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_excaliburpci2_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_inverted("roms/machines/excaliburpci2/S722P.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
@@ -446,17 +433,16 @@ machine_at_excaliburpci2_init(const machine_t *model)
return ret;
}
int
machine_at_p5sp4_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p5sp4/0106.001",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_sp4_common_init(model);

View File

@@ -42,17 +42,16 @@
#include <86box/video.h>
#include <86box/machine.h>
int
machine_at_plato_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/plato/1016ax1_.bio",
"roms/machines/plato/1016ax1_.bi1", 0x1d000, 128);
"roms/machines/plato/1016ax1_.bi1", 0x1d000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_premiere_common_init(model, PCI_CAN_SWITCH_TYPE);
@@ -61,17 +60,16 @@ machine_at_plato_init(const machine_t *model)
return ret;
}
int
machine_at_ambradp90_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/ambradp90/1002AX1P.BIO",
"roms/machines/ambradp90/1002AX1P.BI1", 0x1d000, 128);
"roms/machines/ambradp90/1002AX1P.BI1", 0x1d000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_premiere_common_init(model, PCI_CAN_SWITCH_TYPE);
@@ -80,17 +78,16 @@ machine_at_ambradp90_init(const machine_t *model)
return ret;
}
int
machine_at_430nx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/430nx/IP.20",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_award_common_init(model);
@@ -101,17 +98,16 @@ machine_at_430nx_init(const machine_t *model)
return ret;
}
int
machine_at_acerv30_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/acerv30/V30R01N9.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -132,17 +128,16 @@ machine_at_acerv30_init(const machine_t *model)
return ret;
}
int
machine_at_apollo_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/apollo/S728P.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1995_nvr_device);
@@ -163,17 +158,16 @@ machine_at_apollo_init(const machine_t *model)
return ret;
}
int
machine_at_exp8551_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/exp8551/AMI20.BIO",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -193,17 +187,16 @@ machine_at_exp8551_init(const machine_t *model)
return ret;
}
int
machine_at_zappa_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/zappa/1006bs0_.bio",
"roms/machines/zappa/1006bs0_.bi1", 0x20000, 128);
"roms/machines/zappa/1006bs0_.bi1", 0x20000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -222,17 +215,16 @@ machine_at_zappa_init(const machine_t *model)
return ret;
}
int
machine_at_powermatev_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/powermatev/BIOS.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -251,17 +243,16 @@ machine_at_powermatev_init(const machine_t *model)
return ret;
}
int
machine_at_mb500n_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/mb500n/031396s.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -281,17 +272,16 @@ machine_at_mb500n_init(const machine_t *model)
return ret;
}
int
machine_at_hawk_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/hawk/HAWK.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
@@ -311,17 +301,16 @@ machine_at_hawk_init(const machine_t *model)
return ret;
}
int
machine_at_pat54pv_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pat54pv/PAT54PV.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -329,22 +318,21 @@ machine_at_pat54pv_init(const machine_t *model)
device_add(&keyboard_ps2_intel_ami_pci_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_hot543_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/hot543/543_R21.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
@@ -358,39 +346,37 @@ machine_at_hot543_init(const machine_t *model)
device_add(&keyboard_at_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
return ret;
}
int
machine_at_p54sp4_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p54sp4/SI5I0204.AWD",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_sp4_common_init(model);
return ret;
}
int
machine_at_sq588_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/sq588/sq588b03.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);

View File

@@ -46,17 +46,16 @@
#include <86box/nvr.h>
#include <86box/scsi_ncr53c8xx.h>
int
machine_at_acerv35n_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/acerv35n/v35nd1s1.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -78,17 +77,16 @@ machine_at_acerv35n_init(const machine_t *model)
return ret;
}
int
machine_at_ap5vm_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ap5vm/AP5V270.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -113,17 +111,16 @@ machine_at_ap5vm_init(const machine_t *model)
return ret;
}
int
machine_at_p55t2p4_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p55t2p4/0207_j2.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -143,17 +140,16 @@ machine_at_p55t2p4_init(const machine_t *model)
return ret;
}
int
machine_at_m7shi_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/m7shi/m7shi2n.rom",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -173,21 +169,20 @@ machine_at_m7shi_init(const machine_t *model)
return ret;
}
int
machine_at_tc430hx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined2("roms/machines/tc430hx/1007DH0_.BIO",
"roms/machines/tc430hx/1007DH0_.BI1",
"roms/machines/tc430hx/1007DH0_.BI2",
"roms/machines/tc430hx/1007DH0_.BI3",
"roms/machines/tc430hx/1007DH0_.RCV",
0x3a000, 128);
"roms/machines/tc430hx/1007DH0_.BI1",
"roms/machines/tc430hx/1007DH0_.BI2",
"roms/machines/tc430hx/1007DH0_.BI3",
"roms/machines/tc430hx/1007DH0_.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -208,7 +203,6 @@ machine_at_tc430hx_init(const machine_t *model)
return ret;
}
/* Information about that machine on machine.h */
int
machine_at_equium5200_init(const machine_t *model)
@@ -216,14 +210,14 @@ machine_at_equium5200_init(const machine_t *model)
int ret;
ret = bios_load_linear_combined2("roms/machines/equium5200/1003DK08.BIO",
"roms/machines/equium5200/1003DK08.BI1",
"roms/machines/equium5200/1003DK08.BI2",
"roms/machines/equium5200/1003DK08.BI3",
"roms/machines/equium5200/1003DK08.RCV",
0x3a000, 128);
"roms/machines/equium5200/1003DK08.BI1",
"roms/machines/equium5200/1003DK08.BI2",
"roms/machines/equium5200/1003DK08.BI3",
"roms/machines/equium5200/1003DK08.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -244,21 +238,20 @@ machine_at_equium5200_init(const machine_t *model)
return ret;
}
int
machine_at_pcv90_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined2("roms/machines/pcv90/1010DD04.BIO",
"roms/machines/pcv90/1010DD04.BI1",
"roms/machines/pcv90/1010DD04.BI2",
"roms/machines/pcv90/1010DD04.BI3",
"roms/machines/pcv90/1010DD04.RCV",
0x3a000, 128);
"roms/machines/pcv90/1010DD04.BI1",
"roms/machines/pcv90/1010DD04.BI2",
"roms/machines/pcv90/1010DD04.BI3",
"roms/machines/pcv90/1010DD04.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -279,34 +272,32 @@ machine_at_pcv90_init(const machine_t *model)
return ret;
}
int
machine_at_p65up5_cp55t2d_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p65up5/TD5I0201.AWD",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_p65up5_common_init(model, &i430hx_device);
return ret;
}
int
machine_at_p55tvp4_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p55tvp4/0204_128.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -319,24 +310,23 @@ machine_at_p55tvp4_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device); //It uses the AMIKEY KBC
device_add(&keyboard_ps2_ami_pci_device); // It uses the AMIKEY KBC
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
return ret;
}
int
machine_at_5ivg_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/5ivg/5IVG.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -355,24 +345,23 @@ machine_at_5ivg_init(const machine_t *model)
return ret;
}
int
machine_at_8500tvxa_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/8500tvxa/tvx0619b.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 2, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 3, 2, 1);
@@ -385,17 +374,16 @@ machine_at_8500tvxa_init(const machine_t *model)
return ret;
}
int
machine_at_presario2240_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/presario2240/B0184008.ROM",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -406,7 +394,7 @@ machine_at_presario2240_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
if (gfxcard == VID_INTERNAL)
device_add(&s3_trio64v2_dx_onboard_pci_device);
device_add(&s3_trio64v2_dx_onboard_pci_device);
device_add(&i430vx_device);
device_add(&piix3_device);
@@ -417,17 +405,16 @@ machine_at_presario2240_init(const machine_t *model)
return ret;
}
int
machine_at_presario4500_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/presario4500/B013300I.ROM",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -438,7 +425,7 @@ machine_at_presario4500_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
if (gfxcard == VID_INTERNAL)
device_add(&s3_trio64v2_dx_onboard_pci_device);
device_add(&s3_trio64v2_dx_onboard_pci_device);
device_add(&i430vx_device);
device_add(&piix3_device);
@@ -449,17 +436,16 @@ machine_at_presario4500_init(const machine_t *model)
return ret;
}
int
machine_at_p55va_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p55va/va021297.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -479,17 +465,16 @@ machine_at_p55va_init(const machine_t *model)
return ret;
}
int
machine_at_brio80xx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/brio80xx/Hf0705.rom",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -509,21 +494,20 @@ machine_at_brio80xx_init(const machine_t *model)
return ret;
}
int
machine_at_pb680_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined2("roms/machines/pb680/1012DN0R.BIO",
"roms/machines/pb680/1012DN0R.BI1",
"roms/machines/pb680/1012DN0R.BI2",
"roms/machines/pb680/1012DN0R.BI3",
"roms/machines/pb680/1012DN0R.RCV",
0x3a000, 128);
"roms/machines/pb680/1012DN0R.BI1",
"roms/machines/pb680/1012DN0R.BI2",
"roms/machines/pb680/1012DN0R.BI3",
"roms/machines/pb680/1012DN0R.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -543,17 +527,16 @@ machine_at_pb680_init(const machine_t *model)
return ret;
}
int
machine_at_mb520n_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/mb520n/520n503s.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -573,17 +556,16 @@ machine_at_mb520n_init(const machine_t *model)
return ret;
}
int
machine_at_i430vx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/430vx/55XWUQ0E.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -603,17 +585,16 @@ machine_at_i430vx_init(const machine_t *model)
return ret;
}
int
machine_at_nupro592_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/nupro592/np590b10.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -625,33 +606,32 @@ machine_at_nupro592_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2); /*Strongly suspect these are on-board slots*/
pci_register_slot(0x0C, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4); /* PIIX4 */
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4); /* PIIX4 */
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
device_add(&w83781d_device); /* fans: CPU1, unused, unused; temperatures: System, CPU1, unused */
device_add(&w83781d_device); /* fans: CPU1, unused, unused; temperatures: System, CPU1, unused */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.fans[1] = 0; /* unused */
hwm_values.fans[2] = 0; /* unused */
hwm_values.fans[1] = 0; /* unused */
hwm_values.fans[2] = 0; /* unused */
/* -5V is not reported by the BIOS, but leave it set */
return ret;
}
int
machine_at_tx97_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/tx97/0112.001",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -661,7 +641,7 @@ machine_at_tx97_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
@@ -670,48 +650,47 @@ machine_at_tx97_init(const machine_t *model)
device_add(&w83877tf_acorp_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
hwm_values.temperatures[1] = 0; /* unused */
/* CPU offset */
if (hwm_values.temperatures[2] < 32) /* prevent underflow */
hwm_values.temperatures[2] = 0;
hwm_values.temperatures[2] = 0;
else
hwm_values.temperatures[2] -= 32;
hwm_values.temperatures[2] -= 32;
return ret;
}
#if defined(DEV_BRANCH) && defined(USE_AN430TX)
int
machine_at_an430tx_init(const machine_t *model)
{
int ret;
#if 1
# if 1
ret = bios_load_linear_combined2("roms/machines/an430tx/P10-0095.BIO",
"roms/machines/an430tx/P10-0095.BI1",
"roms/machines/an430tx/P10-0095.BI2",
"roms/machines/an430tx/P10-0095.BI3",
"roms/machines/an430tx/P10-0095.RCV",
0x3a000, 160);
#else
"roms/machines/an430tx/P10-0095.BI1",
"roms/machines/an430tx/P10-0095.BI2",
"roms/machines/an430tx/P10-0095.BI3",
"roms/machines/an430tx/P10-0095.RCV",
0x3a000, 160);
# else
ret = bios_load_linear_combined2("roms/machines/an430tx/P06-0062.BIO",
"roms/machines/an430tx/P06-0062.BI1",
"roms/machines/an430tx/P06-0062.BI2",
"roms/machines/an430tx/P06-0062.BI3",
"roms/machines/an430tx/P10-0095.RCV",
0x3a000, 160);
#endif
"roms/machines/an430tx/P06-0062.BI1",
"roms/machines/an430tx/P06-0062.BI2",
"roms/machines/an430tx/P06-0062.BI3",
"roms/machines/an430tx/P10-0095.RCV",
0x3a000, 160);
# endif
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
// pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1);
@@ -728,17 +707,16 @@ machine_at_an430tx_init(const machine_t *model)
}
#endif
int
machine_at_ym430tx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ym430tx/YM430TX.003",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -748,7 +726,7 @@ machine_at_ym430tx_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
@@ -761,17 +739,16 @@ machine_at_ym430tx_init(const machine_t *model)
return ret;
}
int
machine_at_mb540n_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/mb540n/Tx0720ug.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -781,7 +758,7 @@ machine_at_mb540n_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_pci_device);
@@ -793,15 +770,15 @@ machine_at_mb540n_init(const machine_t *model)
}
int
machine_at_56a5_init(const machine_t* model)
machine_at_56a5_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/56a5/54p5b6b.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -811,7 +788,7 @@ machine_at_56a5_init(const machine_t* model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
@@ -829,16 +806,16 @@ machine_at_p5mms98_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/p5mms98/s981182.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -849,23 +826,22 @@ machine_at_p5mms98_init(const machine_t *model)
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
device_add(&lm78_device); /* fans: Thermal, CPU, Chassis; temperature: unused */
device_add(&lm78_device); /* fans: Thermal, CPU, Chassis; temperature: unused */
device_add(&lm75_1_4a_device); /* temperature: CPU */
return ret;
}
int
machine_at_ficva502_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ficva502/VA502bp.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -886,17 +862,16 @@ machine_at_ficva502_init(const machine_t *model)
return ret;
}
int
machine_at_ficpa2012_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ficpa2012/113jb16.awd",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -919,17 +894,16 @@ machine_at_ficpa2012_init(const machine_t *model)
return ret;
}
int
machine_at_r534f_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/r534f/r534f008.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -949,17 +923,16 @@ machine_at_r534f_init(const machine_t *model)
return ret;
}
int
machine_at_ms5146_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ms5146/A546MS11.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -979,17 +952,16 @@ machine_at_ms5146_init(const machine_t *model)
return ret;
}
int
machine_at_m560_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/m560/5600410s.ami",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -1004,24 +976,23 @@ machine_at_m560_init(const machine_t *model)
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&ali1531_device);
device_add(&ali1543_device); /* -5 */
device_add(&ali1543_device); /* -5 */
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
return ret;
}
int
machine_at_ms5164_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ms5164/W564MS43.005",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -1038,7 +1009,7 @@ machine_at_ms5164_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1531_device);
device_add(&ali1543_device); /* -5 */
device_add(&ali1543_device); /* -5 */
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);

View File

@@ -45,7 +45,6 @@
#include <86box/fdc.h>
#include <86box/nvr.h>
static void
machine_at_thor_common_init(const machine_t *model, int mr)
{
@@ -61,7 +60,7 @@ machine_at_thor_common_init(const machine_t *model, int mr)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (gfxcard == VID_INTERNAL)
device_add(&s3_phoenix_trio64vplus_onboard_pci_device);
device_add(&s3_phoenix_trio64vplus_onboard_pci_device);
// device_add(&keyboard_ps2_ami_pci_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
@@ -71,7 +70,6 @@ machine_at_thor_common_init(const machine_t *model, int mr)
device_add(&intel_flash_bxt_ami_device);
}
static void
machine_at_p54tp4xe_common_init(const machine_t *model)
{
@@ -91,68 +89,64 @@ machine_at_p54tp4xe_common_init(const machine_t *model)
device_add(&intel_flash_bxt_device);
}
int
machine_at_p54tp4xe_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p54tp4xe/t15i0302.awd",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_p54tp4xe_common_init(model);
return ret;
}
int
machine_at_p54tp4xe_mr_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p54tp4xe/TRITON.BIO",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_p54tp4xe_common_init(model);
return ret;
}
int
machine_at_gw2katx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/gw2katx/1003CN0T.BIO",
"roms/machines/gw2katx/1003CN0T.BI1", 0x20000, 128);
"roms/machines/gw2katx/1003CN0T.BI1", 0x20000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_thor_common_init(model, 0);
return ret;
}
int
machine_at_thor_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/thor/1006cn0_.bio",
"roms/machines/thor/1006cn0_.bi1", 0x20000, 128);
"roms/machines/thor/1006cn0_.bi1", 0x20000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_thor_common_init(model, 0);
@@ -165,27 +159,26 @@ machine_at_mrthor_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/mrthor/mr_atx.bio",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_thor_common_init(model, 1);
return ret;
}
int
machine_at_endeavor_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/endeavor/1006cb0_.bio",
"roms/machines/endeavor/1006cb0_.bi1", 0x1d000, 128);
"roms/machines/endeavor/1006cb0_.bi1", 0x1d000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -199,7 +192,7 @@ machine_at_endeavor_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (gfxcard == VID_INTERNAL)
device_add(&s3_phoenix_trio64_onboard_pci_device);
device_add(&s3_phoenix_trio64_onboard_pci_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
@@ -216,10 +209,10 @@ machine_at_ms5119_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/ms5119/A37E.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -239,17 +232,16 @@ machine_at_ms5119_init(const machine_t *model)
return ret;
}
int
machine_at_pb640_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/pb640/1007CP0R.BIO",
"roms/machines/pb640/1007CP0R.BI1", 0x1d000, 128);
"roms/machines/pb640/1007CP0R.BI1", 0x1d000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -264,7 +256,7 @@ machine_at_pb640_init(const machine_t *model)
device_add(&piix_rev02_device);
if (gfxcard == VID_INTERNAL)
device_add(&gd5440_onboard_pci_device);
device_add(&gd5440_onboard_pci_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&pc87306_device);
@@ -279,10 +271,10 @@ machine_at_fmb_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/fmb/P5IV183.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -303,17 +295,16 @@ machine_at_fmb_init(const machine_t *model)
return ret;
}
int
machine_at_acerm3a_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/acerm3a/r01-b3.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -335,17 +326,16 @@ machine_at_acerm3a_init(const machine_t *model)
return ret;
}
int
machine_at_ap53_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ap53/ap53r2c0.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -366,17 +356,16 @@ machine_at_ap53_init(const machine_t *model)
return ret;
}
int
machine_at_8500tuc_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/8500tuc/Tuc0221b.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -396,17 +385,16 @@ machine_at_8500tuc_init(const machine_t *model)
return ret;
}
int
machine_at_p55t2s_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p55t2s/s6y08t.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -426,17 +414,16 @@ machine_at_p55t2s_init(const machine_t *model)
return ret;
}
int
machine_at_p5vxb_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p5vxb/P5VXB10.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -456,21 +443,20 @@ machine_at_p5vxb_init(const machine_t *model)
return ret;
}
int
machine_at_gw2kte_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined2("roms/machines/gw2kte/1008CY1T.BIO",
"roms/machines/gw2kte/1008CY1T.BI1",
"roms/machines/gw2kte/1008CY1T.BI2",
"roms/machines/gw2kte/1008CY1T.BI3",
"roms/machines/gw2kte/1008CY1T.RCV",
0x3a000, 128);
"roms/machines/gw2kte/1008CY1T.BI1",
"roms/machines/gw2kte/1008CY1T.BI2",
"roms/machines/gw2kte/1008CY1T.BI3",
"roms/machines/gw2kte/1008CY1T.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -491,17 +477,16 @@ machine_at_gw2kte_init(const machine_t *model)
return ret;
}
int
machine_at_ap5s_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ap5s/AP5S150.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -521,17 +506,16 @@ machine_at_ap5s_init(const machine_t *model)
return ret;
}
int
machine_at_vectra54_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/vectra54/GT0724.22",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -544,7 +528,7 @@ machine_at_vectra54_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
if (gfxcard == VID_INTERNAL)
device_add(&s3_phoenix_trio64_onboard_pci_device);
device_add(&s3_phoenix_trio64_onboard_pci_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&i430fx_device);

View File

@@ -39,17 +39,16 @@
#include "cpu.h"
#include <86box/machine.h>
int
machine_at_p6rp4_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p6rp4/OR6I0106.SMC",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
device_add(&p6rp4_nvr_device);
@@ -74,17 +73,16 @@ machine_at_p6rp4_init(const machine_t *model)
return ret;
}
int
machine_at_686nx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/686nx/6nx.140",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -97,24 +95,23 @@ machine_at_686nx_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device); //Uses the AMIKEY keyboard controller
device_add(&keyboard_ps2_ami_pci_device); // Uses the AMIKEY keyboard controller
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
return ret;
}
int
machine_at_mb600n_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/mb600n/60915cs.rom",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -140,10 +137,10 @@ machine_at_acerv60n_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/acerv60n/V60NE5.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -170,14 +167,14 @@ machine_at_vs440fx_init(const machine_t *model)
int ret;
ret = bios_load_linear_combined2("roms/machines/vs440fx/1018CS1_.BIO",
"roms/machines/vs440fx/1018CS1_.BI1",
"roms/machines/vs440fx/1018CS1_.BI2",
"roms/machines/vs440fx/1018CS1_.BI3",
"roms/machines/vs440fx/1018CS1_.RCV",
0x3a000, 128);
"roms/machines/vs440fx/1018CS1_.BI1",
"roms/machines/vs440fx/1018CS1_.BI2",
"roms/machines/vs440fx/1018CS1_.BI3",
"roms/machines/vs440fx/1018CS1_.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -204,14 +201,14 @@ machine_at_ap440fx_init(const machine_t *model)
int ret;
ret = bios_load_linear_combined2("roms/machines/ap440fx/1011CT1_.BIO",
"roms/machines/ap440fx/1011CT1_.BI1",
"roms/machines/ap440fx/1011CT1_.BI2",
"roms/machines/ap440fx/1011CT1_.BI3",
"roms/machines/ap440fx/1011CT1_.RCV",
0x3a000, 128);
"roms/machines/ap440fx/1011CT1_.BI1",
"roms/machines/ap440fx/1011CT1_.BI2",
"roms/machines/ap440fx/1011CT1_.BI3",
"roms/machines/ap440fx/1011CT1_.RCV",
0x3a000, 128);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -237,10 +234,10 @@ machine_at_8600ttc_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/8600ttc/TTC0715B.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -266,10 +263,10 @@ machine_at_m6mi_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/m6mi/M6MI05.ROM",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init(model);
@@ -316,10 +313,10 @@ machine_at_p65up5_cp6nd_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/p65up5/ND6I0218.AWD",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_p65up5_common_init(model, &i440fx_device);

View File

@@ -44,17 +44,16 @@
#include <86box/snd_ac97.h>
#include <86box/clock.h>
int
machine_at_p5a_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p5a/1011.005",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -72,7 +71,7 @@ machine_at_p5a_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&ali1541_device);
device_add(&ali1543c_device); /* +0 */
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
device_add(&w83781d_p5a_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
@@ -80,17 +79,16 @@ machine_at_p5a_init(const machine_t *model)
return ret;
}
int
machine_at_m579_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/m579/MS6260S_Socket7_ALi_M1542_AMI.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -105,24 +103,23 @@ machine_at_m579_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1541_device);
device_add(&ali1543c_device); /* +0 */
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
return ret;
}
int
machine_at_5aa_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/5aa/GA-5AA.F7b",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -137,24 +134,23 @@ machine_at_5aa_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&ali1541_device);
device_add(&ali1543c_device); /* +0 */
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
return ret;
}
int
machine_at_5ax_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/5ax/5AX.F4",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -171,24 +167,23 @@ machine_at_5ax_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1541_device);
device_add(&ali1543c_device); /* +0 */
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
return ret;
}
int
machine_at_ax59pro_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ax59pro/AX59P236.BIN",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -211,17 +206,16 @@ machine_at_ax59pro_init(const machine_t *model)
return ret;
}
int
machine_at_mvp3_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ficva503p/je4333.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -243,17 +237,16 @@ machine_at_mvp3_init(const machine_t *model)
return ret;
}
int
machine_at_ficva503a_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ficva503a/jn4116.bin",
0x000c0000, 262144, 0);
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -273,25 +266,24 @@ machine_at_ficva503a_init(const machine_t *model)
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
hwm_values.temperatures[0] += 2; /* CPU offset */
hwm_values.temperatures[1] += 2; /* System offset */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
if (sound_card_current == SOUND_INTERNAL)
device_add(&wm9701a_device); /* on daughtercard */
device_add(&wm9701a_device); /* on daughtercard */
return ret;
}
int
machine_at_5emapro_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/5emapro/5emo1aa2.bin",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_at_common_init_ex(model, 2);
@@ -311,9 +303,9 @@ machine_at_5emapro_init(const machine_t *model)
device_add(&sst_flash_39sf010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&via_vt82c686_hwm_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */
hwm_values.temperatures[0] += 2; /* CPU offset */
hwm_values.temperatures[1] += 2; /* System offset */
hwm_values.temperatures[2] = 0; /* unused */
hwm_values.temperatures[0] += 2; /* CPU offset */
hwm_values.temperatures[1] += 2; /* System offset */
hwm_values.temperatures[2] = 0; /* unused */
return ret;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -105,65 +105,58 @@
#include <86box/video.h>
#include <86box/machine.h>
#define EUROPC_DEBUG 0 /* current debugging level */
#define EUROPC_DEBUG 0 /* current debugging level */
/* M3002 RTC chip registers. */
#define MRTC_SECONDS 0x00 /* BCD, 00-59 */
#define MRTC_MINUTES 0x01 /* BCD, 00-59 */
#define MRTC_HOURS 0x02 /* BCD, 00-23 */
#define MRTC_DAYS 0x03 /* BCD, 01-31 */
#define MRTC_MONTHS 0x04 /* BCD, 01-12 */
#define MRTC_YEARS 0x05 /* BCD, 00-99 (year only) */
#define MRTC_WEEKDAY 0x06 /* BCD, 01-07 */
#define MRTC_WEEKNO 0x07 /* BCD, 01-52 */
#define MRTC_CONF_A 0x08 /* EuroPC config, binary */
#define MRTC_CONF_B 0x09 /* EuroPC config, binary */
#define MRTC_CONF_C 0x0a /* EuroPC config, binary */
#define MRTC_CONF_D 0x0b /* EuroPC config, binary */
#define MRTC_CONF_E 0x0c /* EuroPC config, binary */
#define MRTC_CHECK_LO 0x0d /* Checksum, low byte */
#define MRTC_CHECK_HI 0x0e /* Checksum, high byte */
#define MRTC_CTRLSTAT 0x0f /* RTC control/status, binary */
#define MRTC_SECONDS 0x00 /* BCD, 00-59 */
#define MRTC_MINUTES 0x01 /* BCD, 00-59 */
#define MRTC_HOURS 0x02 /* BCD, 00-23 */
#define MRTC_DAYS 0x03 /* BCD, 01-31 */
#define MRTC_MONTHS 0x04 /* BCD, 01-12 */
#define MRTC_YEARS 0x05 /* BCD, 00-99 (year only) */
#define MRTC_WEEKDAY 0x06 /* BCD, 01-07 */
#define MRTC_WEEKNO 0x07 /* BCD, 01-52 */
#define MRTC_CONF_A 0x08 /* EuroPC config, binary */
#define MRTC_CONF_B 0x09 /* EuroPC config, binary */
#define MRTC_CONF_C 0x0a /* EuroPC config, binary */
#define MRTC_CONF_D 0x0b /* EuroPC config, binary */
#define MRTC_CONF_E 0x0c /* EuroPC config, binary */
#define MRTC_CHECK_LO 0x0d /* Checksum, low byte */
#define MRTC_CHECK_HI 0x0e /* Checksum, high byte */
#define MRTC_CTRLSTAT 0x0f /* RTC control/status, binary */
typedef struct {
uint16_t jim; /* JIM base address */
uint16_t jim; /* JIM base address */
uint8_t regs[16]; /* JIM internal regs (8) */
uint8_t regs[16]; /* JIM internal regs (8) */
nvr_t nvr; /* NVR */
uint8_t nvr_stat;
uint8_t nvr_addr;
nvr_t nvr; /* NVR */
uint8_t nvr_stat;
uint8_t nvr_addr;
void * mouse;
void *mouse;
} europc_t;
static europc_t europc;
#ifdef ENABLE_EUROPC_LOG
int europc_do_log = ENABLE_EUROPC_LOG;
static void
europc_log(const char *fmt, ...)
{
va_list ap;
va_list ap;
if (europc_do_log)
{
va_start(ap, fmt);
pclog_ex(fmt, ap);
va_end(ap);
}
if (europc_do_log) {
va_start(ap, fmt);
pclog_ex(fmt, ap);
va_end(ap);
}
}
#else
#define europc_log(fmt, ...)
# define europc_log(fmt, ...)
#endif
/*
* This is called every second through the NVR/RTC hook.
*
@@ -180,56 +173,55 @@ static void
europc_rtc_tick(nvr_t *nvr)
{
uint8_t *regs;
int mon, yr;
int mon, yr;
/* Only if RTC is running.. */
regs = nvr->regs;
if (! (regs[MRTC_CTRLSTAT] & 0x01)) return;
if (!(regs[MRTC_CTRLSTAT] & 0x01))
return;
regs[MRTC_SECONDS] = RTC_BCDINC(nvr->regs[MRTC_SECONDS], 1);
if (regs[MRTC_SECONDS] >= RTC_BCD(60)) {
regs[MRTC_SECONDS] = RTC_BCD(0);
regs[MRTC_MINUTES] = RTC_BCDINC(regs[MRTC_MINUTES], 1);
if (regs[MRTC_MINUTES] >= RTC_BCD(60)) {
regs[MRTC_MINUTES] = RTC_BCD(0);
regs[MRTC_HOURS] = RTC_BCDINC(regs[MRTC_HOURS], 1);
if (regs[MRTC_HOURS] >= RTC_BCD(24)) {
regs[MRTC_HOURS] = RTC_BCD(0);
regs[MRTC_DAYS] = RTC_BCDINC(regs[MRTC_DAYS], 1);
mon = RTC_DCB(regs[MRTC_MONTHS]);
yr = RTC_DCB(regs[MRTC_YEARS]) + 1900;
if (RTC_DCB(regs[MRTC_DAYS]) > nvr_get_days(mon, yr)) {
regs[MRTC_DAYS] = RTC_BCD(1);
regs[MRTC_MONTHS] = RTC_BCDINC(regs[MRTC_MONTHS], 1);
if (regs[MRTC_MONTHS] > RTC_BCD(12)) {
regs[MRTC_MONTHS] = RTC_BCD(1);
regs[MRTC_YEARS] = RTC_BCDINC(regs[MRTC_YEARS], 1) & 0xff;
}
}
}
}
regs[MRTC_SECONDS] = RTC_BCD(0);
regs[MRTC_MINUTES] = RTC_BCDINC(regs[MRTC_MINUTES], 1);
if (regs[MRTC_MINUTES] >= RTC_BCD(60)) {
regs[MRTC_MINUTES] = RTC_BCD(0);
regs[MRTC_HOURS] = RTC_BCDINC(regs[MRTC_HOURS], 1);
if (regs[MRTC_HOURS] >= RTC_BCD(24)) {
regs[MRTC_HOURS] = RTC_BCD(0);
regs[MRTC_DAYS] = RTC_BCDINC(regs[MRTC_DAYS], 1);
mon = RTC_DCB(regs[MRTC_MONTHS]);
yr = RTC_DCB(regs[MRTC_YEARS]) + 1900;
if (RTC_DCB(regs[MRTC_DAYS]) > nvr_get_days(mon, yr)) {
regs[MRTC_DAYS] = RTC_BCD(1);
regs[MRTC_MONTHS] = RTC_BCDINC(regs[MRTC_MONTHS], 1);
if (regs[MRTC_MONTHS] > RTC_BCD(12)) {
regs[MRTC_MONTHS] = RTC_BCD(1);
regs[MRTC_YEARS] = RTC_BCDINC(regs[MRTC_YEARS], 1) & 0xff;
}
}
}
}
}
}
/* Get the current NVR time. */
static void
rtc_time_get(uint8_t *regs, struct tm *tm)
{
/* NVR is in BCD data mode. */
tm->tm_sec = RTC_DCB(regs[MRTC_SECONDS]);
tm->tm_min = RTC_DCB(regs[MRTC_MINUTES]);
tm->tm_sec = RTC_DCB(regs[MRTC_SECONDS]);
tm->tm_min = RTC_DCB(regs[MRTC_MINUTES]);
tm->tm_hour = RTC_DCB(regs[MRTC_HOURS]);
tm->tm_wday = (RTC_DCB(regs[MRTC_WEEKDAY]) - 1);
tm->tm_mday = RTC_DCB(regs[MRTC_DAYS]);
tm->tm_mon = (RTC_DCB(regs[MRTC_MONTHS]) - 1);
tm->tm_mon = (RTC_DCB(regs[MRTC_MONTHS]) - 1);
tm->tm_year = RTC_DCB(regs[MRTC_YEARS]);
#if USE_Y2K
tm->tm_year += (RTC_DCB(regs[MRTC_CENTURY]) * 100) - 1900;
#endif
}
/* Set the current NVR time. */
static void
rtc_time_set(uint8_t *regs, struct tm *tm)
@@ -237,17 +229,16 @@ rtc_time_set(uint8_t *regs, struct tm *tm)
/* NVR is in BCD data mode. */
regs[MRTC_SECONDS] = RTC_BCD(tm->tm_sec);
regs[MRTC_MINUTES] = RTC_BCD(tm->tm_min);
regs[MRTC_HOURS] = RTC_BCD(tm->tm_hour);
regs[MRTC_HOURS] = RTC_BCD(tm->tm_hour);
regs[MRTC_WEEKDAY] = RTC_BCD(tm->tm_wday + 1);
regs[MRTC_DAYS] = RTC_BCD(tm->tm_mday);
regs[MRTC_MONTHS] = RTC_BCD(tm->tm_mon + 1);
regs[MRTC_YEARS] = RTC_BCD(tm->tm_year % 100);
regs[MRTC_DAYS] = RTC_BCD(tm->tm_mday);
regs[MRTC_MONTHS] = RTC_BCD(tm->tm_mon + 1);
regs[MRTC_YEARS] = RTC_BCD(tm->tm_year % 100);
#if USE_Y2K
regs[MRTC_CENTURY] = RTC_BCD((tm->tm_year+1900) / 100);
regs[MRTC_CENTURY] = RTC_BCD((tm->tm_year + 1900) / 100);
#endif
}
static void
rtc_start(nvr_t *nvr)
{
@@ -255,13 +246,13 @@ rtc_start(nvr_t *nvr)
/* Initialize the internal and chip times. */
if (time_sync & TIME_SYNC_ENABLED) {
/* Use the internal clock's time. */
nvr_time_get(&tm);
rtc_time_set(nvr->regs, &tm);
/* Use the internal clock's time. */
nvr_time_get(&tm);
rtc_time_set(nvr->regs, &tm);
} else {
/* Set the internal clock from the chip time. */
rtc_time_get(nvr->regs, &tm);
nvr_time_set(&tm);
/* Set the internal clock from the chip time. */
rtc_time_get(nvr->regs, &tm);
nvr_time_set(&tm);
}
#if 0
@@ -270,36 +261,34 @@ rtc_start(nvr_t *nvr)
#endif
}
/* Create a valid checksum for the current NVR data. */
static uint8_t
rtc_checksum(uint8_t *ptr)
{
uint8_t sum;
int i;
int i;
/* Calculate all bytes with XOR. */
sum = 0x00;
for (i=MRTC_CONF_A; i<=MRTC_CONF_E; i++)
sum += ptr[i];
for (i = MRTC_CONF_A; i <= MRTC_CONF_E; i++)
sum += ptr[i];
return(sum);
return (sum);
}
/* Reset the machine's NVR to a sane state. */
static void
rtc_reset(nvr_t *nvr)
{
/* Initialize the RTC to a known state. */
nvr->regs[MRTC_SECONDS] = RTC_BCD(0); /* seconds */
nvr->regs[MRTC_MINUTES] = RTC_BCD(0); /* minutes */
nvr->regs[MRTC_HOURS] = RTC_BCD(0); /* hours */
nvr->regs[MRTC_DAYS] = RTC_BCD(1); /* days */
nvr->regs[MRTC_MONTHS] = RTC_BCD(1); /* months */
nvr->regs[MRTC_YEARS] = RTC_BCD(80); /* years */
nvr->regs[MRTC_WEEKDAY] = RTC_BCD(1); /* weekday */
nvr->regs[MRTC_WEEKNO] = RTC_BCD(1); /* weekno */
nvr->regs[MRTC_SECONDS] = RTC_BCD(0); /* seconds */
nvr->regs[MRTC_MINUTES] = RTC_BCD(0); /* minutes */
nvr->regs[MRTC_HOURS] = RTC_BCD(0); /* hours */
nvr->regs[MRTC_DAYS] = RTC_BCD(1); /* days */
nvr->regs[MRTC_MONTHS] = RTC_BCD(1); /* months */
nvr->regs[MRTC_YEARS] = RTC_BCD(80); /* years */
nvr->regs[MRTC_WEEKDAY] = RTC_BCD(1); /* weekday */
nvr->regs[MRTC_WEEKNO] = RTC_BCD(1); /* weekno */
/*
* EuroPC System Configuration:
@@ -349,214 +338,210 @@ rtc_reset(nvr_t *nvr)
* [E] 7:4 unknown
* 3:0 country (00=Deutschland, 0A=ASCII)
*/
nvr->regs[MRTC_CONF_A] = 0x00; /* CONFIG A */
nvr->regs[MRTC_CONF_B] = 0x0A; /* CONFIG B */
nvr->regs[MRTC_CONF_C] = 0x28; /* CONFIG C */
nvr->regs[MRTC_CONF_D] = 0x12; /* CONFIG D */
nvr->regs[MRTC_CONF_E] = 0x0A; /* CONFIG E */
nvr->regs[MRTC_CONF_A] = 0x00; /* CONFIG A */
nvr->regs[MRTC_CONF_B] = 0x0A; /* CONFIG B */
nvr->regs[MRTC_CONF_C] = 0x28; /* CONFIG C */
nvr->regs[MRTC_CONF_D] = 0x12; /* CONFIG D */
nvr->regs[MRTC_CONF_E] = 0x0A; /* CONFIG E */
nvr->regs[MRTC_CHECK_LO] = 0x00; /* checksum (LO) */
nvr->regs[MRTC_CHECK_HI] = 0x00; /* checksum (HI) */
nvr->regs[MRTC_CHECK_LO] = 0x00; /* checksum (LO) */
nvr->regs[MRTC_CHECK_HI] = 0x00; /* checksum (HI) */
nvr->regs[MRTC_CTRLSTAT] = 0x01; /* status/control */
nvr->regs[MRTC_CTRLSTAT] = 0x01; /* status/control */
/* Generate a valid checksum. */
nvr->regs[MRTC_CHECK_LO] = rtc_checksum(nvr->regs);
}
/* Execute a JIM control command. */
static void
jim_set(europc_t *sys, uint8_t reg, uint8_t val)
{
switch(reg) {
case 0: /* MISC control (WO) */
// bit0: enable MOUSE
// bit1: enable joystick
break;
switch (reg) {
case 0: /* MISC control (WO) */
// bit0: enable MOUSE
// bit1: enable joystick
break;
case 2: /* AGA control */
if (! (val & 0x80)) {
/* Reset AGA. */
break;
}
case 2: /* AGA control */
if (!(val & 0x80)) {
/* Reset AGA. */
break;
}
switch (val) {
case 0x1f: /* 0001 1111 */
case 0x0b: /* 0000 1011 */
//europc_jim.mode=AGA_MONO;
europc_log("EuroPC: AGA Monochrome mode!\n");
break;
switch (val) {
case 0x1f: /* 0001 1111 */
case 0x0b: /* 0000 1011 */
// europc_jim.mode=AGA_MONO;
europc_log("EuroPC: AGA Monochrome mode!\n");
break;
case 0x18: /* 0001 1000 */
case 0x1a: /* 0001 1010 */
//europc_jim.mode=AGA_COLOR;
break;
case 0x18: /* 0001 1000 */
case 0x1a: /* 0001 1010 */
// europc_jim.mode=AGA_COLOR;
break;
case 0x0e: /* 0000 1100 */
/*80 columns? */
europc_log("EuroPC: AGA 80-column mode!\n");
break;
case 0x0e: /* 0000 1100 */
/*80 columns? */
europc_log("EuroPC: AGA 80-column mode!\n");
break;
case 0x0d: /* 0000 1011 */
/*40 columns? */
europc_log("EuroPC: AGA 40-column mode!\n");
break;
case 0x0d: /* 0000 1011 */
/*40 columns? */
europc_log("EuroPC: AGA 40-column mode!\n");
break;
default:
//europc_jim.mode=AGA_OFF;
break;
}
break;
default:
// europc_jim.mode=AGA_OFF;
break;
}
break;
case 4: /* CPU Speed control */
switch(val & 0xc0) {
case 0x00: /* 4.77 MHz */
// cpu_set_clockscale(0, 1.0/2);
break;
case 4: /* CPU Speed control */
switch (val & 0xc0) {
case 0x00: /* 4.77 MHz */
// cpu_set_clockscale(0, 1.0/2);
break;
case 0x40: /* 7.16 MHz */
// cpu_set_clockscale(0, 3.0/4);
break;
case 0x40: /* 7.16 MHz */
// cpu_set_clockscale(0, 3.0/4);
break;
default: /* 9.54 MHz */
// cpu_set_clockscale(0, 1);break;
break;
}
break;
default: /* 9.54 MHz */
// cpu_set_clockscale(0, 1);break;
break;
}
break;
default:
break;
default:
break;
}
sys->regs[reg] = val;
}
/* Write to one of the JIM registers. */
static void
jim_write(uint16_t addr, uint8_t val, void *priv)
{
europc_t *sys = (europc_t *)priv;
uint8_t b;
europc_t *sys = (europc_t *) priv;
uint8_t b;
#if EUROPC_DEBUG > 1
europc_log("EuroPC: jim_wr(%04x, %02x)\n", addr, val);
#endif
switch (addr & 0x000f) {
case 0x00: /* JIM internal registers (WRONLY) */
case 0x01:
case 0x02:
case 0x03:
case 0x04: /* JIM internal registers (R/W) */
case 0x05:
case 0x06:
case 0x07:
jim_set(sys, (addr & 0x07), val);
break;
case 0x00: /* JIM internal registers (WRONLY) */
case 0x01:
case 0x02:
case 0x03:
case 0x04: /* JIM internal registers (R/W) */
case 0x05:
case 0x06:
case 0x07:
jim_set(sys, (addr & 0x07), val);
break;
case 0x0a: /* M3002 RTC INDEX/DATA register */
switch(sys->nvr_stat) {
case 0: /* save index */
sys->nvr_addr = val & 0x0f;
sys->nvr_stat++;
break;
case 0x0a: /* M3002 RTC INDEX/DATA register */
switch (sys->nvr_stat) {
case 0: /* save index */
sys->nvr_addr = val & 0x0f;
sys->nvr_stat++;
break;
case 1: /* save data HI nibble */
b = sys->nvr.regs[sys->nvr_addr] & 0x0f;
b |= (val << 4);
sys->nvr.regs[sys->nvr_addr] = b;
sys->nvr_stat++;
nvr_dosave++;
break;
case 1: /* save data HI nibble */
b = sys->nvr.regs[sys->nvr_addr] & 0x0f;
b |= (val << 4);
sys->nvr.regs[sys->nvr_addr] = b;
sys->nvr_stat++;
nvr_dosave++;
break;
case 2: /* save data LO nibble */
b = sys->nvr.regs[sys->nvr_addr] & 0xf0;
b |= (val & 0x0f);
sys->nvr.regs[sys->nvr_addr] = b;
sys->nvr_stat = 0;
nvr_dosave++;
break;
}
break;
case 2: /* save data LO nibble */
b = sys->nvr.regs[sys->nvr_addr] & 0xf0;
b |= (val & 0x0f);
sys->nvr.regs[sys->nvr_addr] = b;
sys->nvr_stat = 0;
nvr_dosave++;
break;
}
break;
default:
europc_log("EuroPC: invalid JIM write %02x, val %02x\n", addr, val);
break;
default:
europc_log("EuroPC: invalid JIM write %02x, val %02x\n", addr, val);
break;
}
}
/* Read from one of the JIM registers. */
static uint8_t
jim_read(uint16_t addr, void *priv)
{
europc_t *sys = (europc_t *)priv;
uint8_t r = 0xff;
europc_t *sys = (europc_t *) priv;
uint8_t r = 0xff;
switch (addr & 0x000f) {
case 0x00: /* JIM internal registers (WRONLY) */
case 0x01:
case 0x02:
case 0x03:
r = 0x00;
break;
case 0x00: /* JIM internal registers (WRONLY) */
case 0x01:
case 0x02:
case 0x03:
r = 0x00;
break;
case 0x04: /* JIM internal registers (R/W) */
case 0x05:
case 0x06:
case 0x07:
r = sys->regs[addr & 0x07];
break;
case 0x04: /* JIM internal registers (R/W) */
case 0x05:
case 0x06:
case 0x07:
r = sys->regs[addr & 0x07];
break;
case 0x0a: /* M3002 RTC INDEX/DATA register */
switch(sys->nvr_stat) {
case 0:
r = 0x00;
break;
case 0x0a: /* M3002 RTC INDEX/DATA register */
switch (sys->nvr_stat) {
case 0:
r = 0x00;
break;
case 1: /* read data HI nibble */
r = (sys->nvr.regs[sys->nvr_addr] >> 4);
sys->nvr_stat++;
break;
case 1: /* read data HI nibble */
r = (sys->nvr.regs[sys->nvr_addr] >> 4);
sys->nvr_stat++;
break;
case 2: /* read data LO nibble */
r = (sys->nvr.regs[sys->nvr_addr] & 0x0f);
sys->nvr_stat = 0;
break;
}
break;
case 2: /* read data LO nibble */
r = (sys->nvr.regs[sys->nvr_addr] & 0x0f);
sys->nvr_stat = 0;
break;
}
break;
default:
europc_log("EuroPC: invalid JIM read %02x\n", addr);
break;
default:
europc_log("EuroPC: invalid JIM read %02x\n", addr);
break;
}
#if EUROPC_DEBUG > 1
europc_log("EuroPC: jim_rd(%04x): %02x\n", addr, r);
#endif
return(r);
return (r);
}
/* Initialize the mainboard 'device' of the machine. */
static void *
europc_boot(const device_t *info)
{
europc_t *sys = &europc;
uint8_t b;
uint8_t b;
#if EUROPC_DEBUG
europc_log("EuroPC: booting mainboard..\n");
#endif
europc_log("EuroPC: NVR=[ %02x %02x %02x %02x %02x ] %sVALID\n",
sys->nvr.regs[MRTC_CONF_A], sys->nvr.regs[MRTC_CONF_B],
sys->nvr.regs[MRTC_CONF_C], sys->nvr.regs[MRTC_CONF_D],
sys->nvr.regs[MRTC_CONF_E],
(sys->nvr.regs[MRTC_CHECK_LO]!=rtc_checksum(sys->nvr.regs))?"IN":"");
sys->nvr.regs[MRTC_CONF_A], sys->nvr.regs[MRTC_CONF_B],
sys->nvr.regs[MRTC_CONF_C], sys->nvr.regs[MRTC_CONF_D],
sys->nvr.regs[MRTC_CONF_E],
(sys->nvr.regs[MRTC_CHECK_LO] != rtc_checksum(sys->nvr.regs)) ? "IN" : "");
/*
* Now that we have initialized the NVR (either from file,
@@ -566,57 +551,57 @@ europc_boot(const device_t *info)
b = (sys->nvr.regs[MRTC_CONF_D] & ~0x17);
video_reset(gfxcard);
if (video_is_cga())
b |= 0x12; /* external video, CGA80 */
b |= 0x12; /* external video, CGA80 */
else if (video_is_mda())
b |= 0x03; /* external video, mono */
b |= 0x03; /* external video, mono */
else
b |= 0x10; /* external video, special */
b |= 0x10; /* external video, special */
sys->nvr.regs[MRTC_CONF_D] = b;
/* Update the memory size. */
b = (sys->nvr.regs[MRTC_CONF_C] & 0xf3);
switch(mem_size) {
case 256:
b |= 0x04;
break;
switch (mem_size) {
case 256:
b |= 0x04;
break;
case 512:
b |= 0x08;
break;
case 512:
b |= 0x08;
break;
case 640:
b |= 0x00;
break;
case 640:
b |= 0x00;
break;
}
sys->nvr.regs[MRTC_CONF_C] = b;
/* Update CPU speed. */
b = (sys->nvr.regs[MRTC_CONF_D] & 0x3f);
switch(cpu) {
case 0: /* 8088, 4.77 MHz */
b |= 0x00;
break;
switch (cpu) {
case 0: /* 8088, 4.77 MHz */
b |= 0x00;
break;
case 1: /* 8088, 7.15 MHz */
b |= 0x40;
break;
case 1: /* 8088, 7.15 MHz */
b |= 0x40;
break;
case 2: /* 8088, 9.56 MHz */
b |= 0x80;
break;
case 2: /* 8088, 9.56 MHz */
b |= 0x80;
break;
}
sys->nvr.regs[MRTC_CONF_D] = b;
/* Set up game port. */
b = (sys->nvr.regs[MRTC_CONF_C] & 0xfc);
if (mouse_type == MOUSE_TYPE_INTERNAL) {
sys->mouse = device_add(&mouse_logibus_onboard_device);
mouse_bus_set_irq(sys->mouse, 2);
/* Configure the port for (Bus Mouse Compatible) Mouse. */
b |= 0x01;
sys->mouse = device_add(&mouse_logibus_onboard_device);
mouse_bus_set_irq(sys->mouse, 2);
/* Configure the port for (Bus Mouse Compatible) Mouse. */
b |= 0x01;
} else if (joystick_type)
b |= 0x02; /* enable port as joysticks */
b |= 0x02; /* enable port as joysticks */
sys->nvr.regs[MRTC_CONF_C] = b;
#if 0
@@ -637,36 +622,36 @@ europc_boot(const device_t *info)
* the way of other cards that need this range.
*/
io_sethandler(sys->jim, 16,
jim_read,NULL,NULL, jim_write,NULL,NULL, sys);
jim_read, NULL, NULL, jim_write, NULL, NULL, sys);
/* Only after JIM has been initialized. */
(void)device_add(&keyboard_xt_device);
(void) device_add(&keyboard_xt_device);
/* Enable and set up the FDC. */
(void)device_add(&fdc_xt_device);
(void) device_add(&fdc_xt_device);
/*
/*
* Set up and enable the HD20 disk controller.
*
* We only do this if we have not configured another one.
*/
if (hdc_current == 1)
(void)device_add(&xta_hd20_device);
(void) device_add(&xta_hd20_device);
return(sys);
return (sys);
}
static void
europc_close(void *priv)
{
nvr_t *nvr = &europc.nvr;
if (nvr->fn != NULL)
free(nvr->fn);
free(nvr->fn);
}
static const device_config_t europc_config[] = {
// clang-format off
{
.name = "js9",
.description = "JS9 Jumper (JIM)",
@@ -682,20 +667,21 @@ static const device_config_t europc_config[] = {
},
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
};
const device_t europc_device = {
.name = "EuroPC System Board",
.name = "EuroPC System Board",
.internal_name = "europc",
.flags = 0,
.local = 0,
.init = europc_boot,
.close = europc_close,
.reset = NULL,
.flags = 0,
.local = 0,
.init = europc_boot,
.close = europc_close,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = europc_config
.force_redraw = NULL,
.config = europc_config
};
/*
@@ -712,10 +698,10 @@ machine_europc_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/europc/50145",
0x000f8000, 32768, 0);
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_common_init(model);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
@@ -728,12 +714,12 @@ machine_europc_init(const machine_t *model)
/* This is machine specific. */
europc.nvr.size = model->nvrmask + 1;
europc.nvr.irq = -1;
europc.nvr.irq = -1;
/* Set up any local handlers here. */
europc.nvr.reset = rtc_reset;
europc.nvr.start = rtc_start;
europc.nvr.tick = europc_rtc_tick;
europc.nvr.tick = europc_rtc_tick;
/* Initialize the actual NVR. */
nvr_init(&europc.nvr);

File diff suppressed because it is too large Load Diff

View File

@@ -64,208 +64,198 @@
#include <86box/machine.h>
#include <86box/sound.h>
typedef struct {
int model;
int model;
rom_t mid_rom, high_rom;
rom_t mid_rom, high_rom;
uint8_t ps1_91,
ps1_92,
ps1_94,
ps1_102,
ps1_103,
ps1_104,
ps1_105,
ps1_190;
int ps1_e0_addr;
uint8_t ps1_e0_regs[256];
uint8_t ps1_91,
ps1_92,
ps1_94,
ps1_102,
ps1_103,
ps1_104,
ps1_105,
ps1_190;
int ps1_e0_addr;
uint8_t ps1_e0_regs[256];
serial_t *uart;
serial_t *uart;
} ps1_t;
static void
recalc_memory(ps1_t *ps)
{
/* Enable first 512K */
mem_set_mem_state(0x00000, 0x80000,
(ps->ps1_e0_regs[0] & 0x01) ?
(MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) :
(MEM_READ_EXTANY | MEM_WRITE_EXTANY));
(ps->ps1_e0_regs[0] & 0x01) ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
/* Enable 512-640K */
mem_set_mem_state(0x80000, 0x20000,
(ps->ps1_e0_regs[1] & 0x01) ?
(MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) :
(MEM_READ_EXTANY | MEM_WRITE_EXTANY));
(ps->ps1_e0_regs[1] & 0x01) ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
}
static void
ps1_write(uint16_t port, uint8_t val, void *priv)
{
ps1_t *ps = (ps1_t *)priv;
ps1_t *ps = (ps1_t *) priv;
switch (port) {
case 0x0092:
if (ps->model != 2011) {
if (val & 1) {
softresetx86();
cpu_set_edx();
}
ps->ps1_92 = val & ~1;
} else {
ps->ps1_92 = val;
}
mem_a20_alt = val & 2;
mem_a20_recalc();
break;
case 0x0092:
if (ps->model != 2011) {
if (val & 1) {
softresetx86();
cpu_set_edx();
}
ps->ps1_92 = val & ~1;
} else {
ps->ps1_92 = val;
}
mem_a20_alt = val & 2;
mem_a20_recalc();
break;
case 0x0094:
ps->ps1_94 = val;
break;
case 0x0094:
ps->ps1_94 = val;
break;
case 0x00e0:
if (ps->model != 2011) {
ps->ps1_e0_addr = val;
}
break;
case 0x00e0:
if (ps->model != 2011) {
ps->ps1_e0_addr = val;
}
break;
case 0x00e1:
if (ps->model != 2011) {
ps->ps1_e0_regs[ps->ps1_e0_addr] = val;
recalc_memory(ps);
}
break;
case 0x00e1:
if (ps->model != 2011) {
ps->ps1_e0_regs[ps->ps1_e0_addr] = val;
recalc_memory(ps);
}
break;
case 0x0102:
if (!(ps->ps1_94 & 0x80)) {
lpt1_remove();
serial_remove(ps->uart);
if (val & 0x04) {
if (val & 0x08)
serial_setup(ps->uart, COM1_ADDR, COM1_IRQ);
else
serial_setup(ps->uart, COM2_ADDR, COM2_IRQ);
}
if (val & 0x10) {
switch ((val >> 5) & 3)
{
case 0:
lpt1_init(LPT_MDA_ADDR);
break;
case 1:
lpt1_init(LPT1_ADDR);
break;
case 2:
lpt1_init(LPT2_ADDR);
break;
}
}
ps->ps1_102 = val;
}
break;
case 0x0102:
if (!(ps->ps1_94 & 0x80)) {
lpt1_remove();
serial_remove(ps->uart);
if (val & 0x04) {
if (val & 0x08)
serial_setup(ps->uart, COM1_ADDR, COM1_IRQ);
else
serial_setup(ps->uart, COM2_ADDR, COM2_IRQ);
}
if (val & 0x10) {
switch ((val >> 5) & 3) {
case 0:
lpt1_init(LPT_MDA_ADDR);
break;
case 1:
lpt1_init(LPT1_ADDR);
break;
case 2:
lpt1_init(LPT2_ADDR);
break;
}
}
ps->ps1_102 = val;
}
break;
case 0x0103:
ps->ps1_103 = val;
break;
case 0x0103:
ps->ps1_103 = val;
break;
case 0x0104:
ps->ps1_104 = val;
break;
case 0x0104:
ps->ps1_104 = val;
break;
case 0x0105:
ps->ps1_105 = val;
break;
case 0x0105:
ps->ps1_105 = val;
break;
case 0x0190:
ps->ps1_190 = val;
break;
case 0x0190:
ps->ps1_190 = val;
break;
}
}
static uint8_t
ps1_read(uint16_t port, void *priv)
{
ps1_t *ps = (ps1_t *)priv;
ps1_t *ps = (ps1_t *) priv;
uint8_t ret = 0xff;
switch (port) {
case 0x0091:
ret = ps->ps1_91;
ps->ps1_91 = 0;
break;
case 0x0091:
ret = ps->ps1_91;
ps->ps1_91 = 0;
break;
case 0x0092:
ret = ps->ps1_92;
break;
case 0x0092:
ret = ps->ps1_92;
break;
case 0x0094:
ret = ps->ps1_94;
break;
case 0x0094:
ret = ps->ps1_94;
break;
case 0x00e1:
if (ps->model != 2011) {
ret = ps->ps1_e0_regs[ps->ps1_e0_addr];
}
break;
case 0x00e1:
if (ps->model != 2011) {
ret = ps->ps1_e0_regs[ps->ps1_e0_addr];
}
break;
case 0x0102:
if (ps->model == 2011)
ret = ps->ps1_102 | 0x08;
else
ret = ps->ps1_102;
break;
case 0x0102:
if (ps->model == 2011)
ret = ps->ps1_102 | 0x08;
else
ret = ps->ps1_102;
break;
case 0x0103:
ret = ps->ps1_103;
break;
case 0x0103:
ret = ps->ps1_103;
break;
case 0x0104:
ret = ps->ps1_104;
break;
case 0x0104:
ret = ps->ps1_104;
break;
case 0x0105:
if (ps->model == 2011)
ret = ps->ps1_105;
else
ret = ps->ps1_105 | 0x80;
break;
case 0x0105:
if (ps->model == 2011)
ret = ps->ps1_105;
else
ret = ps->ps1_105 | 0x80;
break;
case 0x0190:
ret = ps->ps1_190;
break;
case 0x0190:
ret = ps->ps1_190;
break;
default:
break;
default:
break;
}
return(ret);
return (ret);
}
static void
ps1_setup(int model)
{
ps1_t *ps;
void *priv;
void *priv;
ps = (ps1_t *)malloc(sizeof(ps1_t));
ps = (ps1_t *) malloc(sizeof(ps1_t));
memset(ps, 0x00, sizeof(ps1_t));
ps->model = model;
io_sethandler(0x0091, 1,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
io_sethandler(0x0092, 1,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
io_sethandler(0x0094, 1,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
io_sethandler(0x0102, 4,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
io_sethandler(0x0190, 1,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps->uart = device_add_inst(&ns16450_device, 1);
@@ -277,47 +267,47 @@ ps1_setup(int model)
device_add(&ps_nvr_device);
if (model == 2011) {
rom_init(&ps->high_rom,
"roms/machines/ibmps1es/f80000.bin",
0xf80000, 0x80000, 0x7ffff, 0, MEM_MAPPING_EXTERNAL);
rom_init(&ps->high_rom,
"roms/machines/ibmps1es/f80000.bin",
0xf80000, 0x80000, 0x7ffff, 0, MEM_MAPPING_EXTERNAL);
lpt2_remove();
lpt2_remove();
device_add(&ps1snd_device);
device_add(&ps1snd_device);
device_add(&fdc_at_ps1_device);
device_add(&fdc_at_ps1_device);
/* Enable the builtin HDC. */
if (hdc_current == 1) {
priv = device_add(&ps1_hdc_device);
/* Enable the builtin HDC. */
if (hdc_current == 1) {
priv = device_add(&ps1_hdc_device);
ps1_hdc_inform(priv, &ps->ps1_91);
}
ps1_hdc_inform(priv, &ps->ps1_91);
}
/* Enable the PS/1 VGA controller. */
device_add(&ps1vga_device);
/* Enable the PS/1 VGA controller. */
device_add(&ps1vga_device);
} else if (model == 2121) {
io_sethandler(0x00e0, 2,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
io_sethandler(0x00e0, 2,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
if (rom_present("roms/machines/ibmps1_2121/F80000.BIN")) {
rom_init(&ps->mid_rom,
"roms/machines/ibmps1_2121/F80000.BIN",
0xf80000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
}
rom_init(&ps->high_rom,
"roms/machines/ibmps1_2121/FC0000.BIN",
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
if (rom_present("roms/machines/ibmps1_2121/F80000.BIN")) {
rom_init(&ps->mid_rom,
"roms/machines/ibmps1_2121/F80000.BIN",
0xf80000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
}
rom_init(&ps->high_rom,
"roms/machines/ibmps1_2121/FC0000.BIN",
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
/* Initialize the video controller. */
if (gfxcard == VID_INTERNAL)
device_add(&ibm_ps1_2121_device);
/* Initialize the video controller. */
if (gfxcard == VID_INTERNAL)
device_add(&ibm_ps1_2121_device);
device_add(&fdc_at_ps1_device);
device_add(&fdc_at_ps1_device);
device_add(&ide_isa_device);
device_add(&ide_isa_device);
device_add(&ps1snd_device);
device_add(&ps1snd_device);
}
}
@@ -339,17 +329,16 @@ ps1_common_init(const machine_t *model)
standalone_gameport_type = &gameport_201_device;
}
int
machine_ps1_m2011_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ibmps1es/f80000.bin",
0x000e0000, 131072, 0x60000);
0x000e0000, 131072, 0x60000);
if (bios_only || !ret)
return ret;
return ret;
ps1_common_init(model);
@@ -358,17 +347,16 @@ machine_ps1_m2011_init(const machine_t *model)
return ret;
}
int
machine_ps1_m2121_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ibmps1_2121/FC0000.BIN",
0x000e0000, 131072, 0x20000);
0x000e0000, 131072, 0x20000);
if (bios_only || !ret)
return ret;
return ret;
ps1_common_init(model);

File diff suppressed because it is too large Load Diff

View File

@@ -25,28 +25,26 @@
#include <86box/video.h>
#include <86box/machine.h>
typedef struct {
int model;
int model;
int cpu_type;
uint8_t ps2_91,
ps2_92,
ps2_94,
ps2_102,
ps2_103,
ps2_104,
ps2_105,
ps2_190;
uint8_t ps2_91,
ps2_92,
ps2_94,
ps2_102,
ps2_103,
ps2_104,
ps2_105,
ps2_190;
serial_t *uart;
} ps2_isa_t;
static void
ps2_write(uint16_t port, uint8_t val, void *priv)
{
ps2_isa_t *ps2 = (ps2_isa_t *)priv;
ps2_isa_t *ps2 = (ps2_isa_t *) priv;
switch (port) {
case 0x0094:
@@ -98,16 +96,15 @@ ps2_write(uint16_t port, uint8_t val, void *priv)
}
}
static uint8_t
ps2_read(uint16_t port, void *priv)
{
ps2_isa_t *ps2 = (ps2_isa_t *)priv;
uint8_t temp = 0xff;
ps2_isa_t *ps2 = (ps2_isa_t *) priv;
uint8_t temp = 0xff;
switch (port) {
case 0x0091:
temp = ps2->ps2_91;
temp = ps2->ps2_91;
ps2->ps2_91 = 0;
break;
@@ -139,34 +136,32 @@ ps2_read(uint16_t port, void *priv)
return temp;
}
static void
ps2_isa_setup(int model, int cpu_type)
{
ps2_isa_t *ps2;
void *priv;
void *priv;
ps2 = (ps2_isa_t *)malloc(sizeof(ps2_isa_t));
ps2 = (ps2_isa_t *) malloc(sizeof(ps2_isa_t));
memset(ps2, 0x00, sizeof(ps2_isa_t));
ps2->model = model;
ps2->model = model;
ps2->cpu_type = cpu_type;
io_sethandler(0x0091, 1,
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
io_sethandler(0x0094, 1,
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
io_sethandler(0x0102, 4,
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
io_sethandler(0x0190, 1,
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
ps2_read, NULL, NULL, ps2_write, NULL, NULL, ps2);
ps2->uart = device_add_inst(&ns16450_device, 1);
lpt1_remove();
lpt1_init(LPT_MDA_ADDR);
device_add(&port_92_device);
device_add(&port_92_device);
mem_remap_top(384);
@@ -183,7 +178,6 @@ ps2_isa_setup(int model, int cpu_type)
device_add(&ps1vga_device);
}
static void
ps2_isa_common_init(const machine_t *model)
{
@@ -199,7 +193,6 @@ ps2_isa_common_init(const machine_t *model)
device_add(&port_6x_ps2_device);
}
int
machine_ps2_m30_286_init(const machine_t *model)
{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -50,47 +50,47 @@
int
machine_v86p_init(const machine_t *model)
{
int ret, rom = 0;
int ret, rom = 0;
ret = bios_load_interleavedr("roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Even.rom",
"roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Odd.rom",
0x000f8000, 65536, 0);
ret = bios_load_interleavedr("roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Even.rom",
"roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_122089_Odd.rom",
0x000f8000, 65536, 0);
if (!ret) {
/* Try an older version of the BIOS. */
rom = 1;
ret = bios_load_interleavedr("roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Even.rom",
"roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Odd.rom",
0x000f8000, 65536, 0);
}
if (!ret) {
/* Try an older version of the BIOS. */
rom = 1;
ret = bios_load_interleavedr("roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Even.rom",
"roms/machines/v86p/INTEL8086AWD_BIOS_S3.1_V86P_090489_Odd.rom",
0x000f8000, 65536, 0);
}
if (!ret) {
/* Try JVERNET's BIOS. */
rom = 2;
ret = bios_load_linear("roms/machines/v86p/V86P.ROM",
0x000f0000, 65536, 0);
}
if (!ret) {
/* Try JVERNET's BIOS. */
rom = 2;
ret = bios_load_linear("roms/machines/v86p/V86P.ROM",
0x000f0000, 65536, 0);
}
if (bios_only || !ret)
return ret;
if (bios_only || !ret)
return ret;
if (rom == 2)
loadfont("roms/machines/v86p/V86P.FON", 8);
else
loadfont("roms/machines/v86p/v86pfont.rom", 8);
if (rom == 2)
loadfont("roms/machines/v86p/V86P.FON", 8);
else
loadfont("roms/machines/v86p/v86pfont.rom", 8);
machine_common_init(model);
machine_common_init(model);
device_add(&ct_82c100_device);
device_add(&f82c606_device);
device_add(&ct_82c100_device);
device_add(&f82c606_device);
device_add(&keyboard_xt_device);
device_add(&keyboard_xt_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
if (gfxcard == VID_INTERNAL)
device_add(&f82c425_video_device);
if (gfxcard == VID_INTERNAL)
device_add(&f82c425_video_device);
return ret;
return ret;
}

View File

@@ -27,33 +27,32 @@ machine_xt_common_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
nmi_init();
standalone_gameport_type = &gameport_device;
}
int
machine_pc_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ibmpc/BIOS_5150_24APR81_U33.BIN",
0x000fe000, 40960, 0);
0x000fe000, 40960, 0);
if (ret) {
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U29 - 5700019.bin",
0x000f6000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U30 - 5700027.bin",
0x000f8000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U31 - 5700035.bin",
0x000fa000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U32 - 5700043.bin",
0x000fc000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U29 - 5700019.bin",
0x000f6000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U30 - 5700027.bin",
0x000f8000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U31 - 5700035.bin",
0x000fa000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc/IBM 5150 - Cassette BASIC version C1.00 - U32 - 5700043.bin",
0x000fc000, 8192, 0);
}
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_pc_device);
@@ -62,31 +61,30 @@ machine_pc_init(const machine_t *model)
return ret;
}
int
machine_pc82_init(const machine_t *model)
{
int ret, ret2;
ret = bios_load_linear("roms/machines/ibmpc82/pc102782.bin",
0x000fe000, 40960, 0);
0x000fe000, 40960, 0);
if (ret) {
ret2 = bios_load_aux_linear("roms/machines/ibmpc82/ibm-basic-1.10.rom",
0x000f6000, 32768, 0);
if (!ret2) {
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.f6",
0x000f6000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.f8",
0x000f8000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.fa",
0x000fa000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.fc",
0x000fc000, 8192, 0);
}
ret2 = bios_load_aux_linear("roms/machines/ibmpc82/ibm-basic-1.10.rom",
0x000f6000, 32768, 0);
if (!ret2) {
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.f6",
0x000f6000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.f8",
0x000f8000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.fa",
0x000fa000, 8192, 0);
bios_load_aux_linear("roms/machines/ibmpc82/basicc11.fc",
0x000fc000, 8192, 0);
}
}
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_pc82_device);
device_add(&ibm_5161_device);
@@ -96,7 +94,6 @@ machine_pc82_init(const machine_t *model)
return ret;
}
static void
machine_xt_init_ex(const machine_t *model)
{
@@ -105,27 +102,26 @@ machine_xt_init_ex(const machine_t *model)
machine_xt_common_init(model);
}
int
machine_xt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ibmxt/xt.rom",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (!ret) {
ret = bios_load_linear("roms/machines/ibmxt/1501512.u18",
0x000fe000, 65536, 0x6000);
if (ret) {
bios_load_aux_linear("roms/machines/ibmxt/1501512.u18",
0x000f8000, 24576, 0);
bios_load_aux_linear("roms/machines/ibmxt/5000027.u19",
0x000f0000, 32768, 0);
}
ret = bios_load_linear("roms/machines/ibmxt/1501512.u18",
0x000fe000, 65536, 0x6000);
if (ret) {
bios_load_aux_linear("roms/machines/ibmxt/1501512.u18",
0x000f8000, 24576, 0);
bios_load_aux_linear("roms/machines/ibmxt/5000027.u19",
0x000f0000, 32768, 0);
}
}
if (bios_only || !ret)
return ret;
return ret;
machine_xt_init_ex(model);
@@ -134,17 +130,16 @@ machine_xt_init(const machine_t *model)
return ret;
}
int
machine_genxt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/genxt/pcxt.rom",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_init_ex(model);
@@ -157,16 +152,16 @@ machine_xt86_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/ibmxt86/BIOS_5160_09MAY86_U18_59X7268_62X0890_27256_F800.BIN",
0x000fe000, 65536, 0x6000);
0x000fe000, 65536, 0x6000);
if (ret) {
(void) bios_load_aux_linear("roms/machines/ibmxt86/BIOS_5160_09MAY86_U18_59X7268_62X0890_27256_F800.BIN",
0x000f8000, 24576, 0);
(void) bios_load_aux_linear("roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN",
0x000f0000, 32768, 0);
(void) bios_load_aux_linear("roms/machines/ibmxt86/BIOS_5160_09MAY86_U18_59X7268_62X0890_27256_F800.BIN",
0x000f8000, 24576, 0);
(void) bios_load_aux_linear("roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN",
0x000f0000, 32768, 0);
}
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_xt86_device);
device_add(&ibm_5161_device);
@@ -176,7 +171,6 @@ machine_xt86_init(const machine_t *model)
return ret;
}
static void
machine_xt_clone_init(const machine_t *model)
{
@@ -191,10 +185,10 @@ machine_xt_americxt_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/americxt/AMERICXT.ROM",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
@@ -207,10 +201,10 @@ machine_xt_amixt_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/amixt/ami_8088_bios_31jan89.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
@@ -223,151 +217,143 @@ machine_xt_znic_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/znic/ibmzen.rom",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_dtk_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/dtk/dtk_erso_2.42_2764.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_jukopc_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/jukopc/000o001.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_openxt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/openxt/pcxt31.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_pcxt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pcxt/u18.rom",
0x000f8000, 65536, 0);
0x000f8000, 65536, 0);
if (ret) {
bios_load_aux_linear("roms/machines/pcxt/u19.rom",
0x000f0000, 32768, 0);
bios_load_aux_linear("roms/machines/pcxt/u19.rom",
0x000f0000, 32768, 0);
}
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_pxxt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pxxt/000p001.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_iskra3104_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/iskra3104/198.bin",
"roms/machines/iskra3104/199.bin",
0x000fc000, 16384, 0);
"roms/machines/iskra3104/199.bin",
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_pc4i_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pc4i/NCR_PC4i_BIOSROM_1985.BIN",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
return ret;
}
int
machine_xt_mpc1600_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/mpc1600/mpc4.34_merged.bin",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_pc82_device);
@@ -376,22 +362,21 @@ machine_xt_mpc1600_init(const machine_t *model)
return ret;
}
int
machine_xt_pcspirit_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pcspirit/u1101.bin",
0x000fe000, 16384, 0);
0x000fe000, 16384, 0);
if (ret) {
bios_load_aux_linear("roms/machines/pcspirit/u1103.bin",
0x000fc000, 8192, 0);
bios_load_aux_linear("roms/machines/pcspirit/u1103.bin",
0x000fc000, 8192, 0);
}
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_pc82_device);
@@ -400,17 +385,16 @@ machine_xt_pcspirit_init(const machine_t *model)
return ret;
}
int
machine_xt_pc700_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pc700/multitech pc-700 3.1.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_pc_device);
@@ -419,17 +403,16 @@ machine_xt_pc700_init(const machine_t *model)
return ret;
}
int
machine_xt_pc500_init(const machine_t* model)
machine_xt_pc500_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/pc500/rom404.bin",
0x000f8000, 32768, 0);
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
device_add(&keyboard_pc_device);
@@ -444,10 +427,10 @@ machine_xt_vendex_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/vendex/Vendex Turbo 888 XT - ROM BIOS - VER 2.03C.bin",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
@@ -460,15 +443,15 @@ machine_xt_super16t_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/super16t/Hyundai SUPER-16T - System BIOS HEA v1.12Ta (16k)(MBM27128)(1986).BIN",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
/* On-board FDC cannot be disabled */
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
return ret;
}
@@ -479,15 +462,15 @@ machine_xt_super16te_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/super16te/Hyundai SUPER-16TE - System BIOS v2.00Id (16k)(D27128A)(1989).BIN",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
/* On-board FDC cannot be disabled */
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
return ret;
}
@@ -498,15 +481,15 @@ machine_xt_top88_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/top88/Hyosung Topstar 88T - BIOS version 3.0.bin",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
/* On-board FDC cannot be disabled */
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
return ret;
}
@@ -517,10 +500,10 @@ machine_xt_kaypropc_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/kaypropc/Kaypro_v2.03K.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
@@ -533,15 +516,15 @@ machine_xt_sansx16_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/sansx16/tmm27128ad.bin.bin",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);
/* On-board FDC cannot be disabled */
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
return ret;
}
@@ -552,10 +535,10 @@ machine_xt_bw230_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/bw230/bondwell.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_clone_init(model);

View File

@@ -43,10 +43,10 @@ machine_xt_compaq_deskpro_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/deskpro/Compaq - BIOS - Revision J - 106265-002.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_common_init(model);
@@ -54,7 +54,7 @@ machine_xt_compaq_deskpro_init(const machine_t *model)
device_add(&keyboard_xt_compaq_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
nmi_init();
standalone_gameport_type = &gameport_device;
@@ -64,17 +64,16 @@ machine_xt_compaq_deskpro_init(const machine_t *model)
return ret;
}
int
machine_xt_compaq_portable_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/portable/compaq portable plus 100666-001 rev c u47.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_common_init(model);
@@ -82,10 +81,10 @@ machine_xt_compaq_portable_init(const machine_t *model)
device_add(&keyboard_xt_compaq_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
nmi_init();
if (joystick_type)
device_add(&gameport_device);
device_add(&gameport_device);
lpt1_remove();
lpt1_init(LPT_MDA_ADDR);

View File

@@ -20,150 +20,150 @@
#include <86box/gameport.h>
#include <86box/keyboard.h>
static int laserxt_emspage[4];
static int laserxt_emscontrol[4];
static int laserxt_emspage[4];
static int laserxt_emscontrol[4];
static mem_mapping_t laserxt_ems_mapping[4];
static int laserxt_ems_baseaddr_index = 0;
static int laserxt_is_lxt3 = 0;
static int laserxt_ems_baseaddr_index = 0;
static int laserxt_is_lxt3 = 0;
static uint32_t get_laserxt_ems_addr(uint32_t addr)
static uint32_t
get_laserxt_ems_addr(uint32_t addr)
{
if(laserxt_emspage[(addr >> 14) & 3] & 0x80)
{
addr = (!laserxt_is_lxt3 ? 0x70000 + (((mem_size + 64) & 255) << 10) : 0x30000 + (((mem_size + 320) & 511) << 10)) + ((laserxt_emspage[(addr >> 14) & 3] & 0x0F) << 14) + ((laserxt_emspage[(addr >> 14) & 3] & 0x40) << 12) + (addr & 0x3FFF);
}
if (laserxt_emspage[(addr >> 14) & 3] & 0x80) {
addr = (!laserxt_is_lxt3 ? 0x70000 + (((mem_size + 64) & 255) << 10) : 0x30000 + (((mem_size + 320) & 511) << 10)) + ((laserxt_emspage[(addr >> 14) & 3] & 0x0F) << 14) + ((laserxt_emspage[(addr >> 14) & 3] & 0x40) << 12) + (addr & 0x3FFF);
}
return addr;
return addr;
}
static void laserxt_write(uint16_t port, uint8_t val, void *priv)
static void
laserxt_write(uint16_t port, uint8_t val, void *priv)
{
int i;
uint32_t paddr, vaddr;
switch (port)
{
case 0x0208: case 0x4208: case 0x8208: case 0xC208:
laserxt_emspage[port >> 14] = val;
paddr = 0xC0000 + (port & 0xC000) + (((laserxt_ems_baseaddr_index + (4 - (port >> 14))) & 0x0C) << 14);
if(val & 0x80)
{
mem_mapping_enable(&laserxt_ems_mapping[port >> 14]);
vaddr = get_laserxt_ems_addr(paddr);
mem_mapping_set_exec(&laserxt_ems_mapping[port >> 14], ram + vaddr);
}
else
{
mem_mapping_disable(&laserxt_ems_mapping[port >> 14]);
}
flushmmucache();
break;
case 0x0209: case 0x4209: case 0x8209: case 0xC209:
laserxt_emscontrol[port >> 14] = val;
laserxt_ems_baseaddr_index = 0;
for(i=0; i<4; i++)
{
laserxt_ems_baseaddr_index |= (laserxt_emscontrol[i] & 0x80) >> (7 - i);
}
int i;
uint32_t paddr, vaddr;
switch (port) {
case 0x0208:
case 0x4208:
case 0x8208:
case 0xC208:
laserxt_emspage[port >> 14] = val;
paddr = 0xC0000 + (port & 0xC000) + (((laserxt_ems_baseaddr_index + (4 - (port >> 14))) & 0x0C) << 14);
if (val & 0x80) {
mem_mapping_enable(&laserxt_ems_mapping[port >> 14]);
vaddr = get_laserxt_ems_addr(paddr);
mem_mapping_set_exec(&laserxt_ems_mapping[port >> 14], ram + vaddr);
} else {
mem_mapping_disable(&laserxt_ems_mapping[port >> 14]);
}
flushmmucache();
break;
case 0x0209:
case 0x4209:
case 0x8209:
case 0xC209:
laserxt_emscontrol[port >> 14] = val;
laserxt_ems_baseaddr_index = 0;
for (i = 0; i < 4; i++) {
laserxt_ems_baseaddr_index |= (laserxt_emscontrol[i] & 0x80) >> (7 - i);
}
mem_mapping_set_addr(&laserxt_ems_mapping[0], 0xC0000 + (((laserxt_ems_baseaddr_index + 4) & 0x0C) << 14), 0x4000);
mem_mapping_set_addr(&laserxt_ems_mapping[1], 0xC4000 + (((laserxt_ems_baseaddr_index + 3) & 0x0C) << 14), 0x4000);
mem_mapping_set_addr(&laserxt_ems_mapping[2], 0xC8000 + (((laserxt_ems_baseaddr_index + 2) & 0x0C) << 14), 0x4000);
mem_mapping_set_addr(&laserxt_ems_mapping[3], 0xCC000 + (((laserxt_ems_baseaddr_index + 1) & 0x0C) << 14), 0x4000);
flushmmucache();
break;
}
mem_mapping_set_addr(&laserxt_ems_mapping[0], 0xC0000 + (((laserxt_ems_baseaddr_index + 4) & 0x0C) << 14), 0x4000);
mem_mapping_set_addr(&laserxt_ems_mapping[1], 0xC4000 + (((laserxt_ems_baseaddr_index + 3) & 0x0C) << 14), 0x4000);
mem_mapping_set_addr(&laserxt_ems_mapping[2], 0xC8000 + (((laserxt_ems_baseaddr_index + 2) & 0x0C) << 14), 0x4000);
mem_mapping_set_addr(&laserxt_ems_mapping[3], 0xCC000 + (((laserxt_ems_baseaddr_index + 1) & 0x0C) << 14), 0x4000);
flushmmucache();
break;
}
}
static uint8_t laserxt_read(uint16_t port, void *priv)
static uint8_t
laserxt_read(uint16_t port, void *priv)
{
switch (port)
{
case 0x0208: case 0x4208: case 0x8208: case 0xC208:
return laserxt_emspage[port >> 14];
case 0x0209: case 0x4209: case 0x8209: case 0xC209:
return laserxt_emscontrol[port >> 14];
break;
}
return 0xff;
switch (port) {
case 0x0208:
case 0x4208:
case 0x8208:
case 0xC208:
return laserxt_emspage[port >> 14];
case 0x0209:
case 0x4209:
case 0x8209:
case 0xC209:
return laserxt_emscontrol[port >> 14];
break;
}
return 0xff;
}
static void mem_write_laserxtems(uint32_t addr, uint8_t val, void *priv)
static void
mem_write_laserxtems(uint32_t addr, uint8_t val, void *priv)
{
addr = get_laserxt_ems_addr(addr);
if (addr < (mem_size << 10))
ram[addr] = val;
addr = get_laserxt_ems_addr(addr);
if (addr < (mem_size << 10))
ram[addr] = val;
}
static uint8_t mem_read_laserxtems(uint32_t addr, void *priv)
static uint8_t
mem_read_laserxtems(uint32_t addr, void *priv)
{
uint8_t val = 0xFF;
addr = get_laserxt_ems_addr(addr);
if (addr < (mem_size << 10))
val = ram[addr];
return val;
uint8_t val = 0xFF;
addr = get_laserxt_ems_addr(addr);
if (addr < (mem_size << 10))
val = ram[addr];
return val;
}
static void laserxt_init(int is_lxt3)
static void
laserxt_init(int is_lxt3)
{
int i;
int i;
if(mem_size > 640)
{
io_sethandler(0x0208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
io_sethandler(0x4208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
io_sethandler(0x8208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
io_sethandler(0xc208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
mem_mapping_set_addr(&ram_low_mapping, 0, !is_lxt3 ? 0x70000 + (((mem_size + 64) & 255) << 10) : 0x30000 + (((mem_size + 320) & 511) << 10));
}
if (mem_size > 640) {
io_sethandler(0x0208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
io_sethandler(0x4208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
io_sethandler(0x8208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
io_sethandler(0xc208, 0x0002, laserxt_read, NULL, NULL, laserxt_write, NULL, NULL, NULL);
mem_mapping_set_addr(&ram_low_mapping, 0, !is_lxt3 ? 0x70000 + (((mem_size + 64) & 255) << 10) : 0x30000 + (((mem_size + 320) & 511) << 10));
}
for (i = 0; i < 4; i++)
{
laserxt_emspage[i] = 0x7F;
laserxt_emscontrol[i] = (i == 3) ? 0x00 : 0x80;
mem_mapping_add(&laserxt_ems_mapping[i], 0xE0000 + (i << 14), 0x4000, mem_read_laserxtems, NULL, NULL, mem_write_laserxtems, NULL, NULL, ram + 0xA0000 + (i << 14), 0, NULL);
mem_mapping_disable(&laserxt_ems_mapping[i]);
}
mem_set_mem_state(0x0c0000, 0x40000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
laserxt_is_lxt3 = is_lxt3;
for (i = 0; i < 4; i++) {
laserxt_emspage[i] = 0x7F;
laserxt_emscontrol[i] = (i == 3) ? 0x00 : 0x80;
mem_mapping_add(&laserxt_ems_mapping[i], 0xE0000 + (i << 14), 0x4000, mem_read_laserxtems, NULL, NULL, mem_write_laserxtems, NULL, NULL, ram + 0xA0000 + (i << 14), 0, NULL);
mem_mapping_disable(&laserxt_ems_mapping[i]);
}
mem_set_mem_state(0x0c0000, 0x40000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
laserxt_is_lxt3 = is_lxt3;
}
int
machine_xt_laserxt_init(const machine_t *model)
{
int ret;
int ret;
ret = bios_load_linear("roms/machines/ltxt/27c64.bin",
0x000fe000, 8192, 0);
ret = bios_load_linear("roms/machines/ltxt/27c64.bin",
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
if (bios_only || !ret)
return ret;
machine_xt_init(model);
machine_xt_init(model);
laserxt_init(0);
laserxt_init(0);
return ret;
return ret;
}
int
machine_xt_lxt3_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/lxt3/27c64d.bin",
0x000fe000, 8192, 0);
0x000fe000, 8192, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_common_init(model);
@@ -172,7 +172,7 @@ machine_xt_lxt3_init(const machine_t *model)
device_add(&keyboard_xt_lxt3_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
nmi_init();
standalone_gameport_type = &gameport_device;

File diff suppressed because it is too large Load Diff

View File

@@ -41,13 +41,11 @@
#include <86box/io.h>
#include <86box/video.h>
typedef struct
{
uint8_t reg;
uint8_t reg;
} philips_t;
#ifdef ENABLE_PHILIPS_LOG
int philips_do_log = ENABLE_PHILIPS_LOG;
static void
@@ -58,11 +56,11 @@ philips_log(const char *fmt, ...)
if (philips_do_log) {
va_start(ap, fmt);
pclog_ex(fmt, ap);
va_end(ap);
va_end(ap);
}
}
#else
#define philips_log(fmt, ...)
# define philips_log(fmt, ...)
#endif
static void
@@ -71,39 +69,38 @@ philips_write(uint16_t port, uint8_t val, void *priv)
philips_t *dev = (philips_t *) priv;
switch (port) {
/* port 0xc0
* bit 7: turbo
* bits 4-5: rtc read/set (I2C Bus SDA/SCL?)
* bit 2: parity disabled
*/
case 0xc0:
dev->reg = val;
if (val & 0x80)
cpu_dynamic_switch(cpu);
else
cpu_dynamic_switch(0);
break;
/* port 0xc0
* bit 7: turbo
* bits 4-5: rtc read/set (I2C Bus SDA/SCL?)
* bit 2: parity disabled
*/
case 0xc0:
dev->reg = val;
if (val & 0x80)
cpu_dynamic_switch(cpu);
else
cpu_dynamic_switch(0);
break;
}
philips_log("Philips XT Mainboard: Write %02x at %02x\n", val, port);
}
static uint8_t
philips_read(uint16_t port, void *priv)
{
philips_t *dev = (philips_t *) priv;
uint8_t ret = 0xff;
uint8_t ret = 0xff;
switch (port) {
/* port 0xc0
* bit 7: turbo
* bits 4-5: rtc read/set
* bit 2: parity disabled
*/
case 0xc0:
ret = dev->reg;
break;
/* port 0xc0
* bit 7: turbo
* bits 4-5: rtc read/set
* bit 2: parity disabled
*/
case 0xc0:
ret = dev->reg;
break;
}
philips_log("Philips XT Mainboard: Read %02x at %02x\n", ret, port);
@@ -111,7 +108,6 @@ philips_read(uint16_t port, void *priv)
return ret;
}
static void
philips_close(void *priv)
{
@@ -134,17 +130,17 @@ philips_init(const device_t *info)
}
const device_t philips_device = {
.name = "Philips XT Mainboard",
.name = "Philips XT Mainboard",
.internal_name = "philips",
.flags = 0,
.local = 0,
.init = philips_init,
.close = philips_close,
.reset = NULL,
.flags = 0,
.local = 0,
.init = philips_init,
.close = philips_close,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
.force_redraw = NULL,
.config = NULL
};
void
@@ -163,7 +159,6 @@ machine_xt_philips_common_init(const machine_t *model)
device_add(&philips_device);
device_add(&xta_hd20_device);
}
int
@@ -172,15 +167,15 @@ machine_xt_p3105_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/p3105/philipsnms9100.bin",
0x000fc000, 16384, 0);
0x000fc000, 16384, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_philips_common_init(model);
/* On-board FDC cannot be disabled */
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
return ret;
}
@@ -191,10 +186,10 @@ machine_xt_p3120_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/p3120/philips_p3120.bin",
0x000f8000, 32768, 0);
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_xt_philips_common_init(model);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -27,17 +27,14 @@
#include <86box/m_xt_xi8088.h>
typedef struct xi8088_t
{
uint8_t turbo;
typedef struct xi8088_t {
uint8_t turbo;
int turbo_setting;
int bios_128kb;
int turbo_setting;
int bios_128kb;
} xi8088_t;
static xi8088_t xi8088;
static xi8088_t xi8088;
uint8_t
xi8088_turbo_get()
@@ -45,53 +42,51 @@ xi8088_turbo_get()
return xi8088.turbo;
}
void
xi8088_turbo_set(uint8_t value)
{
int c;
if (!xi8088.turbo_setting)
return;
return;
xi8088.turbo = value;
if (!value) {
c = cpu;
cpu = 0; /* 8088/4.77 */
cpu_set();
cpu = c;
c = cpu;
cpu = 0; /* 8088/4.77 */
cpu_set();
cpu = c;
} else
cpu_set();
cpu_set();
}
int
xi8088_bios_128kb(void)
{
return xi8088.bios_128kb;
}
static void *
xi8088_init(const device_t *info)
{
xi8088.turbo = 1;
xi8088.turbo = 1;
xi8088.turbo_setting = device_get_config_int("turbo_setting");
xi8088.bios_128kb = device_get_config_int("bios_128kb");
xi8088.bios_128kb = device_get_config_int("bios_128kb");
mem_set_mem_state(0x0a0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
mem_set_mem_state(0x0c0000, 0x08000, device_get_config_int("umb_c0000h_c7fff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0c8000, 0x08000, device_get_config_int("umb_c8000h_cffff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0d0000, 0x08000, device_get_config_int("umb_d0000h_d7fff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0d8000, 0x08000, device_get_config_int("umb_d8000h_dffff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0e0000, 0x08000, device_get_config_int("umb_e0000h_e7fff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0e8000, 0x08000, device_get_config_int("umb_e8000h_effff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0f0000, 0x10000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
mem_set_mem_state(0x0a0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
mem_set_mem_state(0x0c0000, 0x08000, device_get_config_int("umb_c0000h_c7fff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0c8000, 0x08000, device_get_config_int("umb_c8000h_cffff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0d0000, 0x08000, device_get_config_int("umb_d0000h_d7fff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0d8000, 0x08000, device_get_config_int("umb_d8000h_dffff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0e0000, 0x08000, device_get_config_int("umb_e0000h_e7fff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0e8000, 0x08000, device_get_config_int("umb_e8000h_effff") ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : (MEM_READ_EXTANY | MEM_WRITE_EXTANY));
mem_set_mem_state(0x0f0000, 0x10000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
return &xi8088;
}
static const device_config_t xi8088_config[] = {
// clang-format off
{
.name = "turbo_setting",
.description = "Turbo",
@@ -161,20 +156,21 @@ static const device_config_t xi8088_config[] = {
.default_int = 0
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
};
const device_t xi8088_device = {
.name = "Xi8088",
.name = "Xi8088",
.internal_name = "xi8088",
.flags = 0,
.local = 0,
.init = xi8088_init,
.close = NULL,
.reset = NULL,
.flags = 0,
.local = 0,
.init = xi8088_init,
.close = NULL,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = xi8088_config
.force_redraw = NULL,
.config = xi8088_config
};
int
@@ -183,29 +179,29 @@ machine_xt_xi8088_init(const machine_t *model)
int ret;
if (bios_only) {
ret = bios_load_linear_inverted("roms/machines/xi8088/bios-xi8088-128k.bin",
0x000e0000, 131072, 0);
ret |= bios_load_linear("roms/machines/xi8088/bios-xi8088.bin",
0x000f0000, 65536, 0);
ret = bios_load_linear_inverted("roms/machines/xi8088/bios-xi8088-128k.bin",
0x000e0000, 131072, 0);
ret |= bios_load_linear("roms/machines/xi8088/bios-xi8088.bin",
0x000f0000, 65536, 0);
} else {
device_add(&xi8088_device);
device_add(&xi8088_device);
if (xi8088_bios_128kb()) {
ret = bios_load_linear_inverted("roms/machines/xi8088/bios-xi8088-128k.bin",
0x000e0000, 131072, 0);
} else {
ret = bios_load_linear("roms/machines/xi8088/bios-xi8088.bin",
0x000f0000, 65536, 0);
}
if (xi8088_bios_128kb()) {
ret = bios_load_linear_inverted("roms/machines/xi8088/bios-xi8088-128k.bin",
0x000e0000, 131072, 0);
} else {
ret = bios_load_linear("roms/machines/xi8088/bios-xi8088.bin",
0x000f0000, 65536, 0);
}
}
if (bios_only || !ret)
return ret;
return ret;
machine_common_init(model);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&fdc_at_device);
device_add(&keyboard_ps2_xi8088_device);
device_add(&port_6x_xi8088_device);
@@ -213,7 +209,7 @@ machine_xt_xi8088_init(const machine_t *model)
device_add(&ibmat_nvr_device);
pic2_init();
standalone_gameport_type = &gameport_device;
device_add(&sst_flash_39sf010_device);
device_add(&sst_flash_39sf010_device);
return ret;
}

View File

@@ -47,78 +47,74 @@
#include <86box/io.h>
#include <86box/vid_cga.h>
typedef struct {
mem_mapping_t scratchpad_mapping;
uint8_t *scratchpad_ram;
uint8_t *scratchpad_ram;
} zenith_t;
static uint8_t
zenith_scratchpad_read(uint32_t addr, void *p)
{
zenith_t *dev = (zenith_t *)p;
zenith_t *dev = (zenith_t *) p;
return dev->scratchpad_ram[addr & 0x3fff];
}
static void
zenith_scratchpad_write(uint32_t addr, uint8_t val, void *p)
{
zenith_t *dev = (zenith_t *)p;
zenith_t *dev = (zenith_t *) p;
dev->scratchpad_ram[addr & 0x3fff] = val;
}
static void *
zenith_scratchpad_init(const device_t *info)
{
zenith_t *dev;
dev = (zenith_t *)malloc(sizeof(zenith_t));
dev = (zenith_t *) malloc(sizeof(zenith_t));
memset(dev, 0x00, sizeof(zenith_t));
dev->scratchpad_ram = malloc(0x4000);
mem_mapping_add(&dev->scratchpad_mapping, 0xf0000, 0x4000,
zenith_scratchpad_read, NULL, NULL,
zenith_scratchpad_write, NULL, NULL,
dev->scratchpad_ram, MEM_MAPPING_EXTERNAL, dev);
zenith_scratchpad_read, NULL, NULL,
zenith_scratchpad_write, NULL, NULL,
dev->scratchpad_ram, MEM_MAPPING_EXTERNAL, dev);
return dev;
}
static void
zenith_scratchpad_close(void *p)
{
zenith_t *dev = (zenith_t *)p;
zenith_t *dev = (zenith_t *) p;
free(dev->scratchpad_ram);
free(dev);
}
static const device_t zenith_scratchpad_device = {
.name = "Zenith scratchpad RAM",
.name = "Zenith scratchpad RAM",
.internal_name = "zenith_scratchpad",
.flags = 0,
.local = 0,
.init = zenith_scratchpad_init,
.close = zenith_scratchpad_close,
.reset = NULL,
.flags = 0,
.local = 0,
.init = zenith_scratchpad_init,
.close = zenith_scratchpad_close,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
.force_redraw = NULL,
.config = NULL
};
void
machine_zenith_init(const machine_t *model){
machine_zenith_init(const machine_t *model)
{
machine_common_init(model);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
device_add(&fdc_xt_device);
device_add(&zenith_scratchpad_device);
@@ -127,7 +123,6 @@ machine_zenith_init(const machine_t *model){
device_add(&keyboard_xt_zenith_device);
nmi_init();
}
/*
@@ -140,18 +135,18 @@ machine_xt_z184_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/zdsupers/z184m v3.1d.10d",
0x000f8000, 32768, 0);
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_zenith_init(model);
lpt1_remove(); /* only one parallel port */
lpt1_remove(); /* only one parallel port */
lpt2_remove();
lpt1_init(0x278);
device_add(&ns8250_device);
serial_set_next_inst(SERIAL_MAX); /* So that serial_standalone_init() won't do anything. */
serial_set_next_inst(SERIAL_MAX); /* So that serial_standalone_init() won't do anything. */
device_add(&cga_device);
@@ -163,14 +158,14 @@ machine_xt_z151_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/zdsz151/444-229-18.bin",
0x000fc000, 32768, 0);
0x000fc000, 32768, 0);
if (ret) {
bios_load_aux_linear("roms/machines/zdsz151/444-260-18.bin",
0x000f8000, 16384, 0);
0x000f8000, 16384, 0);
}
if (bios_only || !ret)
return ret;
return ret;
machine_zenith_init(model);
@@ -187,15 +182,15 @@ machine_xt_z159_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/zdsz159/z159m v2.9e.10d",
0x000f8000, 32768, 0);
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_zenith_init(model);
/* parallel port is on the memory board */
lpt1_remove(); /* only one parallel port */
lpt1_remove(); /* only one parallel port */
lpt2_remove();
lpt1_init(0x278);

View File

@@ -663,21 +663,21 @@ const machine_t machines[] = {
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0,
},
},
.bus_flags = MACHINE_PC,
.flags = MACHINE_FLAGS_NONE,
.ram = {
.min = 128,
.max = 640,
.step = 64,
},
},
.nvrmask = 0,
.kbc = KBC_IBM_PC_XT,
.kbc_p1 = 0xff00,
.gpio = 0xffffffff,
.device = NULL,
.vid_device = NULL
},
},
{
.name = "[8088] Multitech PC-500",
.internal_name = "pc500",