Changed version to 1.10;

Applied mainline PCem commit that adds MFM hard disk emulation;
Commented out the Commodore PC III 60.
This commit is contained in:
OBattler
2017-03-15 01:37:09 +01:00
parent 2e193fdbac
commit 8452458c1a
20 changed files with 1177 additions and 290 deletions

134
src/mem.c
View File

@@ -48,12 +48,12 @@ static mem_mapping_t romext_mapping;
int shadowbios,shadowbios_write;
int enable_xtide = 0;
static unsigned char isram[0x10000];
static uint8_t ff_array[0x1000];
int enable_xtide = 0;
int mem_size;
uint32_t biosmask;
int readlnum=0,writelnum=0;
@@ -64,34 +64,6 @@ uint8_t romext[32768];
uint32_t ram_mapped_addr[64];
static void mem_load_xtide_bios()
{
FILE *f;
f=romfopen("roms/ide_xt.bin","rb");
// is486=0;
if (f)
{
fread(romext,16384,1,f);
mem_mapping_enable(&romext_mapping);
fclose(f);
}
}
static void mem_load_atide_bios()
{
FILE *f;
f=romfopen("roms/ide_at.bin","rb");
// is486=0;
if (f)
{
fread(romext,16384,1,f);
mem_mapping_enable(&romext_mapping);
fclose(f);
}
}
static void mem_load_atide115_bios()
{
FILE *f;
@@ -136,10 +108,6 @@ int loadbios()
}
fclose(ff);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
loadfont("roms/pc1512/40078.ic127", 2);
return 1;
case ROM_PC1640:
@@ -156,10 +124,6 @@ int loadbios()
f=romfopen("roms/pc1640/40100","rb");
if (!f) break;
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_PC200:
f=romfopen("roms/pc200/pc20v2.1","rb");
@@ -172,10 +136,6 @@ int loadbios()
}
fclose(ff);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
loadfont("roms/pc200/40109.bin", 1);
return 1;
case ROM_TANDY:
@@ -183,10 +143,6 @@ int loadbios()
if (!f) break;
fread(rom,65536,1,f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_TANDY1000HX:
f = romfopen("roms/tandy1000hx/v020000.u12", "rb");
@@ -194,10 +150,6 @@ int loadbios()
fread(rom, 0x20000, 1, f);
fclose(f);
biosmask = 0x1ffff;
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_TANDY1000SL2:
f = romfopen("roms/tandy1000sl2/8079047.hu1" ,"rb");
@@ -212,10 +164,6 @@ int loadbios()
}
fclose(ff);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
/* case ROM_IBMPCJR:
f=fopen("pcjr/bios.rom","rb");
@@ -236,20 +184,12 @@ int loadbios()
fread(rom + 0x8000, 0x8000, 1, ff);
fclose(ff);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
}
else
{
fread(rom,65536,1,f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
}
break;
@@ -266,20 +206,12 @@ int loadbios()
if (!f) break;
fread(rom+0xE000,8192,1,f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_DTKXT:
f=romfopen("roms/dtk/DTK_ERSO_2.42_2764.bin","rb");
if (!f) break;
fread(rom+0xE000,8192,1,f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_OLIM24:
f = romfopen("roms/olivetti_m24/olivetti_m24_version_1.43_low.bin" ,"rb");
@@ -292,10 +224,6 @@ int loadbios()
}
fclose(ff);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_PC2086:
@@ -314,10 +242,6 @@ int loadbios()
f = romfopen("roms/pc2086/40186.ic171", "rb");
if (!f) break;
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
biosmask = 0x3fff;
return 1;
@@ -329,10 +253,6 @@ int loadbios()
f = romfopen("roms/pc3086/c000.bin", "rb");
if (!f) break;
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
biosmask = 0x3fff;
return 1;
@@ -353,10 +273,6 @@ int loadbios()
}
fclose(ff);
fclose(f);
if (enable_xtide)
{
mem_load_atide_bios();
}
return 1;
case ROM_CMDPC30:
f = romfopen("roms/cmdpc30/commodore pc 30 iii even.bin", "rb");
@@ -371,6 +287,7 @@ int loadbios()
fclose(f);
biosmask = 0x7fff;
return 1;
#if 0
case ROM_CMDPC60:
f = romfopen("roms/cmdpc60/cbm-pc60c-bios-lo-v1.36-390473-07.bin", "rb");
ff = romfopen("roms/cmdpc60/cbm-pc60c-bios-hi-v1.36-390474-07.bin", "rb");
@@ -384,6 +301,7 @@ int loadbios()
fclose(f);
biosmask = 0x1ffff;
return 1;
#endif
case ROM_DELL200:
f=romfopen("roms/dells200/dell0.bin","rb");
ff=romfopen("roms/dells200/dell1.bin","rb");
@@ -459,10 +377,6 @@ int loadbios()
fread(rom+0x8000,32768,1,f);
fclose(f);
// memset(romext,0x63,0x8000);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_IBMPC:
@@ -487,10 +401,6 @@ int loadbios()
if (!f) break;
fread(rom+0xC000,8192,1,f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_MEGAPC:
@@ -609,11 +519,11 @@ int loadbios()
fread(rom, 0x20000, 1, f);
fclose(f);
//#endif
biosmask = 0x1ffff;
if (enable_xtide)
{
mem_load_atide115_bios();
mem_load_atide115_bios();
}
biosmask = 0x1ffff;
return 1;
case ROM_IBMPS1_2121:
@@ -623,11 +533,11 @@ int loadbios()
fseek(f, 0x20000, SEEK_SET);
fread(rom, 0x20000, 1, f);
fclose(f);
biosmask = 0x1ffff;
if (enable_xtide)
{
mem_load_atide115_bios();
mem_load_atide115_bios();
}
biosmask = 0x1ffff;
return 1;
case ROM_DESKPRO_386:
@@ -642,10 +552,6 @@ int loadbios()
fclose(ff);
fclose(f);
biosmask = 0x7fff;
if (enable_xtide)
{
mem_load_atide_bios();
}
return 1;
case ROM_AMIXT:
@@ -653,10 +559,6 @@ int loadbios()
if (!f) break;
fread(rom + 0xE000, 8192, 1, f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_LTXT:
@@ -664,10 +566,6 @@ int loadbios()
if (!f) break;
fread(rom + 0xE000, 8192, 1, f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_LXT3:
@@ -675,10 +573,6 @@ int loadbios()
if (!f) break;
fread(rom + 0xE000, 8192, 1, f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_SPC4200P: /*Samsung SPC-4200P*/
@@ -722,10 +616,6 @@ int loadbios()
if (!f) break;
fread(rom + 0xE000, 8192, 1, f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_JUKOPC:
@@ -733,10 +623,6 @@ int loadbios()
if (!f) break;
fread(rom + 0xE000, 8192, 1, f);
fclose(f);
if (enable_xtide)
{
mem_load_xtide_bios();
}
return 1;
case ROM_IBMPS2_M30_286:
@@ -744,11 +630,11 @@ int loadbios()
if (!f) break;
fread(rom, 0x20000, 1, f);
fclose(f);
biosmask = 0x1ffff;
if (enable_xtide)
{
mem_load_atide115_bios();
mem_load_atide115_bios();
}
biosmask = 0x1ffff;
return 1;
case ROM_DTK486: