Added IBM XT Model 286 emulation.
This commit is contained in:
parent
a44fcb196b
commit
a3ae6a6eed
7 changed files with 25 additions and 0 deletions
BIN
nvr/default/ibmxt286.nvr
Normal file
BIN
nvr/default/ibmxt286.nvr
Normal file
Binary file not shown.
|
|
@ -197,6 +197,13 @@ CPU cpus_ibmat[] =
|
|||
{"", -1, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
CPU cpus_ibmxt286[] =
|
||||
{
|
||||
/*286*/
|
||||
{"286/6", CPU_286, 0, 6000000, 1, 0, 0, 0, 0, 0, 2,2,2,2},
|
||||
{"", -1, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
CPU cpus_ps1_m2011[] =
|
||||
{
|
||||
/*286*/
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ extern CPU cpus_pcjr[];
|
|||
extern CPU cpus_europc[];
|
||||
extern CPU cpus_pc1512[];
|
||||
extern CPU cpus_ibmat[];
|
||||
extern CPU cpus_ibmxt286[];
|
||||
extern CPU cpus_ps1_m2011[];
|
||||
extern CPU cpus_ps2_m30_286[];
|
||||
extern CPU cpus_acer[];
|
||||
|
|
|
|||
|
|
@ -432,6 +432,7 @@ enum
|
|||
ROM_IBMPS2_M55SX,
|
||||
ROM_IBMPS2_M80,
|
||||
ROM_ATARIPC3,
|
||||
ROM_IBMXT286,
|
||||
|
||||
ROM_MAX
|
||||
};
|
||||
|
|
|
|||
13
src/mem.c
13
src/mem.c
|
|
@ -715,6 +715,19 @@ int loadbios()
|
|||
fread(rom+0x8000,32768,1,f);
|
||||
fclose(f);
|
||||
return 1;
|
||||
|
||||
case ROM_IBMXT286:
|
||||
f = romfopen("ibmxt286/BIOS_5162_21APR86_U34_78X7460_27256.BIN", "rb");
|
||||
ff =romfopen("ibmxt286/BIOS_5162_21APR86_U35_78X7461_27256.BIN", "rb");
|
||||
if (!f || !ff) break;
|
||||
for (c=0x0000;c<0x10000;c+=2)
|
||||
{
|
||||
rom[c]=getc(f);
|
||||
rom[c+1]=getc(ff);
|
||||
}
|
||||
fclose(ff);
|
||||
fclose(f);
|
||||
return 1;
|
||||
}
|
||||
printf("Failed to load ROM!\n");
|
||||
if (f) fclose(f);
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ MODEL models[] =
|
|||
{"[286] IBM PS/1 model 2011", ROM_IBMPS1_2011, "ibmps1es", { {"", cpus_ps1_m2011}, {"", NULL}, {"", NULL}}, 1, MODEL_AT|MODEL_PS2, 512,16384,512, ps1_m2011_init, NULL},
|
||||
{"[286] IBM PS/2 Model 30-286", ROM_IBMPS2_M30_286, "ibmps2_m30_286", { {"", cpus_ps2_m30_286}, {"", NULL}, {"", NULL}}, 1, MODEL_AT|MODEL_PS2, 1, 16, 1, ps2_m30_286_init, NULL},
|
||||
{"[286] IBM PS/2 Model 50", ROM_IBMPS2_M50, "ibmps2_m50", { {"", cpus_ps2_m30_286}, {"", NULL}, {"", NULL}}, 1, MODEL_AT|MODEL_PS2|MODEL_MCA, 1, 16, 1, ps2_model_50_init, NULL},
|
||||
{"[286] IBM XT Model 286", ROM_IBMXT286, "ibmxt286", { {"", cpus_ibmxt286}, {"", NULL}, {"", NULL}}, 0, MODEL_AT, 256,15872,128, ibm_at_init, NULL},
|
||||
{"[286] Samsung SPC-4200P", ROM_SPC4200P, "spc4200p", { {"", cpus_286}, {"", NULL}, {"", NULL}}, 0, MODEL_AT|MODEL_PS2|MODEL_HAS_IDE, 512,2048, 128, at_scat_init, NULL},
|
||||
{"[286] Samsung SPC-4216P", ROM_SPC4216P, "spc4216p", { {"", cpus_286}, {"", NULL}, {"", NULL}}, 0, MODEL_AT|MODEL_PS2|MODEL_HAS_IDE, 1, 5, 1, at_scat_init, NULL},
|
||||
|
||||
|
|
|
|||
|
|
@ -244,6 +244,7 @@ void loadnvr()
|
|||
case ROM_PC2086: f = nvrfopen("pc2086.nvr", "rb"); break;
|
||||
case ROM_PC3086: f = nvrfopen("pc3086.nvr", "rb"); break;
|
||||
case ROM_IBMAT: f = nvrfopen("at.nvr", "rb"); break;
|
||||
case ROM_IBMXT286: f = nvrfopen("ibmxt286.nvr", "rb"); break;
|
||||
case ROM_IBMPS1_2011: f = nvrfopen("ibmps1_2011.nvr", "rb"); /*nvrmask = 127; */break;
|
||||
case ROM_IBMPS1_2121: f = nvrfopen("ibmps1_2121.nvr", "rb"); nvrmask = 127; break;
|
||||
case ROM_IBMPS2_M30_286: f = nvrfopen("ibmps2_m30_286.nvr", "rb"); /*nvrmask = 127; */break;
|
||||
|
|
@ -311,6 +312,7 @@ void savenvr()
|
|||
case ROM_PC2086: f = nvrfopen("pc2086.nvr", "wb"); break;
|
||||
case ROM_PC3086: f = nvrfopen("pc3086.nvr", "wb"); break;
|
||||
case ROM_IBMAT: f = nvrfopen("at.nvr", "wb"); break;
|
||||
case ROM_IBMXT286: f = nvrfopen("ibmxt286.nvr", "wb"); break;
|
||||
case ROM_IBMPS1_2011: f = nvrfopen("ibmps1_2011.nvr", "wb"); break;
|
||||
case ROM_IBMPS1_2121: f = nvrfopen("ibmps1_2121.nvr", "wb"); break;
|
||||
case ROM_IBMPS2_M30_286: f = nvrfopen("ibmps2_m30_286.nvr", "wb"); break;
|
||||
|
|
|
|||
Loading…
Reference in a new issue