Align array entries in machine table and format machines (#6254)

This commit is contained in:
Jasmine Iwanek
2025-09-29 22:15:10 -04:00
committed by GitHub
parent 55af553ac4
commit 891982c2c4
36 changed files with 16601 additions and 15576 deletions

View File

@@ -75,14 +75,14 @@
#include <86box/m_amstrad.h>
#include <86box/plat_unused.h>
#define STAT_PARITY 0x80
#define STAT_RTIMEOUT 0x40
#define STAT_TTIMEOUT 0x20
#define STAT_LOCK 0x10
#define STAT_CD 0x08
#define STAT_SYSFLAG 0x04
#define STAT_IFULL 0x02
#define STAT_OFULL 0x01
#define STAT_PARITY 0x80
#define STAT_RTIMEOUT 0x40
#define STAT_TTIMEOUT 0x20
#define STAT_LOCK 0x10
#define STAT_CD 0x08
#define STAT_SYSFLAG 0x04
#define STAT_IFULL 0x02
#define STAT_OFULL 0x01
#define DOUBLE_NONE 0
#define DOUBLE_SIMPLE 1
@@ -90,17 +90,17 @@
#define DOUBLE_INTERPOLATE_LINEAR 3
typedef struct amsvid_t {
rom_t bios_rom; /* 1640 */
cga_t cga; /* 1640/200 */
mda_t mda; /* 1512/200/PPC512/640*/
ega_t ega; /* 1640 */
uint8_t emulation; /* Which display are we emulating? */
uint8_t dipswitches; /* DIP switches 1-3 */
uint8_t crtc_index; /* CRTC index readback
* Bit 7: CGA control port written
* Bit 6: Operation control port written
* Bit 5: CRTC register written
* Bits 0-4: Last CRTC register selected */
rom_t bios_rom; /* 1640 */
cga_t cga; /* 1640/200 */
mda_t mda; /* 1512/200/PPC512/640*/
ega_t ega; /* 1640 */
uint8_t emulation; /* Which display are we emulating? */
uint8_t dipswitches; /* DIP switches 1-3 */
uint8_t crtc_index; /* CRTC index readback
* Bit 7: CGA control port written
* Bit 6: Operation control port written
* Bit 5: CRTC register written
* Bits 0-4: Last CRTC register selected */
uint8_t operation_ctrl;
uint8_t reg_3df;
uint8_t type;
@@ -161,8 +161,8 @@ typedef struct amstrad_t {
/* Video stuff. */
amsvid_t *vid;
fdc_t *fdc;
lpt_t *lpt;
fdc_t *fdc;
lpt_t *lpt;
} amstrad_t;
uint32_t amstrad_latch;
@@ -345,20 +345,18 @@ vid_read_1512(uint32_t addr, void *priv)
static void
ams1512_render(amsvid_t *vid, int line)
{
uint16_t cursoraddr = (vid->crtc[15] | (vid->crtc[14] << 8)) & 0x3fff;
int drawcursor;
int x;
int c;
uint8_t chr;
uint8_t attr;
uint16_t dat;
uint16_t dat2;
uint16_t dat3;
uint16_t dat4;
int cols[4];
int col;
uint16_t cursoraddr = (vid->crtc[15] | (vid->crtc[14] << 8)) & 0x3fff;
int drawcursor;
uint8_t chr;
uint8_t attr;
uint16_t dat;
uint16_t dat2;
uint16_t dat3;
uint16_t dat4;
int cols[4];
int col;
for (c = 0; c < 8; c++) {
for (uint8_t c = 0; c < 8; c++) {
if ((vid->cgamode & 0x12) == 0x12) {
buffer32->line[line][c] = buffer32->line[(line) + 1][c] = (vid->border & 15) + 16;
if (vid->cgamode & CGA_MODE_FLAG_HIGHRES) {
@@ -376,10 +374,10 @@ ams1512_render(amsvid_t *vid, int line)
}
}
if (vid->cgamode & CGA_MODE_FLAG_HIGHRES) {
for (x = 0; x < 80; x++) {
chr = vid->vram[(vid->memaddr<< 1) & 0x3fff];
attr = vid->vram[((vid->memaddr<< 1) + 1) & 0x3fff];
drawcursor = ((vid->memaddr== cursoraddr) && vid->cursorvisible && vid->cursoron);
for (uint8_t x = 0; x < 80; x++) {
chr = vid->vram[(vid->memaddr << 1) & 0x3fff];
attr = vid->vram[((vid->memaddr << 1) + 1) & 0x3fff];
drawcursor = ((vid->memaddr == cursoraddr) && vid->cursorvisible && vid->cursoron);
if (vid->cgamode & CGA_MODE_FLAG_BLINK) {
cols[1] = (attr & 15) + 16;
cols[0] = ((attr >> 4) & 7) + 16;
@@ -390,21 +388,21 @@ ams1512_render(amsvid_t *vid, int line)
cols[0] = (attr >> 4) + 16;
}
if (drawcursor)
for (c = 0; c < 8; c++)
for (uint8_t c = 0; c < 8; c++)
buffer32->line[line][(x << 3) + c + 8] =
cols[(fontdat[vid->fontbase + chr][vid->scanline & 7] & (1 << (c ^ 7))) ? 1 : 0] ^ 15;
else
for (c = 0; c < 8; c++)
for (uint8_t c = 0; c < 8; c++)
buffer32->line[line][(x << 3) + c + 8] =
cols[(fontdat[vid->fontbase + chr][vid->scanline & 7] & (1 << (c ^ 7))) ? 1 : 0];
vid->memaddr++;
}
} else if (!(vid->cgamode & CGA_MODE_FLAG_GRAPHICS)) {
for (x = 0; x < 40; x++) {
chr = vid->vram[(vid->memaddr<< 1) & 0x3fff];
attr = vid->vram[((vid->memaddr<< 1) + 1) & 0x3fff];
drawcursor = ((vid->memaddr == cursoraddr) && vid->cursorvisible && vid->cursoron);
for (uint8_t x = 0; x < 40; x++) {
chr = vid->vram[(vid->memaddr << 1) & 0x3fff];
attr = vid->vram[((vid->memaddr << 1) + 1) & 0x3fff];
drawcursor = ((vid->memaddr == cursoraddr) && vid->cursorvisible && vid->cursoron);
if (vid->cgamode & CGA_MODE_FLAG_BLINK) {
cols[1] = (attr & 15) + 16;
cols[0] = ((attr >> 4) & 7) + 16;
@@ -416,12 +414,12 @@ ams1512_render(amsvid_t *vid, int line)
}
vid->memaddr++;
if (drawcursor)
for (c = 0; c < 8; c++)
for (uint8_t c = 0; c < 8; c++)
buffer32->line[line][(x << 4) + (c << 1) + 8] =
buffer32->line[line][(x << 4) + (c << 1) + 1 + 8] =
cols[(fontdat[vid->fontbase + chr][vid->scanline & 7] & (1 << (c ^ 7))) ? 1 : 0] ^ 15;
else
for (c = 0; c < 8; c++)
for (uint8_t c = 0; c < 8; c++)
buffer32->line[line][(x << 4) + (c << 1) + 8] =
buffer32->line[line][(x << 4) + (c << 1) + 1 + 8] =
cols[(fontdat[vid->fontbase + chr][vid->scanline & 7] & (1 << (c ^ 7))) ? 1 : 0];
@@ -442,26 +440,26 @@ ams1512_render(amsvid_t *vid, int line)
cols[2] = col | 4;
cols[3] = col | 6;
}
for (x = 0; x < 40; x++) {
for (uint8_t x = 0; x < 40; x++) {
dat = (vid->vram[((vid->memaddr<< 1) & 0x1fff) + ((vid->scanline & 1) * 0x2000)] << 8) |
vid->vram[((vid->memaddr<< 1) & 0x1fff) + ((vid->scanline & 1) * 0x2000) + 1];
vid->memaddr++;
for (c = 0; c < 8; c++) {
for (uint8_t c = 0; c < 8; c++) {
buffer32->line[line][(x << 4) + (c << 1) + 8] =
buffer32->line[line][(x << 4) + (c << 1) + 1 + 8] = cols[dat >> 14];
dat <<= 2;
}
}
} else {
for (x = 0; x < 40; x++) {
cursoraddr = ((vid->memaddr<< 1) & 0x1fff) + ((vid->scanline & 1) * 0x2000);
dat = (vid->vram[cursoraddr] << 8) | vid->vram[cursoraddr + 1];
dat2 = (vid->vram[cursoraddr + 0x4000] << 8) | vid->vram[cursoraddr + 0x4001];
dat3 = (vid->vram[cursoraddr + 0x8000] << 8) | vid->vram[cursoraddr + 0x8001];
dat4 = (vid->vram[cursoraddr + 0xc000] << 8) | vid->vram[cursoraddr + 0xc001];
for (uint8_t x = 0; x < 40; x++) {
cursoraddr = ((vid->memaddr << 1) & 0x1fff) + ((vid->scanline & 1) * 0x2000);
dat = (vid->vram[cursoraddr] << 8) | vid->vram[cursoraddr + 1];
dat2 = (vid->vram[cursoraddr + 0x4000] << 8) | vid->vram[cursoraddr + 0x4001];
dat3 = (vid->vram[cursoraddr + 0x8000] << 8) | vid->vram[cursoraddr + 0x8001];
dat4 = (vid->vram[cursoraddr + 0xc000] << 8) | vid->vram[cursoraddr + 0xc001];
vid->memaddr++;
for (c = 0; c < 16; c++) {
for (uint8_t c = 0; c < 16; c++) {
buffer32->line[line][(x << 4) + c + 8] = (((dat >> 15) | ((dat2 >> 15) << 1) |
((dat3 >> 15) << 2) | ((dat4 >> 15) << 3)) & (vid->cgacol & 15)) + 16;
dat <<= 1;
@@ -498,7 +496,7 @@ vid_poll_1512(void *priv)
timer_advance_u64(&vid->timer, vid->dispofftime);
vid->status |= 1;
vid->linepos = 1;
scanline_old = vid->scanline;
scanline_old = vid->scanline;
if (vid->dispon) {
if (vid->displine < vid->firstline) {
vid->firstline = vid->displine;
@@ -520,18 +518,19 @@ vid_poll_1512(void *priv)
ams1512_render(vid, (vid->displine << 1) + 1);
break;
}
} else switch (vid->double_type) {
default:
ams1512_render_blank(vid, vid->displine << 1);
break;
case DOUBLE_NONE:
ams1512_render_blank(vid, vid->displine);
break;
case DOUBLE_SIMPLE:
ams1512_render_blank(vid, vid->displine << 1);
ams1512_render_blank(vid, (vid->displine << 1) + 1);
break;
}
} else
switch (vid->double_type) {
default:
ams1512_render_blank(vid, vid->displine << 1);
break;
case DOUBLE_NONE:
ams1512_render_blank(vid, vid->displine);
break;
case DOUBLE_SIMPLE:
ams1512_render_blank(vid, vid->displine << 1);
ams1512_render_blank(vid, (vid->displine << 1) + 1);
break;
}
if (vid->cgamode & CGA_MODE_FLAG_HIGHRES)
x = (vid->crtc[1] << 3) + 16;
@@ -567,21 +566,21 @@ vid_poll_1512(void *priv)
vid->status &= ~8;
}
if (vid->scanline == (vid->crtc[11] & 31)) {
vid->cursorvisible = 0;
vid->cursorvisible = 0;
}
if (vid->vadj) {
vid->scanline++;
vid->scanline &= 31;
vid->memaddr= vid->memaddr_backup;
vid->memaddr = vid->memaddr_backup;
vid->vadj--;
if (!vid->vadj) {
vid->dispon = 1;
vid->memaddr= vid->memaddr_backup = (vid->crtc[13] | (vid->crtc[12] << 8)) & 0x3fff;
vid->scanline = 0;
vid->dispon = 1;
vid->memaddr = vid->memaddr_backup = (vid->crtc[13] | (vid->crtc[12] << 8)) & 0x3fff;
vid->scanline = 0;
}
} else if (vid->scanline == vid->crtc[9]) {
vid->memaddr_backup = vid->memaddr;
vid->scanline = 0;
vid->scanline = 0;
vid->vc++;
vid->vc &= 127;
@@ -652,7 +651,7 @@ vid_poll_1512(void *priv)
} else {
vid->scanline++;
vid->scanline &= 31;
vid->memaddr= vid->memaddr_backup;
vid->memaddr = vid->memaddr_backup;
}
if (vid->scanline == (vid->crtc[10] & 31))
vid->cursorvisible = 1;
@@ -662,10 +661,8 @@ vid_poll_1512(void *priv)
static void
vid_init_1512(amstrad_t *ams)
{
amsvid_t *vid;
/* Allocate a video controller block. */
vid = (amsvid_t *) calloc(1, sizeof(amsvid_t));
amsvid_t *vid = (amsvid_t *) calloc(1, sizeof(amsvid_t));
video_inform(VIDEO_FLAG_TYPE_CGA, &timing_pc1512);
@@ -712,20 +709,21 @@ vid_speed_change_1512(void *priv)
}
const device_config_t vid_1512_config[] = {
// clang-format off
// clang-format off
{
.name = "display_type",
.description = "Display type",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "display_type",
.description = "Display type",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "PC-CM (Colour)", .value = 0 },
{ .description = "PC-MM (Monochrome)", .value = 3 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "double_type",
@@ -745,29 +743,30 @@ const device_config_t vid_1512_config[] = {
.bios = { { 0 } }
},
{
.name = "codepage",
.description = "Hardware font",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 3,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "codepage",
.description = "Hardware font",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 3,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "US English", .value = 3 },
{ .description = "Danish", .value = 1 },
{ .description = "Greek", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 7,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "English", .value = 7 },
{ .description = "German", .value = 6 },
{ .description = "French", .value = 5 },
@@ -777,10 +776,11 @@ const device_config_t vid_1512_config[] = {
{ .description = "Italian", .value = 1 },
{ .description = "Diagnostic mode", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t vid_1512_device = {
@@ -915,7 +915,7 @@ vid_init_1640(amstrad_t *ams)
cga_palette = 0;
cgapal_rebuild();
vid->double_type = device_get_config_int("double_type");
vid->double_type = device_get_config_int("double_type");
vid->cga.double_type = device_get_config_int("double_type");
cga_interpolate_init();
@@ -941,7 +941,7 @@ vid_speed_changed_1640(void *priv)
}
const device_config_t vid_1640_config[] = {
// clang-format off
// clang-format off
{
.name = "double_type",
.description = "Line doubling type",
@@ -960,14 +960,14 @@ const device_config_t vid_1640_config[] = {
.bios = { { 0 } }
},
{
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 7,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "English", .value = 7 },
{ .description = "German", .value = 6 },
{ .description = "French", .value = 5 },
@@ -977,10 +977,11 @@ const device_config_t vid_1640_config[] = {
{ .description = "Italian", .value = 1 },
{ .description = "Diagnostic mode", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t vid_1640_device = {
@@ -1357,8 +1358,8 @@ lcd_draw_char_40(amsvid_t *vid, uint32_t *buffer, uint8_t chr,
static void
lcdm_poll(amsvid_t *vid)
{
mda_t *mda = &vid->mda;
uint16_t cursoraddr = (mda->crtc[MDA_CRTC_CURSOR_ADDR_LOW] | (mda->crtc[MDA_CRTC_CURSOR_ADDR_HIGH] << 8)) & 0x3fff;
mda_t *mda = &vid->mda;
uint16_t cursoraddr = (mda->crtc[MDA_CRTC_CURSOR_ADDR_LOW] | (mda->crtc[MDA_CRTC_CURSOR_ADDR_HIGH] << 8)) & 0x3fff;
int drawcursor;
int x;
int oldvc;
@@ -1371,7 +1372,7 @@ lcdm_poll(amsvid_t *vid)
timer_advance_u64(&vid->timer, mda->dispofftime);
mda->status |= 1;
mda->linepos = 1;
scanline_old = mda->scanline;
scanline_old = mda->scanline;
if ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3)
mda->scanline = (mda->scanline << 1) & 7;
if (mda->dispon) {
@@ -1379,9 +1380,9 @@ lcdm_poll(amsvid_t *vid)
mda->firstline = mda->displine;
mda->lastline = mda->displine;
for (x = 0; x < mda->crtc[MDA_CRTC_HDISP]; x++) {
chr = mda->vram[(mda->memaddr<< 1) & 0xfff];
attr = mda->vram[((mda->memaddr<< 1) + 1) & 0xfff];
drawcursor = ((mda->memaddr== cursoraddr) && mda->cursorvisible && mda->cursoron);
chr = mda->vram[(mda->memaddr << 1) & 0xfff];
attr = mda->vram[((mda->memaddr << 1) + 1) & 0xfff];
drawcursor = ((mda->memaddr == cursoraddr) && mda->cursorvisible && mda->cursoron);
blink = ((mda->blink & 16) && (mda->mode & MDA_MODE_BLINK) && (attr & 0x80) && !drawcursor);
lcd_draw_char_80(vid, &(buffer32->line[mda->displine])[x * 8], chr, attr, drawcursor, blink, mda->scanline, 0, mda->mode);
@@ -1405,22 +1406,22 @@ lcdm_poll(amsvid_t *vid)
mda->status &= ~8;
}
if (mda->scanline == (mda->crtc[MDA_CRTC_CURSOR_END] & 31) || ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3 && mda->scanline == ((mda->crtc[MDA_CRTC_CURSOR_END] & 31) >> 1))) {
mda->cursorvisible = 0;
mda->cursorvisible = 0;
}
if (mda->vadj) {
mda->scanline++;
mda->scanline &= 31;
mda->memaddr= mda->memaddr_backup;
mda->memaddr = mda->memaddr_backup;
mda->vadj--;
if (!mda->vadj) {
mda->dispon = 1;
mda->memaddr= mda->memaddr_backup = (mda->crtc[MDA_CRTC_START_ADDR_LOW] | (mda->crtc[MDA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
mda->scanline = 0;
mda->dispon = 1;
mda->memaddr = mda->memaddr_backup = (mda->crtc[MDA_CRTC_START_ADDR_LOW] | (mda->crtc[MDA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
mda->scanline = 0;
}
} else if (mda->scanline == mda->crtc[MDA_CRTC_MAX_SCANLINE_ADDR] || ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3 && mda->scanline == (mda->crtc[MDA_CRTC_MAX_SCANLINE_ADDR] >> 1))) {
mda->memaddr_backup = mda->memaddr;
mda->scanline = 0;
oldvc = mda->vc;
mda->scanline = 0;
oldvc = mda->vc;
mda->vc++;
mda->vc &= 127;
if (mda->vc == mda->crtc[MDA_CRTC_VDISP])
@@ -1431,7 +1432,7 @@ lcdm_poll(amsvid_t *vid)
if (!mda->vadj)
mda->dispon = 1;
if (!mda->vadj)
mda->memaddr= mda->memaddr_backup = (mda->crtc[MDA_CRTC_START_ADDR_LOW] | (mda->crtc[MDA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
mda->memaddr = mda->memaddr_backup = (mda->crtc[MDA_CRTC_START_ADDR_LOW] | (mda->crtc[MDA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
if ((mda->crtc[MDA_CRTC_CURSOR_START] & 0x60) == 0x20)
mda->cursoron = 0;
else
@@ -1469,7 +1470,7 @@ lcdm_poll(amsvid_t *vid)
} else {
mda->scanline++;
mda->scanline &= 31;
mda->memaddr= mda->memaddr_backup;
mda->memaddr = mda->memaddr_backup;
}
if (mda->scanline == (mda->crtc[MDA_CRTC_CURSOR_START] & 31) || ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3 && mda->scanline == ((mda->crtc[MDA_CRTC_CURSOR_START] & 31) >> 1)))
mda->cursorvisible = 1;
@@ -1498,7 +1499,7 @@ lcdc_poll(amsvid_t *vid)
timer_advance_u64(&vid->timer, cga->dispofftime);
cga->cgastat |= 1;
cga->linepos = 1;
scanline_old = cga->scanline;
scanline_old = cga->scanline;
if ((cga->crtc[CGA_CRTC_INTERLACE] & 3) == 3)
cga->scanline = ((cga->scanline << 1) + cga->oddeven) & 7;
if (cga->cgadispon) {
@@ -1568,7 +1569,7 @@ lcdc_poll(amsvid_t *vid)
cga->cgastat &= ~8;
}
if (cga->scanline == (cga->crtc[CGA_CRTC_CURSOR_END] & 31) || ((cga->crtc[CGA_CRTC_INTERLACE] & 3) == 3 && cga->scanline == ((cga->crtc[CGA_CRTC_CURSOR_END] & 31) >> 1))) {
cga->cursorvisible = 0;
cga->cursorvisible = 0;
}
if ((cga->crtc[CGA_CRTC_INTERLACE] & 3) == 3 && cga->scanline == (cga->crtc[CGA_CRTC_MAX_SCANLINE_ADDR] >> 1))
cga->memaddr_backup = cga->memaddr;
@@ -1580,12 +1581,12 @@ lcdc_poll(amsvid_t *vid)
if (!cga->vadj) {
cga->cgadispon = 1;
cga->memaddr = cga->memaddr_backup = (cga->crtc[CGA_CRTC_START_ADDR_LOW] | (cga->crtc[CGA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
cga->scanline = 0;
cga->scanline = 0;
}
} else if (cga->scanline == cga->crtc[CGA_CRTC_MAX_SCANLINE_ADDR]) {
cga->memaddr_backup = cga->memaddr;
cga->scanline = 0;
oldvc = cga->vc;
cga->scanline = 0;
oldvc = cga->vc;
cga->vc++;
cga->vc &= 127;
@@ -1828,68 +1829,71 @@ vid_close_200(void *priv)
}
const device_config_t vid_200_config[] = {
/* TODO: Should have options here for:
*
* > Display port (TTL or RF)
*/
// clang-format off
/* TODO: Should have options here for:
*
* > Display port (TTL or RF)
*/
// clang-format off
{
.name = "video_emulation",
.description = "Display type",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = PC200_CGA,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "video_emulation",
.description = "Display type",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = PC200_CGA,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "CGA monitor", .value = PC200_CGA },
{ .description = "MDA monitor", .value = PC200_MDA },
{ .description = "Television", .value = PC200_TV },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "display_type",
.description = "Monitor type",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "display_type",
.description = "Monitor type",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "RGB", .value = 0 },
{ .description = "RGB (no brown)", .value = 4 },
{ .description = "Green Monochrome", .value = 1 },
{ .description = "Amber Monochrome", .value = 2 },
{ .description = "White Monochrome", .value = 3 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "codepage",
.description = "Hardware font",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 3,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "codepage",
.description = "Hardware font",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 3,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "US English", .value = 3 },
{ .description = "Portugese", .value = 2 },
{ .description = "Norwegian", .value = 1 },
{ .description = "Greek", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 7,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "English", .value = 7 },
{ .description = "German", .value = 6 },
{ .description = "French", .value = 5 },
@@ -1899,10 +1903,11 @@ const device_config_t vid_200_config[] = {
{ .description = "Italian", .value = 1 },
{ .description = "Diagnostic mode", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t vid_200_device = {
@@ -1920,36 +1925,37 @@ const device_t vid_200_device = {
};
const device_config_t vid_ppc512_config[] = {
/* TODO: Should have options here for:
*
* > Display port (TTL or RF)
*/
// clang-format off
/* TODO: Should have options here for:
*
* > Display port (TTL or RF)
*/
// clang-format off
{
.name = "video_emulation",
.description = "Display type",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = PC200_LCDC,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "video_emulation",
.description = "Display type",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = PC200_LCDC,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "CGA monitor", .value = PC200_CGA },
{ .description = "MDA monitor", .value = PC200_MDA },
{ .description = "LCD (CGA mode)", .value = PC200_LCDC },
{ .description = "LCD (MDA mode)", .value = PC200_LCDM },
{ .description = "" }
},
.bios = { { 0 } }
},
{
.name = "display_type",
.description = "Monitor type",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "display_type",
.description = "Monitor type",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "RGB", .value = 0 },
{ .description = "RGB (no brown)", .value = 4 },
{ .description = "Green Monochrome", .value = 1 },
@@ -1957,32 +1963,34 @@ const device_config_t vid_ppc512_config[] = {
{ .description = "White Monochrome", .value = 3 },
{ .description = "" }
},
.bios = { { 0 } }
},
{
.name = "codepage",
.description = "Hardware font",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 3,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "codepage",
.description = "Hardware font",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 3,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "US English", .value = 3 },
{ .description = "Portugese", .value = 2 },
{ .description = "Norwegian", .value = 1 },
{ .description = "Greek", .value = 0 },
{ .description = "" }
},
.bios = { { 0 } }
},
{
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 7,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "English", .value = 7 },
{ .description = "German", .value = 6 },
{ .description = "French", .value = 5 },
@@ -1992,17 +2000,22 @@ const device_config_t vid_ppc512_config[] = {
{ .description = "Italian", .value = 1 },
{ .description = "Diagnostic mode", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "invert",
.description = "Invert LCD colors",
.type = CONFIG_BINARY,
.default_string = "",
.default_int = 0
.name = "invert",
.description = "Invert LCD colors",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t vid_ppc512_device = {
@@ -2020,23 +2033,24 @@ const device_t vid_ppc512_device = {
};
const device_config_t vid_pc2086_config[] = {
// clang-format off
// clang-format off
{
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 7,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "English", .value = 7 },
{ .description = "Diagnostic mode", .value = 0 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t vid_pc2086_device = {
@@ -2054,23 +2068,24 @@ const device_t vid_pc2086_device = {
};
const device_config_t vid_pc3086_config[] = {
// clang-format off
// clang-format off
{
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = 7,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "language",
.description = "BIOS language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "English", .value = 7 },
{ .description = "Diagnostic mode", .value = 3 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t vid_pc3086_device = {
@@ -2119,7 +2134,7 @@ static int
ms_poll(void *priv)
{
amstrad_t *ams = (amstrad_t *) priv;
int b = mouse_get_buttons_ex();
int b = mouse_get_buttons_ex();
if ((b & 1) && !(ams->oldb & 1))
keyboard_send(0x7e);
@@ -2431,7 +2446,7 @@ ams_read(uint16_t port, void *priv)
}
static const scancode scancode_pc200[512] = {
// clang-format off
// clang-format off
{ .mk = { 0 }, .brk = { 0 } }, /* 000 */
{ .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
{ .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
@@ -2944,7 +2959,7 @@ static const scancode scancode_pc200[512] = {
{ .mk = { 0 }, .brk = { 0 } }, /* 1fd */
{ .mk = {0xe0, 0xfe, 0 }, .brk = { 0 } }, /* 1fe */
{ .mk = {0xe0, 0xff, 0 }, .brk = { 0 } } /* 1ff */
// clang-format on
// clang-format on
};
static void
@@ -2952,7 +2967,7 @@ machine_amstrad_init(const machine_t *model, int type)
{
amstrad_t *ams;
ams = (amstrad_t *) calloc(1, sizeof(amstrad_t));
ams = (amstrad_t *) calloc(1, sizeof(amstrad_t));
ams->type = type;
amstrad_latch = 0x80000000;

View File

@@ -54,8 +54,9 @@ static const device_config_t ibmat_config[] = {
.type = CONFIG_BIOS,
.default_string = "ibm5170_111585",
.default_int = 0,
.file_filter = "",
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "62X082x (11/15/85)",
@@ -108,10 +109,15 @@ static const device_config_t ibmat_config[] = {
},
},
{
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_int = 0
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -156,10 +162,10 @@ machine_at_ibmat_init(const machine_t *model)
return ret;
device_context(model->device);
enable_5161 = machine_get_config_int("enable_5161");
fn[0] = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
fn[1] = device_get_bios_file(model->device, device_get_config_bios("bios"), 1);
ret = bios_load_interleaved(fn[0], fn[1], 0x000f0000, 65536, 0);
enable_5161 = machine_get_config_int("enable_5161");
fn[0] = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
fn[1] = device_get_bios_file(model->device, device_get_config_bios("bios"), 1);
ret = bios_load_interleaved(fn[0], fn[1], 0x000f0000, 65536, 0);
device_context_restore();
if (bios_only || !ret)
@@ -176,10 +182,15 @@ machine_at_ibmat_init(const machine_t *model)
static const device_config_t ibmxt286_config[] = {
// clang-format off
{
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_int = 0
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -206,7 +217,7 @@ machine_at_ibmxt286_init(const machine_t *model)
uint8_t enable_5161;
device_context(model->device);
enable_5161 = machine_get_config_int("enable_5161");
enable_5161 = machine_get_config_int("enable_5161");
device_context_restore();
ret = bios_load_interleaved("roms/machines/ibmxt286/bios_5162_21apr86_u34_78x7460_27256.bin",
@@ -279,8 +290,7 @@ machine_at_portableiii_init(const machine_t *model)
int ret;
ret = bios_load_linearr("roms/machines/portableiii/K Combined.bin",
0x000f8000, 65536, 0);
0x000f8000, 65536, 0);
if (bios_only || !ret)
return ret;
@@ -292,7 +302,7 @@ machine_at_portableiii_init(const machine_t *model)
if (hdc_current[0] == HDC_INTERNAL)
device_add(&ide_isa_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(&compaq_plasma_device);
@@ -318,8 +328,8 @@ machine_at_grid1520_init(const machine_t *model)
mem_remap_top(384);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
// for now just select CGA with amber monitor
//device_add(&cga_device);
// for now just select CGA with amber monitor
// device_add(&cga_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -992,12 +1002,12 @@ machine_at_drsm35286_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&ide_isa_device);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI));
machine_at_scat_init(model, 1, 0);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -1018,7 +1028,7 @@ machine_at_deskmaster286_init(const machine_t *model)
machine_at_scat_init(model, 0, 1);
device_add(&f82c710_device);
device_add(&ide_isa_device);
return ret;

View File

@@ -60,18 +60,33 @@ machine_compaq_p1_handler(void)
static const device_config_t deskpro386_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "deskpro386",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "September 1986", .internal_name = "deskpro386_09_1986", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/deskpro386/1986-09-04-HI.json.bin", "" } },
{ .name = "May 1988", .internal_name = "deskpro386", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/deskpro386/1988-05-10.json.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "September 1986",
.internal_name = "deskpro386_09_1986",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/deskpro386/1986-09-04-HI.json.bin", "" }
},
{
.name = "May 1988",
.internal_name = "deskpro386",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/deskpro386/1988-05-10.json.bin", "" }
},
{ .files_no = 0 }
},
},
@@ -96,15 +111,15 @@ const device_t deskpro386_device = {
int
machine_at_deskpro386_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linearr(fn, 0x000f8000, 65536, 0);
if (fdc_current[0] == FDC_INTERNAL)
@@ -127,7 +142,7 @@ machine_at_portableiii386_init(const machine_t *model)
int ret;
ret = bios_load_linearr("roms/machines/portableiii/P.2 Combined.bin",
0x000f0000, 131072, 0);
0x000f0000, 131072, 0);
if (bios_only || !ret)
return ret;

View File

@@ -103,18 +103,33 @@ machine_at_c747_init(const machine_t *model)
static const device_config_t opti495_ami_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "ami495",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "AMI 060692", .internal_name = "ami495", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/ami495/opt495sx.ami", "" } },
{ .name = "MR BIOS V1.60", .internal_name = "mr495", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/ami495/opt495sx.mr", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "AMI 060692",
.internal_name = "ami495",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/ami495/opt495sx.ami", "" }
},
{
.name = "MR BIOS V1.60",
.internal_name = "mr495",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/ami495/opt495sx.mr", "" }
},
{ .files_no = 0 }
},
},
@@ -139,15 +154,15 @@ const device_t opti495_ami_device = {
int
machine_at_opti495_ami_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000f0000, 65536, 0);
machine_at_common_init(model);

View File

@@ -98,20 +98,35 @@ machine_at_quadt386sx_init(const machine_t *model)
static const device_config_t pbl300sx_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "pbl300sx",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Phoenix ROM BIOS PLUS 1.10 - Revision 19910723091302", .internal_name = "pbl300sx_1991", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pbl300sx/V1.10_1113_910723.bin", "" } },
{ .name = "Phoenix ROM BIOS PLUS 1.10 - Revision 19920910", .internal_name = "pbl300sx", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pbl300sx/pb_l300sx_1992.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Phoenix ROM BIOS PLUS 1.10 - Revision 19910723091302",
.internal_name = "pbl300sx_1991",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pbl300sx/V1.10_1113_910723.bin", "" }
},
{
.name = "Phoenix ROM BIOS PLUS 1.10 - Revision 19920910",
.internal_name = "pbl300sx",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pbl300sx/pb_l300sx_1992.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -134,15 +149,15 @@ const device_t pbl300sx_device = {
int
machine_at_pbl300sx_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -234,20 +249,35 @@ machine_at_flytech386_init(const machine_t *model)
static const device_config_t c325ax_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "325ax",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{ .name = "AMIBIOS 070791", .internal_name = "325ax", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/325ax/M27C512.BIN", "" } },
{ .name = "MR BIOS V1.41", .internal_name = "mr1217", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/325ax/mrbios.BIN", "" } },
{
.name = "AMIBIOS 070791",
.internal_name = "325ax",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/325ax/M27C512.BIN", "" }
},
{
.name = "MR BIOS V1.41",
.internal_name = "mr1217",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/325ax/mrbios.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -270,15 +300,15 @@ const device_t c325ax_device = {
int
machine_at_325ax_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000f0000, 65536, 0);
machine_at_common_init(model);
@@ -309,9 +339,9 @@ machine_at_acer100t_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&oti077_acer100t_device);
device_add_params(&pc87310_device, (void *) (PC87310_ALI));
return ret;
}
@@ -575,20 +605,34 @@ machine_at_dataexpert386sx_init(const machine_t *model)
static const device_config_t dells333sl_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "dells333sl",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Phoenix ROM BIOS PLUS 1.10 - Revision J01 (Jostens Learning Corporation OEM)", .internal_name = "dells333sl_j01", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/dells333sl/DELL386.BIN", "" } },
{ .name = "Phoenix ROM BIOS PLUS 1.10 - Revision A02", .internal_name = "dells333sl", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/dells333sl/Dell_386SX_30807_UBIOS_B400_VLSI_VL82C311_Cirrus_Logic_GD5420.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.bios = {
{
.name = "Phoenix ROM BIOS PLUS 1.10 - Revision J01 (Jostens Learning Corporation OEM)",
.internal_name = "dells333sl_j01",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/dells333sl/DELL386.BIN", "" }
},
{
.name = "Phoenix ROM BIOS PLUS 1.10 - Revision A02",
.internal_name = "dells333sl",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/dells333sl/Dell_386SX_30807_UBIOS_B400_VLSI_VL82C311_Cirrus_Logic_GD5420.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -611,15 +655,15 @@ const device_t dells333sl_device = {
int
machine_at_dells333sl_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 262144, 0);
memcpy(rom, &(rom[0x00020000]), 131072);
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);

View File

@@ -66,6 +66,7 @@ machine_at_itoxstar_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0C, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x1F, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add_params(&w83977_device, (void *) (W83977F | W83977_AMI));
device_add(&stpc_client_device);
device_add(&sst_flash_29ee020_device);
@@ -97,6 +98,7 @@ machine_at_arb1423c_init(const machine_t *model)
pci_register_slot(0x1F, PCI_CARD_NORMAL, 1, 0, 0, 0);
pci_register_slot(0x1E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x1D, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add_params(&w83977_device, (void *) (W83977F | W83977_AMI));
device_add(&stpc_consumer2_device);
device_add(&winbond_flash_w29c020_device);
@@ -123,6 +125,7 @@ machine_at_arb1479_init(const machine_t *model)
pci_register_slot(0x1F, PCI_CARD_NORMAL, 1, 0, 0, 0);
pci_register_slot(0x1E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x1D, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add_params(&w83977_device, (void *) (W83977F | W83977_AMI));
device_add(&stpc_consumer2_device);
device_add(&winbond_flash_w29c020_device);
@@ -146,6 +149,7 @@ machine_at_iach488_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0C, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(&w83977_device, (void *) (W83977F | W83977_AMI));
device_add(&stpc_consumer2_device);
device_add(&sst_flash_29ee020_device);
@@ -173,6 +177,7 @@ machine_at_pcm9340_init(const machine_t *model)
pci_register_slot(0x1D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x1E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x1F, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add_inst_params(&w83977_device, 1, (void *) (W83977F | W83977_AMI));
device_add_inst_params(&w83977_device, 2, (void *) W83977F);
device_add(&stpc_elite_device);
@@ -201,6 +206,7 @@ machine_at_pcm5330_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_SOUTHBRIDGE_IDE, 0, 0, 0, 0);
pci_register_slot(0x0E, PCI_CARD_SOUTHBRIDGE_USB, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&stpc_serial_device);
device_add_params(&w83977_device, (void *) (W83977F | W83977_370 | W83977_AMI));
device_add(&stpc_atlas_device);

View File

@@ -7,7 +7,7 @@
* This file is part of the 86Box distribution.
*
* Implementation of the common initialization functions for
* the PC/AT and copatible machines.
* the PC/AT and copatible machines.
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Sarah Walker, <https://pcem-emulator.co.uk/>
@@ -135,5 +135,3 @@ machine_at_ps2_ide_init(const machine_t *model)
device_add(&ide_isa_device);
}

View File

@@ -53,15 +53,16 @@ machine_at_vpc2007_init(const machine_t *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, 4);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0F, 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, 1, 2, 3, 4);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i440bx_no_agp_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977F | W83977_370 | W83977_AMI | W83977_NO_NVR));
device_add(&intel_flash_bxt_device);

View File

@@ -53,15 +53,16 @@ machine_at_m729_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 1, 2, 3, 4);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
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(&winbond_flash_w29c010_device);
@@ -92,6 +93,7 @@ machine_at_acerv62x_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_APM));
@@ -138,6 +140,7 @@ machine_at_kn97_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -154,18 +157,32 @@ machine_at_kn97_init(const machine_t *model)
static const device_config_t lx6_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "lx6",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.51PG - Revision LY", .internal_name = "lx6", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/lx6/LX6C_LY.BIN", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision PZ Beta", .internal_name = "lx6_beta", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/lx6/LX6C_PZ.B00", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.51PG - Revision LY",
.internal_name = "lx6", .bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/lx6/LX6C_LY.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision PZ Beta",
.internal_name = "lx6_beta",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/lx6/LX6C_PZ.B00", "" }
},
{ .files_no = 0 }
},
},
@@ -190,15 +207,15 @@ const device_t lx6_device = {
int
machine_at_lx6_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -212,6 +229,7 @@ machine_at_lx6_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -277,6 +295,7 @@ machine_at_spitfire_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL | FDC37C93X_NO_NVR));
@@ -312,6 +331,7 @@ machine_at_ma30d_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 3, 0, 0, 0);
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add(&nec_mate_unk_device);
@@ -339,9 +359,10 @@ machine_at_p6i440e2_init(const machine_t *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, 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_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -379,6 +400,7 @@ machine_at_bf6_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 3, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -391,20 +413,35 @@ machine_at_bf6_init(const machine_t *model)
static const device_config_t bx6_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "bx6",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.51PG - Revision EG", .internal_name = "bx6_eg", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/bx6/BX6_EG.BIN", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision QS", .internal_name = "bx6", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/bx6/BX6_QS.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.51PG - Revision EG",
.internal_name = "bx6_eg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/bx6/BX6_EG.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision QS",
.internal_name = "bx6",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/bx6/BX6_QS.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -427,15 +464,15 @@ const device_t bx6_device = {
int
machine_at_bx6_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -449,6 +486,7 @@ machine_at_bx6_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -481,6 +519,7 @@ machine_at_p2bls_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -519,6 +558,7 @@ machine_at_p3bf_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -553,6 +593,7 @@ machine_at_ax6bc_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -584,6 +625,7 @@ machine_at_686bx_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -602,24 +644,53 @@ machine_at_686bx_init(const machine_t *model)
static const device_config_t ms6119_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "ms6119",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "AMIBIOS 6 (071595) - Revision 1.90 (Packard Bell Tacoma)", .internal_name = "tacoma", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/ms6119/A19P2190.ROM", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 2.10", .internal_name = "ms6119", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/ms6119/w6119ims.2a0", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 2.12 (Viglen Vig69M)", .internal_name = "vig69m", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/ms6119/vig69m.212", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 3.30b1 (LG IBM Multinet i x7G)", .internal_name = "lgibmx7g", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/ms6119/ms6119.331", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "AMIBIOS 6 (071595) - Revision 1.90 (Packard Bell Tacoma)",
.internal_name = "tacoma",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/ms6119/A19P2190.ROM", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 2.10",
.internal_name = "ms6119",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/ms6119/w6119ims.2a0", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 2.12 (Viglen Vig69M)",
.internal_name = "vig69m",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/ms6119/vig69m.212", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 3.30b1 (LG IBM Multinet i x7G)",
.internal_name = "lgibmx7g",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/ms6119/ms6119.331", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -642,15 +713,15 @@ const device_t ms6119_device = {
int
machine_at_ms6119_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
@@ -664,12 +735,13 @@ machine_at_ms6119_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
device_add(&winbond_flash_w29c020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
return ret;
}
@@ -696,6 +768,7 @@ machine_at_p6sba_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 0, 0);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -733,6 +806,7 @@ machine_at_s1846_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&pc87309_device, (void *) (PCX730X_AMI | PC87309_PC87309));
@@ -768,6 +842,7 @@ machine_at_vei8_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440zx_device);
device_add(&piix4e_device);
device_add_params(&fdc37m60x_device, (void *) (FDC37XXX2 | FDC37XXXX_370));
@@ -792,6 +867,7 @@ machine_at_ms6168_common_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440zx_device);
device_add(&piix4e_device);
@@ -862,6 +938,7 @@ machine_at_atc6310bxii_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -893,6 +970,7 @@ machine_at_ficka6130_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro_device);
device_add(&via_vt82c596a_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
@@ -926,6 +1004,7 @@ machine_at_p3v133_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133_device);
device_add(&via_vt82c596b_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -963,6 +1042,7 @@ machine_at_p3v4x_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c596b_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -995,6 +1075,7 @@ machine_at_gt694va_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c596b_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -1038,6 +1119,7 @@ machine_at_p6f99_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5600_device);
device_add(&it8661f_device);
device_add(&winbond_flash_w29c020_device);
@@ -1070,6 +1152,7 @@ machine_at_m747_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5600_device);
device_add(&it8661f_device);
device_add(&winbond_flash_w29c020_device);

View File

@@ -55,12 +55,13 @@ machine_at_prosignias31x_bx_init(const machine_t *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, 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(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0d, PCI_CARD_SOUND, 4, 3, 2, 1); /* assumed */
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(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0d, PCI_CARD_SOUND, 4, 3, 2, 1); /* assumed */
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -101,6 +102,7 @@ machine_at_s1857_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -132,12 +134,13 @@ machine_at_p6bat_init(const machine_t *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, 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(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0d, PCI_CARD_NORMAL, 4, 3, 2, 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(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0d, PCI_CARD_NORMAL, 4, 3, 2, 1);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133_device);
device_add(&via_vt82c596b_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));

View File

@@ -341,7 +341,7 @@ machine_at_d824_init(const machine_t *model)
device_add(&ide_isa_device);
device_add_params(&fdc37c6xx_device, (void *) FDC37C651);
return ret;
}
@@ -364,14 +364,14 @@ machine_at_pcs44c_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&oti077_pcs44c_device);
device_add(&vl82c113_device);
device_add(&ide_isa_device);
device_add_params(&pc873xx_device, (void *) (PCX73XX_IDE_PRI | PCX730X_398));
device_add(&intel_flash_bxt_device);
return ret;
}
@@ -401,8 +401,9 @@ machine_at_tuliptc38_init(const machine_t *model)
0x000c0000, 32768, 0);
device_add(machine_get_vid_device(machine));
} else for (uint16_t i = 0; i < 32768; i++)
rom[i] = mem_readb_phys(0x000c0000 + i);
} else
for (uint16_t i = 0; i < 32768; i++)
rom[i] = mem_readb_phys(0x000c0000 + i);
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
mem_mapping_set_exec(&bios_mapping, rom);

View File

@@ -228,16 +228,16 @@ machine_at_cobalt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
device_add(&opti499_device);
device_add(&ide_opti611_vlb_device);
device_add(&ide_isa_sec_device);
device_add_params(&fdc37c6xx_device, (void *) FDC37C665);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -374,6 +374,6 @@ machine_at_martin_init(const machine_t *model)
device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI));
device_add(&intel_flash_bxt_device);
return ret;
}

View File

@@ -170,22 +170,44 @@ machine_at_greenb_init(const machine_t *model)
static const device_config_t j403tg_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "403tg",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "AMI WinBIOS (121593)", .internal_name = "403tg", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/403tg/J403TGRevD.BIN", "" } },
{ .name = "Award Modular BIOS v4.50G", .internal_name = "403tg_award", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/403tg/403TG.BIN", "" } },
{ .name = "MR BIOS V2.02", .internal_name = "403tg_mr", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 65536, .files = { "roms/machines/403tg/MRBiosOPT895.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "AMI WinBIOS (121593)",
.internal_name = "403tg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/403tg/J403TGRevD.BIN", "" }
},
{
.name = "Award Modular BIOS v4.50G",
.internal_name = "403tg_award",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/403tg/403TG.BIN", "" }
},
{
.name = "MR BIOS V2.02",
.internal_name = "403tg_mr",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 65536,
.files = { "roms/machines/403tg/MRBiosOPT895.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -208,8 +230,8 @@ const device_t j403tg_device = {
int
machine_at_403tg_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
@@ -217,8 +239,8 @@ machine_at_403tg_init(const machine_t *model)
device_context(model->device);
int nvr_hack = !strcmp(device_get_config_bios("bios"), "403tg");
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000f0000, 65536, 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000f0000, 65536, 0);
if (nvr_hack) {
machine_at_common_init_ex(model, 2);

View File

@@ -60,6 +60,7 @@ machine_at_s370slm_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -95,6 +96,7 @@ machine_at_awo671r_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0D, PCI_CARD_VIDEO, 2, 3, 4, 1);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_inst_params(&w83977_device, 1, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -129,6 +131,7 @@ machine_at_ambx133_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -166,6 +169,7 @@ machine_at_cubx_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -201,6 +205,7 @@ machine_at_63a1_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); /* Integrated Sound? */
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440zx_device);
device_add(&piix4e_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -233,6 +238,7 @@ machine_at_atc7020bxii_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -264,6 +270,7 @@ machine_at_m773_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
device_add(&it8671f_device);
@@ -303,6 +310,7 @@ machine_at_apas3_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro_device);
device_add(&via_vt82c586b_device);
device_add_params(&fdc37c669_device, (void *) 0);
@@ -335,6 +343,7 @@ machine_at_p6bap_init(const machine_t *model)
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0d, PCI_CARD_NORMAL, 4, 3, 2, 1);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device); /* Rebranded as ET82C693A */
device_add(&via_vt82c596b_device); /* Rebranded as ET82C696B */
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
@@ -370,6 +379,7 @@ machine_at_6via90ap_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c686b_device); /* fans: CPU1, CPU2; temperatures: CPU, System, unused */
device_add(ics9xxx_get(ICS9250_18));
@@ -410,6 +420,7 @@ machine_at_cuv4xls_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c686b_device);
device_add(ics9xxx_get(ICS9250_18));
@@ -444,6 +455,7 @@ machine_at_7sbb_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&sis_5600_device);
device_add(&it8661f_device);
device_add(&sst_flash_29ee020_device); /* assumed */

View File

@@ -68,12 +68,11 @@ machine_at_ms4134_init(const machine_t *model)
pci_init(FLAG_MECHANISM_1 | FLAG_MECHANISM_2 | PCI_ALWAYS_EXPOSE_DEV0);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0B, PCI_CARD_SCSI, 4, 1, 2, 3);
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, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0B, PCI_CARD_SCSI, 4, 1, 2, 3);
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, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
@@ -102,11 +101,10 @@ machine_at_tg486gp_init(const machine_t *model)
pci_init(FLAG_MECHANISM_1 | FLAG_MECHANISM_2 | PCI_ALWAYS_EXPOSE_DEV0);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
@@ -290,20 +288,34 @@ machine_at_ms4145_init(const machine_t *model)
static const device_config_t pc330_6573_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Language",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Language",
.type = CONFIG_BIOS,
.default_string = "pc330_6573",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "English (PC 330, type 6573)", .internal_name = "pc330_6573", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pc330_6573/$IMAGES.USF", "" } },
{ .name = "Japanese (Aptiva 510/710/Vision)", .internal_name = "aptiva510", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pc330_6573/aptiva510_$IMAGES.USF", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "English (PC 330, type 6573)",
.internal_name = "pc330_6573", .bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pc330_6573/$IMAGES.USF", "" }
},
{
.name = "Japanese (Aptiva 510/710/Vision)",
.internal_name = "aptiva510",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pc330_6573/aptiva510_$IMAGES.USF", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -326,15 +338,15 @@ const device_t pc330_6573_device = {
int
machine_at_pc330_6573_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -371,22 +383,44 @@ machine_at_pc330_6573_init(const machine_t *model)
static const device_config_t pb450_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "pb450a",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "PhoenixBIOS 4.03 - Revision PCI 1.0A", .internal_name = "pb450a_pci10a" /*"pci10a"*/, .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/OPTI802.bin", "" } },
{ .name = "PhoenixBIOS 4.03 - Revision PNP 1.1A", .internal_name = "pb450a", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/PNP11A.bin", "" } },
{ .name = "PhoenixBIOS 4.05 - Revision P4HS20 (by Micro Firmware)", .internal_name = "pb450a_p4hs20", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/p4hs20.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "PhoenixBIOS 4.03 - Revision PCI 1.0A",
.internal_name = "pb450a_pci10a" /*"pci10a"*/,
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pb450/OPTI802.bin", "" }
},
{
.name = "PhoenixBIOS 4.03 - Revision PNP 1.1A",
.internal_name = "pb450a",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pb450/PNP11A.bin", "" }
},
{
.name = "PhoenixBIOS 4.05 - Revision P4HS20 (by Micro Firmware)",
.internal_name = "pb450a_p4hs20",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/pb450/p4hs20.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -409,18 +443,18 @@ const device_t pb450_device = {
int
machine_at_pb450_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
if (bios_only || !ret)
return ret;
@@ -735,22 +769,44 @@ machine_at_486sp3g_init(const machine_t *model)
static const device_config_t sb486pv_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "sb486pv",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "AMI WinBIOS (062594) - Revision 0108", .internal_name = "sb486pv_0108", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/sb486pv/41-0108-062594-SATURN2.rom", "" } },
{ .name = "AMI WinBIOS (062594) - Revision 0301", .internal_name = "sb486pv_0301", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/sb486pv/0301-062594-SATURN2.rom", "" } },
{ .name = "AMIBIOS 6 (071595) - Revision 1301", .internal_name = "sb486pv", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/sb486pv/amiboot.rom", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "AMI WinBIOS (062594) - Revision 0108",
.internal_name = "sb486pv_0108",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/sb486pv/41-0108-062594-SATURN2.rom", "" }
},
{
.name = "AMI WinBIOS (062594) - Revision 0301",
.internal_name = "sb486pv_0301",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/sb486pv/0301-062594-SATURN2.rom", "" }
},
{
.name = "AMIBIOS 6 (071595) - Revision 1301",
.internal_name = "sb486pv",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/sb486pv/amiboot.rom", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -773,8 +829,8 @@ const device_t sb486pv_device = {
int
machine_at_sb486pv_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
@@ -877,11 +933,12 @@ machine_at_acerp3_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
pci_register_slot(0x09, PCI_CARD_VIDEO, 0, 0, 0, 0);
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
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(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI));
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -910,6 +967,7 @@ machine_at_486sp3c_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -937,6 +995,7 @@ machine_at_ls486e_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_ls486e_device);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -963,6 +1022,7 @@ machine_at_m4li_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
@@ -989,6 +1049,7 @@ machine_at_ms4144_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_ls486e_device);
pci_register_slot(0x03, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -1016,6 +1077,7 @@ machine_at_r418_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -1042,6 +1104,7 @@ machine_at_4saw2_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -1070,6 +1133,7 @@ machine_at_4dps_init(const machine_t *model)
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
@@ -1161,8 +1225,7 @@ machine_at_pl4600c_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3); /* Slot 02 */
pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x12, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); /* Onboard */
pci_register_slot(0x13, PCI_CARD_VIDEO, 0, 0, 0, 0); /* Onboard */
pci_register_slot(0x13, PCI_CARD_VIDEO, 0, 0, 0, 0); /* Onboard */
device_add(&umc_hb4_device);
device_add(&umc_8886af_device);
@@ -1176,7 +1239,7 @@ machine_at_pl4600c_init(const machine_t *model)
if (sound_card_current[0] == SOUND_INTERNAL)
device_add(&ess_1688_device);
if (fdc_current[0] == FDC_INTERNAL){
if (fdc_current[0] == FDC_INTERNAL) {
fdd_set_turbo(0, 1);
fdd_set_turbo(1, 1);
}
@@ -1305,7 +1368,7 @@ machine_at_m919_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&umc_hb4_device);
device_add(&umc_8886af_device); /* AF is correct - the BIOS does IDE writes to ports 108h and 109h. */
device_add(&umc_8886af_device); /* AF is correct - the BIOS does IDE writes to ports 108h and 109h. */
device_add_params(&um866x_device, (void *) UM8663BF);
device_add(&sst_flash_29ee010_device);
@@ -1344,20 +1407,35 @@ machine_at_spc7700plw_init(const machine_t *model)
static const device_config_t hot433a_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "hot433a",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "AMIBIOS 5 (101094) - Revision 433AUS33", .internal_name = "hot433a", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/hot433/433AUS33.ROM", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 2.5 (by eSupport)", .internal_name = "hot433a_v451pg", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/hot433/2A4X5H21.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "AMIBIOS 5 (101094) - Revision 433AUS33",
.internal_name = "hot433a",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/hot433/433AUS33.ROM", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 2.5 (by eSupport)",
.internal_name = "hot433a_v451pg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/hot433/2A4X5H21.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -1380,8 +1458,8 @@ const device_t hot433a_device = {
int
machine_at_hot433a_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
@@ -1389,8 +1467,8 @@ machine_at_hot433a_init(const machine_t *model)
device_context(model->device);
int is_award = !strcmp(device_get_config_bios("bios"), "hot433a_v451pg");
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);

View File

@@ -43,20 +43,35 @@
static const device_config_t v12p_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "v12p",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.bios = {
{ .name = "Acer BIOS V1.2 - Revision R1.4", .internal_name = "v12p_r14", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/v12p/v12p_14.bin", "" } },
{ .name = "Acer BIOS V1.2 - Revision R1.6", .internal_name = "v12p", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/v12p/v12p_16.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Acer BIOS V1.2 - Revision R1.4",
.internal_name = "v12p_r14",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/v12p/v12p_14.bin", "" }
},
{
.name = "Acer BIOS V1.2 - Revision R1.6",
.internal_name = "v12p",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/v12p/v12p_16.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -70,7 +85,7 @@ const device_t v12p_device = {
.init = NULL,
.close = NULL,
.reset = NULL,
.available = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = v12p_config
@@ -79,18 +94,18 @@ const device_t v12p_device = {
int
machine_at_v12p_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init(model);
device_add(&ide_isa_device);
@@ -101,6 +116,7 @@ machine_at_v12p_init(const machine_t *model)
pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 2, 1, 4);
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 0, 0, 0);
pci_register_slot(0x05, PCI_CARD_NORMAL, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&sio_zb_device);
@@ -130,6 +146,7 @@ machine_at_excaliburpci_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(&fdc37c6xx_device, (void *) FDC37C665);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&ide_cmd640_pci_legacy_only_device);
@@ -160,6 +177,7 @@ machine_at_p5mp3_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */
pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 3 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&fdc_at_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -192,6 +210,7 @@ machine_at_opti560l_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 1, 4, 3, 2);
pci_register_slot(0x08, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&sio_zb_device);
@@ -264,6 +283,7 @@ machine_at_valuepointp60_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&sio_device);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI));
@@ -280,22 +300,44 @@ machine_at_valuepointp60_init(const machine_t *model)
static const device_config_t batman_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "batman",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "AMIBIOS 111192 - Revision A08 (Dell Dimension XPS P60)", .internal_name = "dellxp60", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/batman/XP60-A08.ROM", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.04.AF1P (AMBRA DP60 PCI)", .internal_name = "ambradp60", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/batman/1004AF1P.BIO", "roms/machines/batman/1004AF1P.BI1", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.08.AF1", .internal_name = "batman", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/batman/1008AF1_.BIO", "roms/machines/batman/1008AF1_.BI1", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "AMIBIOS 111192 - Revision A08 (Dell Dimension XPS P60)",
.internal_name = "dellxp60",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/batman/XP60-A08.ROM", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.04.AF1P (AMBRA DP60 PCI)",
.internal_name = "ambradp60",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/batman/1004AF1P.BIO", "roms/machines/batman/1004AF1P.BI1", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.08.AF1",
.internal_name = "batman",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/batman/1008AF1_.BIO", "roms/machines/batman/1008AF1_.BI1", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -318,9 +360,9 @@ const device_t batman_device = {
int
machine_at_batman_init(const machine_t *model)
{
int ret = 0;
const char* fn;
const char* fn2;
int ret = 0;
const char *fn;
const char *fn2;
/* No ROMs available */
if (!device_available(model->device))
@@ -328,7 +370,7 @@ machine_at_batman_init(const machine_t *model)
device_context(model->device);
int is_dell = !strcmp(device_get_config_bios("bios"), "dellxp60");
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
if (is_dell)
ret = bios_load_linear_inverted(fn, 0x000e0000, 131072, 0);
else {
@@ -346,15 +388,16 @@ machine_at_batman_init(const machine_t *model)
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0);
if (is_dell) {
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 4, 3, 3);
pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 4, 3, 2);
pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 4, 3, 3);
pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 4, 3, 2);
pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4);
} else {
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
}
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&sio_zb_device);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI));
@@ -380,6 +423,7 @@ machine_at_premiere_common_init(const machine_t *model, int pci_switch)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&sio_zb_device);
device_add(&ide_rz1000_pci_single_channel_device);
@@ -412,7 +456,7 @@ machine_at_m5pi_init(const machine_t *model)
int ret;
ret = bios_load_linear_inverted("roms/machines/m5pi/M5PI10R.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
@@ -426,10 +470,11 @@ machine_at_m5pi_init(const machine_t *model)
pci_register_slot(0x0c, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&sio_zb_device);
device_add(&i430lx_device);
device_add(&sio_zb_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&ide_w83769f_pci_single_channel_device);
device_add(&ide_w83769f_pci_single_channel_device);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC));
device_add(&intel_flash_bxt_ami_device);
@@ -458,6 +503,7 @@ machine_at_pb520r_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&ide_cmd640_pci_single_channel_device);
@@ -579,6 +625,7 @@ machine_at_excaliburpci2_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add_params(&fdc37c6xx_device, (void *) FDC37C665);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&ide_cmd640_pci_legacy_only_device);
@@ -605,6 +652,7 @@ machine_at_sp4_common_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);
device_add(&sis_85c50x_device);
device_add(&ide_cmd640_pci_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -649,6 +697,7 @@ machine_at_ecs50x_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add_params(&ide_cmd640_pci_device, (void *) 0x100000);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);

View File

@@ -98,6 +98,7 @@ machine_at_celebris5xx_init(const machine_t *model)
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add_params(&fdc37c6xx_device, (void *) FDC37C665);
device_add(&ide_cmd640_pci_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));

View File

@@ -62,6 +62,7 @@ machine_at_p54np4_init(const machine_t *model)
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 05 = Slot 3 */
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 04 = Slot 4 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430nx_device);
device_add(&sio_zb_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -92,22 +93,44 @@ machine_at_586ip_init(const machine_t *model)
static const device_config_t plato_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "plato",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Intel AMIBIOS - Revision 1.00.02.AX1P (AMBRA DP90 PCI)", .internal_name = "ambradp90", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/plato/1002AX1P.BIO", "roms/machines/plato/1002AX1P.BI1", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.16.AX1", .internal_name = "plato", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/plato/1016ax1_.bio", "roms/machines/plato/1016ax1_.bi1", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.16.AX1J (Dell Dimension XPS P___)", .internal_name = "dellplato", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/plato/1016AX1J.BIO", "roms/machines/plato/1016AX1J.BI1", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Intel AMIBIOS - Revision 1.00.02.AX1P (AMBRA DP90 PCI)",
.internal_name = "ambradp90",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/plato/1002AX1P.BIO", "roms/machines/plato/1002AX1P.BI1", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.16.AX1",
.internal_name = "plato",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/plato/1016ax1_.bio", "roms/machines/plato/1016ax1_.bi1", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.16.AX1J (Dell Dimension XPS P___)",
.internal_name = "dellplato",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/plato/1016AX1J.BIO", "roms/machines/plato/1016AX1J.BI1", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -130,16 +153,16 @@ const device_t plato_device = {
int
machine_at_plato_init(const machine_t *model)
{
int ret = 0;
const char* fn;
const char* fn2;
int ret = 0;
const char *fn;
const char *fn2;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn2 = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 1);
ret = bios_load_linear_combined(fn, fn2, 0x1d000, 128);
device_context_restore();
@@ -154,28 +177,71 @@ machine_at_plato_init(const machine_t *model)
static const device_config_t d842_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "d842",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.bios = {
{ .name = "PhoenixBIOS Pentium 1.03 - Revision 1.03.842", .internal_name = "d842_103", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d842/d842.BIN", "" } },
{ .name = "PhoenixBIOS Pentium 1.03 - Revision 1.09.842", .internal_name = "d842_109", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d842/d842_jul96.bin", "" } },
{ .name = "PhoenixBIOS Pentium 1.03 - Revision 1.10.842", .internal_name = "d842", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d842/d842_jun98_1.bin", "" } },
{ .name = "PhoenixBIOS 4.04 - Revision 1.05.842", .internal_name = "d842_105", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d842/d842_mar96.bin", "" } },
{ .name = "PhoenixBIOS 4.04 - Revision 1.06.842", .internal_name = "d842_106", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d842/d842_apr98.bin", "" } },
{ .name = "PhoenixBIOS 4.04 - Revision 1.07.842", .internal_name = "d842_107", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d842/d842_jun98.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "PhoenixBIOS Pentium 1.03 - Revision 1.03.842",
.internal_name = "d842_103",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d842/d842.BIN", "" }
},
{
.name = "PhoenixBIOS Pentium 1.03 - Revision 1.09.842",
.internal_name = "d842_109",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d842/d842_jul96.bin", "" }
},
{
.name = "PhoenixBIOS Pentium 1.03 - Revision 1.10.842",
.internal_name = "d842",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d842/d842_jun98_1.bin", "" }
},
{
.name = "PhoenixBIOS 4.04 - Revision 1.05.842",
.internal_name = "d842_105",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d842/d842_mar96.bin", "" }
},
{
.name = "PhoenixBIOS 4.04 - Revision 1.06.842",
.internal_name = "d842_106",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d842/d842_apr98.bin", "" }
},
{
.name = "PhoenixBIOS 4.04 - Revision 1.07.842",
.internal_name = "d842_107",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d842/d842_jun98.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -198,15 +264,15 @@ const device_t d842_device = {
int
machine_at_d842_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -249,7 +315,9 @@ machine_at_tek932_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
machine_force_ps2(1);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430nx_device);
device_add(&sio_zb_device);
@@ -281,6 +349,7 @@ machine_at_acerv30_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -312,6 +381,7 @@ machine_at_apollo_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
@@ -411,6 +481,7 @@ machine_at_pt2000_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
@@ -441,6 +512,7 @@ machine_at_zappa_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
@@ -468,6 +540,7 @@ machine_at_powermatev_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 0, 0, 0, 0);
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
@@ -497,6 +570,7 @@ machine_at_hawk_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
@@ -630,6 +704,7 @@ machine_at_sq588_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_cmd640_pci_single_channel_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -655,10 +730,11 @@ machine_at_p54sps_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_pci_2ch_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -685,11 +761,12 @@ machine_at_ms5109_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_IDE, 0, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 3, 2, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_IDE, 0, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 3, 2, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_550x_85c503_device);
device_add(&ide_w83769f_pci_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -717,10 +794,10 @@ machine_at_torino_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_VIDEO, 0, 0, 0, 0);
pci_register_slot(0x03, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x08, PCI_CARD_VIDEO, 0, 0, 0, 0);
pci_register_slot(0x03, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -744,19 +821,20 @@ machine_at_hot539_init(const machine_t *model)
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(0x12, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x15, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x16, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x15, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x16, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&umc_8890_device);
device_add(&umc_8886af_device);
device_add(&sst_flash_29ee010_device);
@@ -795,10 +873,12 @@ machine_at_bravoms586_init(const machine_t *model)
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC));
device_add(&ide_cmd640_pci_single_channel_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&ast_readout_device); /* AST custom jumper readout */
device_add(&ast_nvr_device); /* AST custom secondary NVR device */
device_add(&ast_nvr_device); /* AST custom secondary NVR device */
return ret;
}
@@ -824,6 +904,7 @@ machine_at_g586vpmc_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x08, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
device_add(&vl82c59x_device);
device_add(&sst_flash_29ee010_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -852,6 +933,7 @@ machine_at_m54si_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
/* Slots are a guess since this BIOS won't work with pcireg */
device_add(&vl82c59x_device);
device_add(&intel_flash_bxt_device);
@@ -883,12 +965,14 @@ machine_at_pb600_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add(&vl82c59x_device);
device_add(&intel_flash_bxt_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add_params(&fdc37c6xx_device, (void *) FDC37C665);
device_add(&phoenix_486_jumper_pci_pb600_device);
device_add(&ide_cmd640_pci_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -917,11 +1001,13 @@ machine_at_globalyst620_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); /* Slot 04 */
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1); /* Slot 05 */
pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); /* Slot 06 */
device_add(&vl82c59x_wildcat_device);
device_add(&intel_flash_bxt_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&ide_cmd640_pci_single_channel_legacy_only_device);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC));
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));

View File

@@ -65,6 +65,7 @@ machine_at_acerm3a_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x10, PCI_CARD_VIDEO, 4, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL));
@@ -94,6 +95,7 @@ machine_at_p55t2p4_init(const machine_t *model)
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(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -116,6 +118,7 @@ machine_at_p65up5_common_init(const machine_t *model, const device_t *northbridg
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(northbridge);
device_add(&piix3_ioapic_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -143,28 +146,49 @@ machine_at_p65up5_cp55t2d_init(const machine_t *model)
static const device_config_t cu430hx_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "cu430hx",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Intel AMIBIOS - Revision 1.00.03.DK08 (Toshiba Equium 5xx0D)", .internal_name = "equium5200", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "roms/machines/cu430hx/1003DK08.BIO", "roms/machines/cu430hx/1003DK08.BI1",
"roms/machines/cu430hx/1003DK08.BI2", "roms/machines/cu430hx/1003DK08.BI3",
"roms/machines/cu430hx/1003DK08.RCV", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.04.DK0K (NEC PowerMate V2xxx/P2xxx)", .internal_name = "powermatev2p2", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "roms/machines/cu430hx/1004DK0K.BIO", "roms/machines/cu430hx/1004DK0K.BI1",
"roms/machines/cu430hx/1004DK0K.BI2", "roms/machines/cu430hx/1004DK0K.BI3",
"roms/machines/cu430hx/1004DK0K.RCV", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.06.DK0", .internal_name = "cu430hx", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "roms/machines/cu430hx/1006DK0_.BIO", "roms/machines/cu430hx/1006DK0_.BI1",
"roms/machines/cu430hx/1006DK0_.BI2", "roms/machines/cu430hx/1006DK0_.BI3",
"roms/machines/cu430hx/1006DK0_.RCV", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Intel AMIBIOS - Revision 1.00.03.DK08 (Toshiba Equium 5xx0D)",
.internal_name = "equium5200",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "roms/machines/cu430hx/1003DK08.BIO", "roms/machines/cu430hx/1003DK08.BI1",
"roms/machines/cu430hx/1003DK08.BI2", "roms/machines/cu430hx/1003DK08.BI3",
"roms/machines/cu430hx/1003DK08.RCV", "" } },
{
.name = "Intel AMIBIOS - Revision 1.00.04.DK0K (NEC PowerMate V2xxx/P2xxx)",
.internal_name = "powermatev2p2",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "roms/machines/cu430hx/1004DK0K.BIO", "roms/machines/cu430hx/1004DK0K.BI1",
"roms/machines/cu430hx/1004DK0K.BI2", "roms/machines/cu430hx/1004DK0K.BI3",
"roms/machines/cu430hx/1004DK0K.RCV", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.06.DK0",
.internal_name = "cu430hx",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "roms/machines/cu430hx/1006DK0_.BIO", "roms/machines/cu430hx/1006DK0_.BI1",
"roms/machines/cu430hx/1006DK0_.BI2", "roms/machines/cu430hx/1006DK0_.BI3",
"roms/machines/cu430hx/1006DK0_.RCV", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -218,8 +242,8 @@ machine_at_cu430hx_gpio_init(void)
int
machine_at_cu430hx_init(const machine_t *model)
{
int ret = 0;
const char* fn[5];
int ret = 0;
const char *fn[5];
/* No ROMs available */
if (!device_available(model->device))
@@ -258,24 +282,39 @@ machine_at_cu430hx_init(const machine_t *model)
static const device_config_t tc430hx_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "tc430hx",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Intel AMIBIOS - Revision 1.00.07.DH0", .internal_name = "tc430hx", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "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", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.08.DH08 (Toshiba Infinia 7xx1)", .internal_name = "infinia7200", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "roms/machines/tc430hx/1008DH08.BIO", "roms/machines/tc430hx/1008DH08.BI1",
"roms/machines/tc430hx/1008DH08.BI2", "roms/machines/tc430hx/1008DH08.BI3",
"roms/machines/tc430hx/1008DH08.RCV", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Intel AMIBIOS - Revision 1.00.07.DH0",
.internal_name = "tc430hx",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "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", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.08.DH08 (Toshiba Infinia 7xx1)",
.internal_name = "infinia7200",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "roms/machines/tc430hx/1008DH08.BIO", "roms/machines/tc430hx/1008DH08.BI1",
"roms/machines/tc430hx/1008DH08.BI2", "roms/machines/tc430hx/1008DH08.BI3",
"roms/machines/tc430hx/1008DH08.RCV", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -329,8 +368,8 @@ machine_at_tc430hx_gpio_init(void)
int
machine_at_tc430hx_init(const machine_t *model)
{
int ret = 0;
const char* fn[5];
int ret = 0;
const char *fn[5];
/* No ROMs available */
if (!device_available(model->device))
@@ -371,20 +410,35 @@ machine_at_tc430hx_init(const machine_t *model)
static const device_config_t m7shi_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "m7shi",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "PhoenixBIOS 4.0 Release 6.0 - Revision 05/20/97", .internal_name = "m7shi", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/m7shi/m7shi2n.rom", "" } },
{ .name = "PhoenixBIOS 4.0 Release 6.0 - Revision 01/21/98", .internal_name = "m7shi_4", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/m7shi/M7ns04.rom", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "PhoenixBIOS 4.0 Release 6.0 - Revision 05/20/97",
.internal_name = "m7shi",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/m7shi/m7shi2n.rom", "" }
},
{
.name = "PhoenixBIOS 4.0 Release 6.0 - Revision 01/21/98",
.internal_name = "m7shi_4",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/m7shi/M7ns04.rom", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -407,15 +461,15 @@ const device_t m7shi_device = {
int
machine_at_m7shi_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
@@ -428,6 +482,7 @@ machine_at_m7shi_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL));
@@ -457,6 +512,7 @@ machine_at_epc2102_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -497,6 +553,7 @@ machine_at_pcv90_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
@@ -528,6 +585,7 @@ machine_at_p55t2s_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
@@ -561,6 +619,7 @@ machine_at_ap5vm_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -591,6 +650,7 @@ machine_at_p55tvp4_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -619,6 +679,7 @@ machine_at_5ivg_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(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -648,6 +709,7 @@ machine_at_8500tvxa_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, 2, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 3, 2, 1);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -742,6 +804,7 @@ machine_at_dellhannibalp_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX2 | FDC37C93X_FR));
@@ -770,6 +833,7 @@ machine_at_p5vxb_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -799,6 +863,7 @@ machine_at_p55va_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX2 | FDC37C93X_FR));
@@ -864,6 +929,7 @@ machine_at_brio80xx_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL | FDC37XXXX_370));
@@ -875,20 +941,35 @@ machine_at_brio80xx_init(const machine_t *model)
static const device_config_t lgibmx52_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "lgibmx52",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "PhoenixBIOS 4.05 - Revision 08/21/97", .internal_name = "lgibmx52_082197", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/lgibmx52/BIOS.ROM", "" } },
{ .name = "PhoenixBIOS 4.05 - Revision 03/26/99", .internal_name = "lgibmx52", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/lgibmx52/MS5136 LG IBM OEM.ROM", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "PhoenixBIOS 4.05 - Revision 08/21/97",
.internal_name = "lgibmx52_082197",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/lgibmx52/BIOS.ROM", "" }
},
{
.name = "PhoenixBIOS 4.05 - Revision 03/26/99",
.internal_name = "lgibmx52",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/lgibmx52/MS5136 LG IBM OEM.ROM", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -911,15 +992,15 @@ const device_t lgibmx52_device = {
int
machine_at_lgibmx52_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -932,6 +1013,7 @@ machine_at_lgibmx52_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -997,9 +1079,9 @@ machine_at_pb810_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x0b, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x0b, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (sound_card_current[0] == SOUND_INTERNAL)
@@ -1033,6 +1115,7 @@ machine_at_mb520n_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -1062,6 +1145,7 @@ machine_at_i430vx_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -1134,6 +1218,7 @@ machine_at_tx97_init(const machine_t *model)
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);
device_add(&piix4_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -1155,6 +1240,7 @@ void
machine_at_optiplex_21152_init(void)
{
uint8_t bus_index = pci_bridge_get_bus_index(device_add(&dec21152_device));
pci_register_bus_slot(bus_index, 0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_bus_slot(bus_index, 0x0a, PCI_CARD_NORMAL, 4, 2, 1, 3);
pci_register_bus_slot(bus_index, 0x0b, PCI_CARD_NORMAL, 1, 3, 4, 2);
@@ -1219,6 +1305,7 @@ machine_at_tomahawk_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add_params(&fdc37c67x_device, (void *) (FDC37XXX2 | FDC37XXXX_370));
@@ -1261,6 +1348,7 @@ machine_at_ym430tx_init(const machine_t *model)
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);
device_add(&piix4_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
@@ -1290,6 +1378,7 @@ machine_at_thunderbolt_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 1, 2, 3, 0);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 0, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 0, 1, 2);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL | FDC37C93X_NO_NVR));
@@ -1319,6 +1408,7 @@ machine_at_ma23c_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0B, PCI_CARD_VIDEO, 3, 4, 1, 2);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&nec_mate_unk_device);
@@ -1354,6 +1444,7 @@ machine_at_an430tx_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
device_add(&i430tx_device);
device_add(&piix4_device);
#ifdef FOLLOW_THE_SPECIFICATION
@@ -1391,6 +1482,7 @@ machine_at_mb540n_init(const machine_t *model)
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 */
device_add(&i430tx_device);
device_add(&piix4_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -1422,6 +1514,7 @@ machine_at_56a5_init(const machine_t *model)
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(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -1452,6 +1545,7 @@ machine_at_p5mms98_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);
device_add(&i430tx_device);
device_add(&piix4_device);
/* This actually has the Winbond W83967AF, for which I can not find any datasheet at all. */
@@ -1484,6 +1578,7 @@ machine_at_richmond_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);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -1517,6 +1612,7 @@ machine_at_ficva502_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
device_add(&via_vpx_device);
device_add(&via_vt82c586b_device);
device_add_params(&fdc37c669_device, (void *) FDC37C6XX_370);
@@ -1649,20 +1745,35 @@ machine_at_ms5146_init(const machine_t *model)
static const device_config_t r534f_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "r534f_1998",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.51PG - Revision 06/12/1998", .internal_name = "r534f_1998", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/r534f/r534f008-1998.bin", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 03/13/2000 (by Unicore Software)", .internal_name = "r534f", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/r534f/r534f008.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.51PG - Revision 06/12/1998",
.internal_name = "r534f_1998",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/r534f/r534f008-1998.bin", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 03/13/2000 (by Unicore Software)",
.internal_name = "r534f",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/r534f/r534f008.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -1685,15 +1796,15 @@ const device_t r534f_device = {
int
machine_at_r534f_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -1736,6 +1847,7 @@ machine_at_sp97xv_init(const machine_t *model)
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(0x13, PCI_CARD_VIDEO, 1, 2, 3, 4); /* On-chip SiS graphics, absent here. */
device_add(&sis_5581_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
@@ -1762,6 +1874,7 @@ machine_at_sq578_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&sis_5581_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
device_add(&sst_flash_29ee010_device);
@@ -1790,6 +1903,7 @@ machine_at_ms5172_init(const machine_t *model)
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(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&sis_5591_1997_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
device_add(&sst_flash_29ee010_device);
@@ -1801,20 +1915,35 @@ machine_at_ms5172_init(const machine_t *model)
static const device_config_t m5ata_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "m5ata",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.51PG - Revision 12/23/97", .internal_name = "m5ata_1223", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/m5ata/ATA1223.BIN", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 05/27/98", .internal_name = "m5ata", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/m5ata/ATA0527B.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.51PG - Revision 12/23/97",
.internal_name = "m5ata_1223",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/m5ata/ATA1223.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 05/27/98",
.internal_name = "m5ata",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/m5ata/ATA0527B.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -1837,15 +1966,15 @@ const device_t m5ata_device = {
int
machine_at_m5ata_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -1923,6 +2052,7 @@ machine_at_m560_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
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(&sst_flash_29ee010_device);

View File

@@ -45,18 +45,33 @@
static const device_config_t p54tp4xe_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "p54tp4xe",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.51PG - Revision 0302", .internal_name = "p54tp4xe", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/p54tp4xe/t15i0302.awd", "" } },
{ .name = "MR BIOS V3.30", .internal_name = "p54tp4xe_mr", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/p54tp4xe/TRITON.BIO", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.51PG - Revision 0302",
.internal_name = "p54tp4xe",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/p54tp4xe/t15i0302.awd", "" }
},
{
.name = "MR BIOS V3.30",
.internal_name = "p54tp4xe_mr",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/p54tp4xe/TRITON.BIO", "" }
},
{ .files_no = 0 }
},
},
@@ -81,15 +96,15 @@ const device_t p54tp4xe_device = {
int
machine_at_p54tp4xe_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -102,6 +117,7 @@ machine_at_p54tp4xe_init(const machine_t *model)
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(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
@@ -126,11 +142,12 @@ machine_at_exp8551_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
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(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
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(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
@@ -175,22 +192,44 @@ machine_at_vectra54_init(const machine_t *model)
static const device_config_t thor_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "thor",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Intel AMIBIOS - Revision 1.00.03.CN0T (Gateway 2000)", .internal_name = "gw2katx", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/thor/1003CN0T.BIO", "roms/machines/thor/1003CN0T.BI1", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.06.CN0", .internal_name = "thor", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/thor/1006cn0_.bio", "roms/machines/thor/1006cn0_.bi1", "" } },
{ .name = "MR BIOS V3.28", .internal_name = "mrthor", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/thor/mr_atx.bio", "" } },
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Intel AMIBIOS - Revision 1.00.03.CN0T (Gateway 2000)",
.internal_name = "gw2katx",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/thor/1003CN0T.BIO", "roms/machines/thor/1003CN0T.BI1", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.06.CN0",
.internal_name = "thor",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/thor/1006cn0_.bio", "roms/machines/thor/1006cn0_.bi1", "" }
},
{
.name = "MR BIOS V3.28",
.internal_name = "mrthor",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/thor/mr_atx.bio", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -258,9 +297,9 @@ machine_at_thor_gpio_init(void)
int
machine_at_thor_init(const machine_t *model)
{
int ret = 0;
const char* fn;
const char* fn2;
int ret = 0;
const char *fn;
const char *fn2;
/* No ROMs available */
if (!device_available(model->device))
@@ -269,7 +308,7 @@ machine_at_thor_init(const machine_t *model)
device_context(model->device);
int is_mr = !strcmp(device_get_config_bios("bios"), "mrthor");
int has_video = !strcmp(device_get_config_bios("bios"), "thor");
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
if (is_mr)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
else {
@@ -366,20 +405,21 @@ machine_at_endeavor_gpio_handler(uint8_t write, uint32_t val)
if (write) {
ret &= ((val & 0xffffffcf) | 0xffff0000);
ret |= (val & 0x00000030);
if (machine_snd != NULL) switch ((val >> 4) & 0x03) {
case 0x00:
sb_vibra16s_onboard_relocate_base(0x0220, machine_snd);
break;
case 0x01:
sb_vibra16s_onboard_relocate_base(0x0260, machine_snd);
break;
case 0x02:
sb_vibra16s_onboard_relocate_base(0x0240, machine_snd);
break;
case 0x03:
sb_vibra16s_onboard_relocate_base(0x0280, machine_snd);
break;
}
if (machine_snd != NULL)
switch ((val >> 4) & 0x03) {
case 0x00:
sb_vibra16s_onboard_relocate_base(0x0220, machine_snd);
break;
case 0x01:
sb_vibra16s_onboard_relocate_base(0x0260, machine_snd);
break;
case 0x02:
sb_vibra16s_onboard_relocate_base(0x0240, machine_snd);
break;
case 0x03:
sb_vibra16s_onboard_relocate_base(0x0280, machine_snd);
break;
}
machine_set_gpio(ret);
} else
ret = machine_get_gpio();
@@ -508,6 +548,7 @@ machine_at_pb640_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 2, 1, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430fx_rev02_device);
device_add(&piix_rev02_device);
@@ -535,11 +576,12 @@ machine_at_mb500n_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_no_mirq_device);
@@ -595,11 +637,12 @@ machine_at_acerv35n_init(const machine_t *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(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);
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
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);
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
/* The chip is not marked FR but the BIOS accesses register 06h of GPIO. */
@@ -630,6 +673,7 @@ machine_at_ap53_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x06, PCI_CARD_VIDEO, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -659,6 +703,7 @@ machine_at_8500tuc_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -671,24 +716,53 @@ machine_at_8500tuc_init(const machine_t *model)
static const device_config_t d943_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "d943",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.bios = {
{ .name = "PhoenixBIOS 4.05 - Revision 1.02.943", .internal_name = "d943_oct96", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d943/d943_oct96.bin", "" } },
{ .name = "PhoenixBIOS 4.05 - Revision 1.03.943", .internal_name = "d943_dec96", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d943/d943_dec96.bin", "" } },
{ .name = "PhoenixBIOS 4.05 - Revision 1.05.943", .internal_name = "d943_sept97", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d943/d943_sept97.bin", "" } },
{ .name = "PhoenixBIOS 4.05 - Revision 1.06.943", .internal_name = "d943", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/d943/d943_oct97.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "PhoenixBIOS 4.05 - Revision 1.02.943",
.internal_name = "d943_oct96",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d943/d943_oct96.bin", "" }
},
{
.name = "PhoenixBIOS 4.05 - Revision 1.03.943",
.internal_name = "d943_dec96",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d943/d943_dec96.bin", "" }
},
{
.name = "PhoenixBIOS 4.05 - Revision 1.05.943",
.internal_name = "d943_sept97",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d943/d943_sept97.bin", "" }
},
{
.name = "PhoenixBIOS 4.05 - Revision 1.06.943",
.internal_name = "d943",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/d943/d943_oct97.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -711,18 +785,18 @@ const device_t d943_device = {
int
machine_at_d943_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device);
@@ -731,8 +805,9 @@ machine_at_d943_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 2, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 3, 2, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -790,22 +865,44 @@ machine_at_gw2kma_init(const machine_t *model)
static const device_config_t c5sbm2_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "5sbm2",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.50GP - Revision 07/17/1995", .internal_name = "5sbm2_v450gp", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/5sbm2/5SBM0717.BIN", "" } },
{ .name = "Award Modular BIOS v4.50PG - Revision 03/26/1996", .internal_name = "5sbm2", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/5sbm2/5SBM0326.BIN", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision 2.2 (by Unicore Software)", .internal_name = "5sbm2_451pg", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/5sbm2/2A5ICC3A.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.50GP - Revision 07/17/1995",
.internal_name = "5sbm2_v450gp",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/5sbm2/5SBM0717.BIN", "" }
},
{
.name = "Award Modular BIOS v4.50PG - Revision 03/26/1996",
.internal_name = "5sbm2",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/5sbm2/5SBM0326.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 2.2 (by Unicore Software)",
.internal_name = "5sbm2_451pg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/5sbm2/2A5ICC3A.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -828,15 +925,15 @@ const device_t c5sbm2_device = {
int
machine_at_5sbm2_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -893,22 +990,44 @@ machine_at_amis727_init(const machine_t *model)
static const device_config_t ap5s_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "ap5s",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Award Modular BIOS v4.50PG - Revision R1.20", .internal_name = "ap5s_450pg", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/ap5s/ap5s120.bin", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision R1.50", .internal_name = "ap5s_r150", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/ap5s/AP5S150.BIN", "" } },
{ .name = "Award Modular BIOS v4.51PG - Revision R1.60", .internal_name = "ap5s", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/ap5s/ap5s160.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.50PG - Revision R1.20",
.internal_name = "ap5s_450pg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ap5s/ap5s120.bin", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision R1.50",
.internal_name = "ap5s_r150",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ap5s/AP5S150.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision R1.60",
.internal_name = "ap5s",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ap5s/ap5s160.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -931,15 +1050,15 @@ const device_t ap5s_device = {
int
machine_at_ap5s_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -1038,12 +1157,13 @@ machine_at_zeoswildcat_init(const machine_t *model)
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_IDE, 1, 2, 0, 0); /* Onboard device */
pci_register_slot(0x0E, PCI_CARD_SCSI, 1, 0, 0, 0); /* Onboard device */
pci_register_slot(0x0F, PCI_CARD_NETWORK, 1, 0, 0, 0); /* Onboard device */
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); /* Slot 03 */
pci_register_slot(0x12, PCI_CARD_NORMAL, 4, 2, 3, 1); /* Slot 04 */
pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); /* Slot 05 */
pci_register_slot(0x0D, PCI_CARD_IDE, 1, 2, 0, 0); /* Onboard device */
pci_register_slot(0x0E, PCI_CARD_SCSI, 1, 0, 0, 0); /* Onboard device */
pci_register_slot(0x0F, PCI_CARD_NETWORK, 1, 0, 0, 0); /* Onboard device */
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); /* Slot 03 */
pci_register_slot(0x12, PCI_CARD_NORMAL, 4, 2, 3, 1); /* Slot 04 */
pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); /* Slot 05 */
/* Per the machine's manual there was an option for AMD SCSI and/or LAN controllers */
device_add(&vl82c59x_wildcat_device);
device_add(&intel_flash_bxt_device);

View File

@@ -61,6 +61,7 @@ machine_at_ap61_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i450kx_device);
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
@@ -94,6 +95,7 @@ machine_at_p6rp4_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i450kx_device);
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
@@ -108,20 +110,35 @@ machine_at_p6rp4_init(const machine_t *model)
static const device_config_t ficpo6000_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "405F05C",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.bios = {
{ .name = "PhoenixBIOS 4.05 - Revision 405F03C (CD-ROM Boot support)", .internal_name = "405F03C", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/ficpo6000/405F03C.ROM", "" } },
{ .name = "PhoenixBIOS 4.05 - Revision 405F05C (No CD-ROM Boot support)", .internal_name = "405F05C", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/ficpo6000/405F05C.ROM", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "PhoenixBIOS 4.05 - Revision 405F03C (CD-ROM Boot support)",
.internal_name = "405F03C",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ficpo6000/405F03C.ROM", "" }
},
{
.name = "PhoenixBIOS 4.05 - Revision 405F05C (No CD-ROM Boot support)",
.internal_name = "405F05C",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ficpo6000/405F05C.ROM", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -135,7 +152,7 @@ const device_t ficpo6000_device = {
.init = NULL,
.close = NULL,
.reset = NULL,
.available = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = ficpo6000_config
@@ -144,15 +161,15 @@ const device_t ficpo6000_device = {
int
machine_at_ficpo6000_init(const machine_t *model)
{
int ret = 0;
const char* fn;
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
@@ -167,6 +184,7 @@ machine_at_ficpo6000_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);
pci_register_slot(0x0c, PCI_CARD_IDE, 0, 0, 0, 0);
device_add(&i450kx_device);
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
@@ -189,7 +207,7 @@ machine_at_acerv60n_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model,2 );
machine_at_common_init_ex(model, 2);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -199,6 +217,7 @@ machine_at_acerv60n_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x12, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL));
@@ -244,6 +263,7 @@ machine_at_8600ttc_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);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -273,6 +293,7 @@ machine_at_686nx_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);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -306,6 +327,7 @@ machine_at_ap440fx_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 2, 1, 4);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(&pc87307_device, (void *) (PCX730X_AMI | PCX7307_PC87307));
@@ -323,28 +345,50 @@ machine_at_ap440fx_init(const machine_t *model)
static const device_config_t vs440fx_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "vs440fx",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Intel AMIBIOS - Revision 1.00.06.CS1J (Dell Dimension XPS Pro___n)", .internal_name = "dellvenus", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "roms/machines/vs440fx/1006CS1J.BIO", "roms/machines/vs440fx/1006CS1J.BI1",
"roms/machines/vs440fx/1006CS1J.BI2", "roms/machines/vs440fx/1006CS1J.BI3",
"roms/machines/vs440fx/1006CS1J.RCV", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.11.CS1T (Gateway 2000)", .internal_name = "gw2kvenus", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "roms/machines/vs440fx/1011CS1T.BIO", "roms/machines/vs440fx/1011CS1T.BI1",
"roms/machines/vs440fx/1011CS1T.BI2", "roms/machines/vs440fx/1011CS1T.BI3",
"roms/machines/vs440fx/1011CS1T.RCV", "" } },
{ .name = "Intel AMIBIOS - Revision 1.00.18.CS1", .internal_name = "vs440fx", .bios_type = BIOS_NORMAL,
.files_no = 5, .local = 0, .size = 262144, .files = { "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", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Intel AMIBIOS - Revision 1.00.06.CS1J (Dell Dimension XPS Pro___n)",
.internal_name = "dellvenus",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "roms/machines/vs440fx/1006CS1J.BIO", "roms/machines/vs440fx/1006CS1J.BI1",
"roms/machines/vs440fx/1006CS1J.BI2", "roms/machines/vs440fx/1006CS1J.BI3",
"roms/machines/vs440fx/1006CS1J.RCV", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.11.CS1T (Gateway 2000)",
.internal_name = "gw2kvenus",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "roms/machines/vs440fx/1011CS1T.BIO", "roms/machines/vs440fx/1011CS1T.BI1",
"roms/machines/vs440fx/1011CS1T.BI2", "roms/machines/vs440fx/1011CS1T.BI3",
"roms/machines/vs440fx/1011CS1T.RCV", "" }
},
{
.name = "Intel AMIBIOS - Revision 1.00.18.CS1",
.internal_name = "vs440fx",
.bios_type = BIOS_NORMAL,
.files_no = 5,
.local = 0,
.size = 262144,
.files = { "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", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -367,15 +411,15 @@ const device_t vs440fx_device = {
int
machine_at_vs440fx_init(const machine_t *model)
{
int ret = 0;
const char* fn[5];
int ret = 0;
const char *fn[5];
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
for (int i = 0; i < 5; i++)
for (uint8_t i = 0; i < 5; i++)
fn[i] = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), i);
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 128);
device_context_restore();
@@ -389,6 +433,7 @@ machine_at_vs440fx_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(&pc87307_device, (void *) (PCX730X_AMI | PCX7307_PC87307));
@@ -421,6 +466,7 @@ machine_at_lgibmx61_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -450,6 +496,7 @@ machine_at_m6mi_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX5 | FDC37C93X_NORMAL));
@@ -478,6 +525,7 @@ machine_at_mb600n_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);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);

View File

@@ -53,18 +53,19 @@ machine_at_p5a_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 1, 2, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
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(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
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(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(&sst_flash_39sf020_device);
@@ -88,15 +89,16 @@ machine_at_m579_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 1, 2, 3, 4);
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x10, PCI_CARD_NORMAL, 3, 4, 1, 2);
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(&sst_flash_29ee010_device);
@@ -119,16 +121,17 @@ machine_at_gwlucas_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0E, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_SOUND, 1, 2, 3, 4); // ES1373
pci_register_slot(0x14, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0F, PCI_CARD_SOUND, 1, 2, 3, 4); // ES1373
pci_register_slot(0x14, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&ali1541_device);
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_39sf020_device);
@@ -156,15 +159,16 @@ machine_at_5aa_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 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, 1, 2);
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, 1, 2);
device_add(&ali1541_device);
device_add(&ali1543c_device); /* +0 */
device_add(&sst_flash_29ee010_device);
@@ -187,17 +191,18 @@ machine_at_5ax_init(const machine_t *model)
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(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 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, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, 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, 1, 2);
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(&sst_flash_29ee010_device);
@@ -392,6 +397,7 @@ machine_at_5sg100_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5591_1997_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
device_add(&sst_flash_29ee010_device);

View File

@@ -92,8 +92,8 @@ sysstat_out(UNUSED(uint16_t port), uint8_t val, void *priv)
static uint8_t
sysstat_in(UNUSED(uint16_t port), void *priv)
{
const cga_t *cga = priv;
uint8_t ret = 0x0a; /* No idea what these bits are */
const cga_t *cga = priv;
uint8_t ret = 0x0a; /* No idea what these bits are */
/* External CRT. We don't emulate the LCD/CRT switching, let's just
* frivolously use this bit to indicate we're using the LCD if the

View File

@@ -675,23 +675,24 @@ europc_close(UNUSED(void *priv))
}
static const device_config_t europc_config[] = {
// clang-format off
// clang-format off
{
.name = "js9",
.description = "JS9 Jumper (JIM)",
.type = CONFIG_HEX16,
.default_string = "",
.default_int = 0x0250,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "js9",
.description = "JS9 Jumper (JIM)",
.type = CONFIG_HEX16,
.default_string = NULL,
.default_int = 0x0250,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "Disabled (250h)", .value = 0x0250 },
{ .description = "Enabled (350h)", .value = 0x0350 },
{ .description = "" }
{ .description = "" }
},
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t europc_device = {

View File

@@ -50,16 +50,14 @@
#include <86box/machine.h>
#include <86box/plat_unused.h>
#define STAT_PARITY 0x80
#define STAT_RTIMEOUT 0x40
#define STAT_TTIMEOUT 0x20
#define STAT_LOCK 0x10
#define STAT_CD 0x08
#define STAT_SYSFLAG 0x04
#define STAT_IFULL 0x02
#define STAT_OFULL 0x01
#define STAT_PARITY 0x80
#define STAT_RTIMEOUT 0x40
#define STAT_TTIMEOUT 0x20
#define STAT_LOCK 0x10
#define STAT_CD 0x08
#define STAT_SYSFLAG 0x04
#define STAT_IFULL 0x02
#define STAT_OFULL 0x01
static uint8_t key_queue[16];
static int key_queue_start = 0;
@@ -68,7 +66,7 @@ static int key_queue_end = 0;
/*PCjr keyboard has no escape scancodes, and no scancodes beyond 54
Map right alt to 54h (FN) */
const scancode scancode_pcjr[512] = {
// clang-format off
// clang-format off
{ .mk = { 0 }, .brk = { 0 } }, /* 000 */
{ .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
{ .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
@@ -581,10 +579,9 @@ const scancode scancode_pcjr[512] = {
{ .mk = { 0 }, .brk = { 0 } }, /* 1fd */
{ .mk = { 0 }, .brk = { 0 } }, /* 1fe */
{ .mk = { 0 }, .brk = { 0 } } /* 1ff */
// clang-format on
// clang-format on
};
static void
kbd_write(uint16_t port, uint8_t val, void *priv)
{
@@ -770,7 +767,7 @@ pit_irq0_timer_pcjr(int new_out, int old_out, UNUSED(void *priv))
}
static const device_config_t pcjr_config[] = {
// clang-format off
// clang-format off
{
.name = "display_type",
.description = "Display type",
@@ -785,7 +782,8 @@ static const device_config_t pcjr_config[] = {
{ .description = "RGB (no brown)", .value = PCJR_RGB_NO_BROWN },
{ .description = "RGB (IBM 5153)", .value = PCJR_RGB_IBM_5153 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "double_type",
@@ -809,10 +807,14 @@ static const device_config_t pcjr_config[] = {
.description = "Apply overscan deltas",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t pcjr_device = {

View File

@@ -245,34 +245,98 @@ ps1_read(uint16_t port, void *priv)
static const device_config_t ps1_2011_config[] = {
// clang-format off
{
.name = "bios_language",
.description = "BIOS Language",
.type = CONFIG_BIOS,
.name = "bios_language",
.description = "BIOS Language",
.type = CONFIG_BIOS,
.default_string = "english_us",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{ .name = "English (US)", .internal_name = "english_us", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/FC0000_US.BIN", "" } },
{ .name = "English (UK)", .internal_name = "english_uk", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/F80000_UK.BIN", "roms/machines/ibmps1es/FC0000_UK.BIN", "" } },
{ .name = "English (Canada)", .internal_name = "english_ca", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/F80000_CA.BIN", "roms/machines/ibmps1es/FC0000_CA.BIN", "" } },
{ .name = "Portuguese", .internal_name = "portuguese", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/F80000_PT.BIN", "roms/machines/ibmps1es/FC0000_PT.BIN", "" } },
{ .name = "German", .internal_name = "german", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/F80000_DE.BIN", "roms/machines/ibmps1es/FC0000_DE.BIN", "" } },
{ .name = "Swedish", .internal_name = "swedish", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/F80000_SE.BIN", "roms/machines/ibmps1es/FC0000_SE.BIN", "" } },
{ .name = "French", .internal_name = "french", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/F80000_FR.BIN", "roms/machines/ibmps1es/FC0000_FR.BIN", "" } },
{ .name = "Italian", .internal_name = "italian", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 524288, .files = { "roms/machines/ibmps1es/f80000.bin", "" } },
{ .name = "Spanish", .internal_name = "spanish", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 524288, .files = { "roms/machines/ibmps1es/F80000_ES.bin", "" } },
{
.name = "English (US)",
.internal_name = "english_us",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/FC0000_US.BIN", "" }
},
{
.name = "English (UK)",
.internal_name = "english_uk",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/F80000_UK.BIN", "roms/machines/ibmps1es/FC0000_UK.BIN", "" }
},
{
.name = "English (Canada)",
.internal_name = "english_ca",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/F80000_CA.BIN", "roms/machines/ibmps1es/FC0000_CA.BIN", "" }
},
{
.name = "Portuguese",
.internal_name = "portuguese",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/F80000_PT.BIN", "roms/machines/ibmps1es/FC0000_PT.BIN", "" }
},
{
.name = "German",
.internal_name = "german",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/F80000_DE.BIN", "roms/machines/ibmps1es/FC0000_DE.BIN", "" }
},
{
.name = "Swedish",
.internal_name = "swedish",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/F80000_SE.BIN", "roms/machines/ibmps1es/FC0000_SE.BIN", "" }
},
{
.name = "French",
.internal_name = "french",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 262144,
.files = { "roms/machines/ibmps1es/F80000_FR.BIN", "roms/machines/ibmps1es/FC0000_FR.BIN", "" }
},
{
.name = "Italian",
.internal_name = "italian",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 524288,
.files = { "roms/machines/ibmps1es/f80000.bin", "" }
},
{
.name = "Spanish",
.internal_name = "spanish",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 524288,
.files = { "roms/machines/ibmps1es/F80000_ES.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -298,7 +362,7 @@ ps1_setup(int model)
ps1_t *ps;
void *priv;
ps = (ps1_t *) calloc(1, sizeof(ps1_t));
ps = (ps1_t *) calloc(1, sizeof(ps1_t));
ps->model = model;
io_sethandler(0x0091, 1,
@@ -323,25 +387,25 @@ ps1_setup(int model)
if (model == 2011) {
const device_t *d = device_context_get_device();
const char * bios = device_get_config_bios("bios_language");
const char * first = device_get_bios_file(d, bios, 0);
const char * second = device_get_bios_file(d, bios, 1);
const char *bios = device_get_config_bios("bios_language");
const char *first = device_get_bios_file(d, bios, 0);
const char *second = device_get_bios_file(d, bios, 1);
if (!strcmp(bios, "english_us")) {
/* US English */
rom_init(&ps->high_rom, first,
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
} else if (second == NULL) {
/* Combined ROM. */
rom_init(&ps->high_rom, first,
0xf80000, 0x80000, 0x7ffff, 0, MEM_MAPPING_EXTERNAL);
0xf80000, 0x80000, 0x7ffff, 0, MEM_MAPPING_EXTERNAL);
} else {
/* Split ROM. */
rom_init(&ps->mid_rom, first,
0xf80000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
0xf80000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
rom_init(&ps->high_rom, second,
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
}
lpt_set_next_inst(255);
@@ -359,7 +423,9 @@ ps1_setup(int model)
device_add(&ps1vga_device);
} else if (model == 2121) {
io_sethandler(0x00e0, 2,
ps1_read, NULL, NULL, ps1_write, NULL, NULL, ps);
ps1_read, NULL, NULL,
ps1_write, NULL, NULL,
ps);
if (rom_present("roms/machines/ibmps1_2121/F80000.BIN")) {
rom_init(&ps->mid_rom,
@@ -412,9 +478,9 @@ machine_ps1_p1_handler(void)
int
machine_ps1_m2011_init(const machine_t *model)
{
int ret;
const char* fn;
uint32_t offset;
int ret;
const char *fn;
uint32_t offset;
if (!device_available(model->device)) {
/* No ROMs available. */
@@ -424,7 +490,7 @@ machine_ps1_m2011_init(const machine_t *model)
device_context(model->device);
if ((fn = device_get_bios_file(model->device, device_get_config_bios("bios_language"), 1)) == NULL) {
/* Combined ROM or US English. */
fn = device_get_bios_file(model->device, device_get_config_bios("bios_language"), 0);
fn = device_get_bios_file(model->device, device_get_config_bios("bios_language"), 0);
offset = (!strcmp("english_us", device_get_config_bios("bios_language"))) ? 0x20000 : 0x60000;
} else {
/* Separated ROM. */
@@ -432,7 +498,7 @@ machine_ps1_m2011_init(const machine_t *model)
}
if (!fn) {
fn = device_get_bios_file(model->device, "us_english", 0);
fn = device_get_bios_file(model->device, "us_english", 0);
offset = 0x20000;
}
@@ -447,7 +513,7 @@ machine_ps1_m2011_init(const machine_t *model)
device_context(model->device);
ps1_setup(2011);
ps1_setup(2011);
device_context_restore();

View File

@@ -152,7 +152,7 @@ ps2_isa_setup(int model, int cpu_type)
ps2_isa_t *ps2;
void *priv;
ps2 = (ps2_isa_t *) calloc(1, sizeof(ps2_isa_t));
ps2 = (ps2_isa_t *) calloc(1, sizeof(ps2_isa_t));
ps2->model = model;
ps2->cpu_type = cpu_type;
@@ -167,7 +167,7 @@ ps2_isa_setup(int model, int cpu_type)
ps2->uart = device_add_inst(&ns16450_device, 1);
ps2->lpt = device_add_inst(&lpt_port_device, 1);
ps2->lpt = device_add_inst(&lpt_port_device, 1);
lpt_set_ext(ps2->lpt, 1);
lpt_port_remove(ps2->lpt);

View File

@@ -105,8 +105,8 @@ static struct ps2_t {
serial_t *uart;
lpt_t *lpt;
vga_t* mb_vga;
int has_e0000_hole;
vga_t *mb_vga;
int has_e0000_hole;
} ps2;
/*The model 70 type 3/4 BIOS performs cache testing. Since 86Box doesn't have any
@@ -144,7 +144,7 @@ static struct ps2_t {
static uint8_t ps2_cache[65536];
static int ps2_cache_valid[65536 / 8];
static void mem_encoding_update(void);
static void mem_encoding_update(void);
// #define ENABLE_PS2_MCA_LOG 1
#ifdef ENABLE_PS2_MCA_LOG
int ps2_mca_do_log = ENABLE_PS2_MCA_LOG;
@@ -374,45 +374,47 @@ ps55_model_50t_read(uint16_t port)
return ps2.planar_id >> 8;
case 0x102:
return ps2.option[0];
case 0x103: {
uint8_t val = 0xff;
/*
I/O 103h - Bit 7-4: Memory Card ID (Connector 1 or 3)
Bit 3-0: Memory Card ID (Connector 2)
case 0x103:
{
uint8_t val = 0xff;
/*
I/O 103h - Bit 7-4: Memory Card ID (Connector 1 or 3)
Bit 3-0: Memory Card ID (Connector 2)
Memory Card ID: 7h = 2 MB Memory Card 2 or 3 Installed
5h = 4 MB Memory Card 2 Installed
*/
switch (mem_size / 1024) {
case 2:
if (ps2.option[1] & 0x04)
val = 0xff;
else
val = 0x7f;
break;
case 4:
if (ps2.option[1] & 0x04)
val = 0xff;
else
val = 0x77;
break;
case 6:
if (ps2.option[1] & 0x04)
val = 0x7f;
else
val = 0x77;
break;
case 8:
default:
if (ps2.option[1] & 0x04)
val = 0x5f;
else
val = 0x77;
break;
Memory Card ID: 7h = 2 MB Memory Card 2 or 3 Installed
5h = 4 MB Memory Card 2 Installed
*/
switch (mem_size / 1024) {
case 2:
if (ps2.option[1] & 0x04)
val = 0xff;
else
val = 0x7f;
break;
case 4:
if (ps2.option[1] & 0x04)
val = 0xff;
else
val = 0x77;
break;
case 6:
if (ps2.option[1] & 0x04)
val = 0x7f;
else
val = 0x77;
break;
case 8:
default:
if (ps2.option[1] & 0x04)
val = 0x5f;
else
val = 0x77;
break;
}
ps2_mca_log(" Read MCA %04X %02X %04X:%04X mem_size = %d, ps2option1 = %2X\n", port, val, cs >> 4, cpu_state.pc, mem_size, ps2.option[1]);
return val;
}
ps2_mca_log(" Read MCA %04X %02X %04X:%04X mem_size = %d, ps2option1 = %2X\n", port, val, cs >> 4, cpu_state.pc, mem_size, ps2.option[1]);
return val;
} case 0x104:
case 0x104:
return ps2.option[2];
case 0x105:
return ps2.option[3];
@@ -434,32 +436,34 @@ ps55_model_50v_read(uint16_t port)
return ps2.planar_id >> 8;
case 0x102:
return ps2.option[0];
case 0x103: {
uint8_t val = 0xff;
/*
I/O 103h - Bit 7-4: Reserved
Bit 3-0: Memory Card ID (Connector 3 or 1)
case 0x103:
{
uint8_t val = 0xff;
/*
I/O 103h - Bit 7-4: Reserved
Bit 3-0: Memory Card ID (Connector 3 or 1)
Memory Card ID: 8h = 4 MB Memory Card IV Installed
Fh = No Card Installed
*/
switch (mem_size / 1024) {
case 4:
if (ps2.option[1] & 0x04)
val = 0xff;
else
val = 0xf8;
break;
case 8:
default:
if (ps2.option[1] & 0x04)
val = 0xf8;
else
val = 0xf8;
break;
Memory Card ID: 8h = 4 MB Memory Card IV Installed
Fh = No Card Installed
*/
switch (mem_size / 1024) {
case 4:
if (ps2.option[1] & 0x04)
val = 0xff;
else
val = 0xf8;
break;
case 8:
default:
if (ps2.option[1] & 0x04)
val = 0xf8;
else
val = 0xf8;
break;
}
return val;
}
return val;
} case 0x104:
case 0x104:
/* Reading cache ID (bit 3-2) always returns zero */
return ps2.option[2] & 0xf3;
case 0x105:
@@ -530,10 +534,10 @@ model_55sx_mem_recalc(void)
#ifdef ENABLE_PS2_MCA_LOG
int enabled_mem = 0;
#endif
int base = 0;
int remap_size = (ps2.option[3] & 0x10) ? 384 : 256;
int bit_mask = 0x00;
int max_rows = 4;
int base = 0;
int remap_size = (ps2.option[3] & 0x10) ? 384 : 256;
int bit_mask = 0x00;
int max_rows = 4;
int bank_to_rows[16] = { 4, 2, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0 };
ps2_mca_log("%02X %02X\n", ps2.option[1], ps2.option[3]);
@@ -968,18 +972,15 @@ ps2_mca_write(uint16_t port, uint8_t val, UNUSED(void *priv))
case 0x102:
if (!(ps2.setup & PS2_SETUP_IO))
ps2.planar_write(port, val);
else if (!(ps2.setup & PS2_SETUP_VGA))
{
if (ps2.mb_vga)
{
else if (!(ps2.setup & PS2_SETUP_VGA)) {
if (ps2.mb_vga) {
if (vga_isenabled(ps2.mb_vga))
vga_disable(ps2.mb_vga);
if (val & 1)
vga_enable(ps2.mb_vga);
}
ps2.pos_vga = val;
}
else if (ps2.adapter_setup & PS2_ADAPTER_SETUP)
} else if (ps2.adapter_setup & PS2_ADAPTER_SETUP)
mca_write(port, val);
break;
case 0x103:
@@ -1595,7 +1596,7 @@ machine_ps2_common_init(const machine_t *model)
ps2.uart = device_add_inst(&ns16550_device, 1);
ps2.lpt = device_add_inst(&lpt_port_device, 1);
ps2.lpt = device_add_inst(&lpt_port_device, 1);
lpt_set_ext(ps2.lpt, 1);
ps2.has_e0000_hole = 0;
@@ -1604,24 +1605,36 @@ machine_ps2_common_init(const machine_t *model)
static const device_config_t ps2_model_50_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "ibmps2_m50",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "IBM PS/2 model 50", .internal_name = "ibmps2_m50", .bios_type = BIOS_NORMAL,
.files_no = 4, .local = 0, .size = 131072, .files = { "roms/machines/ibmps2_m50/90x7420.zm13",
"roms/machines/ibmps2_m50/90x7429.zm18",
"roms/machines/ibmps2_m50/90x7423.zm14",
"roms/machines/ibmps2_m50/90x7426.zm16", "" } },
{ .name = "IBM PS/2 model 50Z", .internal_name = "ibmps2_m50z", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 131072, .files = { "roms/machines/ibmps2_m50/15F8366.BIN",
"roms/machines/ibmps2_m50/15F8365.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "IBM PS/2 model 50",
.internal_name = "ibmps2_m50",
.bios_type = BIOS_NORMAL,
.files_no = 4,
.local = 0,
.size = 131072,
.files = { "roms/machines/ibmps2_m50/90x7420.zm13", "roms/machines/ibmps2_m50/90x7429.zm18",
"roms/machines/ibmps2_m50/90x7423.zm14", "roms/machines/ibmps2_m50/90x7426.zm16", "" }
},
{
.name = "IBM PS/2 model 50Z",
.internal_name = "ibmps2_m50z",
.bios_type = BIOS_NORMAL,
.files_no = 2,
.local = 0,
.size = 131072,
.files = { "roms/machines/ibmps2_m50/15F8366.BIN", "roms/machines/ibmps2_m50/15F8365.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -1644,8 +1657,8 @@ const device_t ps2_model_50_device = {
int
machine_ps2_model_50_init(const machine_t *model)
{
int ret = 0;
const char* fn[4];
int ret = 0;
const char *fn[4];
/* No ROMs available */
if (!device_available(model->device))
@@ -1654,11 +1667,11 @@ machine_ps2_model_50_init(const machine_t *model)
device_context(model->device);
int is_50z = !strcmp(device_get_config_bios("bios"), "ibmps2_m50z");
if (is_50z) {
for (int i = 0; i < 2; i++)
for (uint8_t i = 0; i < 2; i++)
fn[i] = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), i);
ret = bios_load_interleaved(fn[0], fn[1], 0x000e0000, 131072, 0);
} else {
for (int i = 0; i < 4; i++)
for (uint8_t i = 0; i < 4; i++)
fn[i] = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), i);
ret = bios_load_interleaved(fn[0], fn[1], 0x000f0000, 131072, 0);
ret &= bios_load_aux_interleaved(fn[2], fn[3], 0x000e0000, 65536, 0);
@@ -1841,7 +1854,7 @@ ps55_mca_board_model_50t_init(void)
/* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */
mca_init(5);
ps2.planar_read = ps55_model_50t_read;
ps2.planar_read = ps55_model_50t_read;
ps2.planar_write = ps55_model_50tv_write;
device_add(&ps2_nvr_device);
@@ -1853,26 +1866,26 @@ ps55_mca_board_model_50t_init(void)
ps2.has_e0000_hole = 1;
mem_mapping_add(&ps2.split_mapping,
(mem_size + 256) * 1024,
256 * 1024,
ps2_read_split_ram,
ps2_read_split_ramw,
ps2_read_split_raml,
ps2_write_split_ram,
ps2_write_split_ramw,
ps2_write_split_raml,
&ram[0xa0000],
MEM_MAPPING_INTERNAL,
NULL);
(mem_size + 256) * 1024,
256 * 1024,
ps2_read_split_ram,
ps2_read_split_ramw,
ps2_read_split_raml,
ps2_write_split_ram,
ps2_write_split_ramw,
ps2_write_split_raml,
&ram[0xa0000],
MEM_MAPPING_INTERNAL,
NULL);
mem_mapping_disable(&ps2.split_mapping);
if (mem_size > 8192) {
/* Only 8 MB supported on planar, create a memory expansion card for the rest */
ps2_mca_mem_fffc_init(8);
ps2_mca_mem_fffc_init(8);
}
if (gfxcard[0] == VID_INTERNAL)
ps2.mb_vga = (vga_t *)device_add(&ps1vga_mca_device);
ps2.mb_vga = (vga_t *) device_add(&ps1vga_mca_device);
}
static void
@@ -1884,7 +1897,7 @@ ps55_mca_board_model_50v_init(void)
/* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */
mca_init(5);
ps2.planar_read = ps55_model_50v_read;
ps2.planar_read = ps55_model_50v_read;
ps2.planar_write = ps55_model_50tv_write;
device_add(&ps2_nvr_device);
@@ -1897,17 +1910,17 @@ ps55_mca_board_model_50v_init(void)
ps2.has_e0000_hole = 1;
mem_mapping_add(&ps2.split_mapping,
(mem_size + 256) * 1024,
256 * 1024,
ps2_read_split_ram,
ps2_read_split_ramw,
ps2_read_split_raml,
ps2_write_split_ram,
ps2_write_split_ramw,
ps2_write_split_raml,
&ram[0xa0000],
MEM_MAPPING_INTERNAL,
NULL);
(mem_size + 256) * 1024,
256 * 1024,
ps2_read_split_ram,
ps2_read_split_ramw,
ps2_read_split_raml,
ps2_write_split_ram,
ps2_write_split_ramw,
ps2_write_split_raml,
&ram[0xa0000],
MEM_MAPPING_INTERNAL,
NULL);
mem_mapping_disable(&ps2.split_mapping);
mem_mapping_add(&ps2.cache_mapping,
@@ -1924,13 +1937,12 @@ ps55_mca_board_model_50v_init(void)
NULL);
mem_mapping_disable(&ps2.cache_mapping);
if (mem_size > 8192) {
/* Only 8 MB supported on planar, create a memory expansion card for the rest */
ps2_mca_mem_fffc_init(8);
}
/* Only 8 MB supported on planar, create a memory expansion card for the rest */
if (mem_size > 8192)
ps2_mca_mem_fffc_init(8);
if (gfxcard[0] == VID_INTERNAL)
ps2.mb_vga = (vga_t *)device_add(&ps1vga_mca_device);
ps2.mb_vga = (vga_t *) device_add(&ps1vga_mca_device);
}
int
@@ -1939,7 +1951,7 @@ machine_ps55_model_50t_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/ibmps55_m50t/38F6933.BIN",
0x000e0000, 131072, 0);
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
@@ -1947,15 +1959,15 @@ machine_ps55_model_50t_init(const machine_t *model)
machine_ps2_common_init(model);
/*
* Planar ID
* FFFAh - PS/55 model 5551-S0x, T0x (stage 1?)
* FFEEh - PS/55 model 5551-S1x, T1x (stage 2?)
* Verification in BIOS P/N 38F6933: FBxx -> 4 slots (error), xxEE -> 5 slots (ok), others -> 8 (error)
*
* The only difference between S and T models is the CPU speed (16 MHz vs 20 MHz).
* The POST measures the speed, and sets a flag in the BIOS Data Area to indicate the sub model.
* The VM in 86Box runs faster than the real, so the POST always determines it as the T model.
*/
* Planar ID
* FFFAh - PS/55 model 5551-S0x, T0x (stage 1?)
* FFEEh - PS/55 model 5551-S1x, T1x (stage 2?)
* Verification in BIOS P/N 38F6933: FBxx -> 4 slots (error), xxEE -> 5 slots (ok), others -> 8 (error)
*
* The only difference between S and T models is the CPU speed (16 MHz vs 20 MHz).
* The POST measures the speed, and sets a flag in the BIOS Data Area to indicate the sub model.
* The VM in 86Box runs faster than the real, so the POST always determines it as the T model.
*/
ps2.planar_id = 0xffee;
ps55_mca_board_model_50t_init();
@@ -1979,10 +1991,10 @@ machine_ps55_model_50v_init(const machine_t *model)
machine_ps2_common_init(model);
/*
* Planar ID
* F1FFh - PS/55 model 5551-V0x, V1x
* Verification in BIOS P/N 56F7416,56F7417: FBxx -> 5 slots (ok), F1xx -> 5 slots (ok), others -> 8 (error)
*/
* Planar ID
* F1FFh - PS/55 model 5551-V0x, V1x
* Verification in BIOS P/N 56F7416,56F7417: FBxx -> 5 slots (ok), F1xx -> 5 slots (ok), others -> 8 (error)
*/
ps2.planar_id = 0xf1ff;
ps55_mca_board_model_50v_init();

View File

@@ -45,7 +45,6 @@
#include <86box/m_tandy.h>
#include <86box/plat_unused.h>
enum {
TYPE_TANDY = 0,
TYPE_TANDY1000SX,
@@ -60,9 +59,8 @@ enum {
EEPROM_WRITE
};
static const scancode scancode_tandy[512] = {
// clang-format off
// clang-format off
{ .mk = { 0 }, .brk = { 0 } }, /* 000 */
{ .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
{ .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
@@ -575,7 +573,7 @@ static const scancode scancode_tandy[512] = {
{ .mk = { 0 }, .brk = { 0 } }, /* 1fd */
{ .mk = { 0 }, .brk = { 0 } }, /* 1fe */
{ .mk = { 0 }, .brk = { 0 } } /* 1ff */
// clang-format on
// clang-format on
};
static int eep_data_out;
@@ -598,8 +596,6 @@ tandy_log(const char *fmt, ...)
# define tandy_log(fmt, ...)
#endif
static void
eep_write(UNUSED(uint16_t addr), uint8_t val, void *priv)
{

View File

@@ -61,16 +61,16 @@ machine_v86p_init(const machine_t *model)
if (!ret) {
/* Try an older version of the BIOS. */
rom_id = 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);
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_id = 2;
ret = bios_load_linear("roms/machines/v86p/V86P.ROM",
0x000f0000, 65536, 0);
ret = bios_load_linear("roms/machines/v86p/V86P.ROM",
0x000f0000, 65536, 0);
}
if (bios_only || !ret)

View File

@@ -65,46 +65,106 @@ machine_xt_common_init(const machine_t *model, int fixed_floppy)
static const device_config_t ibmpc_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "ibm5150_5700671",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "5700671 (10/19/81)", .internal_name = "ibm5150_5700671", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/ibmpc/BIOS_IBM5150_19OCT81_5700671_U33.BIN", "" } },
{ .name = "5700051 (04/24/81)", .internal_name = "ibm5150_5700051", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/ibmpc/BIOS_IBM5150_24APR81_5700051_U33.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "5700671 (10/19/81)",
.internal_name = "ibm5150_5700671",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/ibmpc/BIOS_IBM5150_19OCT81_5700671_U33.BIN", "" }
},
{
.name = "5700051 (04/24/81)",
.internal_name = "ibm5150_5700051",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/ibmpc/BIOS_IBM5150_24APR81_5700051_U33.BIN", "" }
},
// GLaBIOS for IBM PC
{ .name = "GLaBIOS 0.4.0 (8088)", .internal_name = "glabios_040_8088", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/glabios/GLABIOS_0.4.0_8P.ROM", "" } },
{ .name = "GLaBIOS 0.4.0 (V20)", .internal_name = "glabios_040_v20", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/glabios/GLABIOS_0.4.0_VP.ROM", "" } },
{
.name = "GLaBIOS 0.4.0 (8088)",
.internal_name = "glabios_040_8088",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8P.ROM", "" }
},
{
.name = "GLaBIOS 0.4.0 (V20)",
.internal_name = "glabios_040_v20",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VP.ROM", "" }
},
// The following are Diagnostic ROMs.
{ .name = "Supersoft Diagnostics", .internal_name = "diag_supersoft", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/diagnostic/Supersoft_PCXT_8KB.bin", "" } },
{ .name = "Ruud's Diagnostic Rom", .internal_name = "diag_ruuds", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/diagnostic/ruuds_diagnostic_rom_v5.4_8kb.bin", "" } },
{ .name = "XT RAM Test", .internal_name = "diag_xtramtest", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/diagnostic/xtramtest_8k.bin", "" } },
{
.name = "Supersoft Diagnostics",
.internal_name = "diag_supersoft",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/diagnostic/Supersoft_PCXT_8KB.bin", "" }
},
{
.name = "Ruud's Diagnostic Rom",
.internal_name = "diag_ruuds",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/diagnostic/ruuds_diagnostic_rom_v5.4_8kb.bin", "" }
},
{
.name = "XT RAM Test",
.internal_name = "diag_xtramtest",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/diagnostic/xtramtest_8k.bin", "" }
},
{ .files_no = 0 }
},
}
},
{
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_int = 0
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{
.name = "enable_basic",
.description = "IBM Cassette Basic",
.type = CONFIG_BINARY,
.default_int = 1
.name = "enable_basic",
.description = "IBM Cassette Basic",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -175,46 +235,106 @@ machine_ibmpc_init(const machine_t *model)
static const device_config_t ibmpc82_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "ibm5150_1501476",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "1501476 (10/27/82)", .internal_name = "ibm5150_1501476", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/ibmpc82/BIOS_5150_27OCT82_1501476_U33.BIN", "" } },
{ .name = "5000024 (08/16/82)", .internal_name = "ibm5150_5000024", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/ibmpc82/BIOS_5150_16AUG82_5000024_U33.BIN", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "1501476 (10/27/82)",
.internal_name = "ibm5150_1501476",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/ibmpc82/BIOS_5150_27OCT82_1501476_U33.BIN", "" }
},
{
.name = "5000024 (08/16/82)",
.internal_name = "ibm5150_5000024",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/ibmpc82/BIOS_5150_16AUG82_5000024_U33.BIN", "" }
},
// GLaBIOS for IBM PC
{ .name = "GLaBIOS 0.4.0 (8088)", .internal_name = "glabios_040_8088", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/glabios/GLABIOS_0.4.0_8P.ROM", "" } },
{ .name = "GLaBIOS 0.4.0 (V20)", .internal_name = "glabios_040_v20", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/glabios/GLABIOS_0.4.0_VP.ROM", "" } },
{
.name = "GLaBIOS 0.4.0 (8088)",
.internal_name = "glabios_040_8088",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8P.ROM", "" }
},
{
.name = "GLaBIOS 0.4.0 (V20)",
.internal_name = "glabios_040_v20",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VP.ROM", "" }
},
// The following are Diagnostic ROMs.
{ .name = "Supersoft Diagnostics", .internal_name = "diag_supersoft", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/diagnostic/Supersoft_PCXT_8KB.bin", "" } },
{ .name = "Ruud's Diagnostic Rom", .internal_name = "diag_ruuds", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/diagnostic/ruuds_diagnostic_rom_v5.4_8kb.bin", "" } },
{ .name = "XT RAM Test", .internal_name = "diag_xtramtest", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 40960, .files = { "roms/machines/diagnostic/xtramtest_8k.bin", "" } },
{
.name = "Supersoft Diagnostics",
.internal_name = "diag_supersoft",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/diagnostic/Supersoft_PCXT_8KB.bin", "" }
},
{
.name = "Ruud's Diagnostic Rom",
.internal_name = "diag_ruuds",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/diagnostic/ruuds_diagnostic_rom_v5.4_8kb.bin", "" }
},
{
.name = "XT RAM Test",
.internal_name = "diag_xtramtest",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 40960,
.files = { "roms/machines/diagnostic/xtramtest_8k.bin", "" }
},
{ .files_no = 0 }
},
}
},
{
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_int = 1
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{
.name = "enable_basic",
.description = "IBM Cassette Basic",
.type = CONFIG_BINARY,
.default_int = 1
.name = "enable_basic",
.description = "IBM Cassette Basic",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -292,6 +412,7 @@ static const device_config_t ibmxt_config[] = {
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "1501512 (11/08/82)",
@@ -300,7 +421,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 0,
.size = 65536,
.files = { "roms/machines/ibmxt/BIOS_5160_08NOV82_U18_1501512.BIN", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
.files = { "roms/machines/ibmxt/BIOS_5160_08NOV82_U18_1501512.BIN",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
},
{
.name = "1501512 (11/08/82) (Alt)",
@@ -309,7 +431,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 0,
.size = 65536,
.files = { "roms/machines/ibmxt/BIOS_5160_08NOV82_U18_1501512.BIN", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_6359116.BIN", "" }
.files = { "roms/machines/ibmxt/BIOS_5160_08NOV82_U18_1501512.BIN",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_6359116.BIN", "" }
},
{
.name = "5000026 (08/16/82)",
@@ -318,7 +441,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 0,
.size = 65536,
.files = { "roms/machines/ibmxt/BIOS_5160_16AUG82_U18_5000026.BIN", "roms/machines/ibmxt/BIOS_5160_16AUG82_U19_5000027.BIN", "" }
.files = { "roms/machines/ibmxt/BIOS_5160_16AUG82_U18_5000026.BIN",
"roms/machines/ibmxt/BIOS_5160_16AUG82_U19_5000027.BIN", "" }
},
// GLaBIOS for IBM XT
@@ -329,7 +453,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 1,
.size = 40960,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8X.ROM", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8X.ROM",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
},
{
.name = "GLaBIOS 0.4.0 (V20)",
@@ -338,7 +463,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 1,
.size = 40960,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VX.ROM", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VX.ROM",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
},
// The following are Diagnostic ROMs.
@@ -349,7 +475,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 2,
.size = 65536,
.files = { "roms/machines/diagnostic/Supersoft_PCXT_32KB.bin", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
.files = { "roms/machines/diagnostic/Supersoft_PCXT_32KB.bin",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
},
{
.name = "Ruud's Diagnostic Rom",
@@ -358,7 +485,8 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 2,
.size = 65536,
.files = { "roms/machines/diagnostic/ruuds_diagnostic_rom_v5.4_32kb.bin", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
.files = { "roms/machines/diagnostic/ruuds_diagnostic_rom_v5.4_32kb.bin",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
},
{
.name = "XT RAM Test",
@@ -367,22 +495,33 @@ static const device_config_t ibmxt_config[] = {
.files_no = 2,
.local = 2,
.size = 65536,
.files = { "roms/machines/diagnostic/xtramtest_32k.bin", "roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
.files = { "roms/machines/diagnostic/xtramtest_32k.bin",
"roms/machines/ibmxt/BIOS_5160_08NOV82_U19_5000027.BIN", "" }
},
{ .files_no = 0 }
},
}
},
{
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_int = 1
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{
.name = "enable_basic",
.description = "IBM Cassette Basic",
.type = CONFIG_BINARY,
.default_int = 1
.name = "enable_basic",
.description = "IBM Cassette Basic",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -421,10 +560,10 @@ machine_ibmxt_init(const machine_t *model)
enable_basic = machine_get_config_int("enable_basic");
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
local = device_get_bios_local(model->device, device_get_config_bios("bios"));
if (local == 0) // Offset for stock roms
offset = 0x6000;
ret = bios_load_linear(fn, 0x000fe000, 65536, offset);
offset = 0x6000;
ret = bios_load_linear(fn, 0x000fe000, 65536, offset);
if (enable_basic && ret) {
if (local == 0) { // needed for stock roms
@@ -463,6 +602,7 @@ static const device_config_t ibmxt86_config[] = {
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "1501512 (05/09/86)",
@@ -471,7 +611,8 @@ static const device_config_t ibmxt86_config[] = {
.files_no = 2,
.local = 0,
.size = 65536,
.files = { "roms/machines/ibmxt86/BIOS_5160_09MAY86_U18_59X7268_62X0890_27256_F800.BIN", "roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
.files = { "roms/machines/ibmxt86/BIOS_5160_09MAY86_U18_59X7268_62X0890_27256_F800.BIN",
"roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
},
{
.name = "5000026 (01/10/86)",
@@ -480,7 +621,8 @@ static const device_config_t ibmxt86_config[] = {
.files_no = 2,
.local = 0,
.size = 65536,
.files = { "roms/machines/ibmxt86/BIOS_5160_10JAN86_U18_62X0851_27256_F800.BIN", "roms/machines/ibmxt86/BIOS_5160_10JAN86_U19_62X0854_27256_F000.BIN", "" }
.files = { "roms/machines/ibmxt86/BIOS_5160_10JAN86_U18_62X0851_27256_F800.BIN",
"roms/machines/ibmxt86/BIOS_5160_10JAN86_U19_62X0854_27256_F000.BIN", "" }
},
{
.name = "1501512 (01/10/86) (Alt)",
@@ -489,7 +631,8 @@ static const device_config_t ibmxt86_config[] = {
.files_no = 2,
.local = 0,
.size = 65536,
.files = { "roms/machines/ibmxt86/BIOS_5160_10JAN86_U18_62X0852_27256_F800.BIN", "roms/machines/ibmxt86/BIOS_5160_10JAN86_U19_62X0853_27256_F000.BIN", "" }
.files = { "roms/machines/ibmxt86/BIOS_5160_10JAN86_U18_62X0852_27256_F800.BIN",
"roms/machines/ibmxt86/BIOS_5160_10JAN86_U19_62X0853_27256_F000.BIN", "" }
},
// GLaBIOS for IBM XT
@@ -500,7 +643,8 @@ static const device_config_t ibmxt86_config[] = {
.files_no = 2,
.local = 1,
.size = 65536,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8X.ROM", "roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8X.ROM",
"roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
},
{
.name = "GLaBIOS 0.4.0 (V20)",
@@ -509,7 +653,8 @@ static const device_config_t ibmxt86_config[] = {
.files_no = 2,
.local = 1,
.size = 65536,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VX.ROM", "roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VX.ROM",
"roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
},
// The following are Diagnostic ROMs.
@@ -520,7 +665,8 @@ static const device_config_t ibmxt86_config[] = {
.files_no = 2,
.local = 2,
.size = 65536,
.files = { "roms/machines/diagnostic/Supersoft_PCXT_32KB.bin", "roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
.files = { "roms/machines/diagnostic/Supersoft_PCXT_32KB.bin",
"roms/machines/ibmxt86/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", "" }
},
{
.name = "Ruud's Diagnostic Rom",
@@ -545,10 +691,15 @@ static const device_config_t ibmxt86_config[] = {
},
},
{
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_int = 1
.name = "enable_5161",
.description = "IBM 5161 Expansion Unit",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -575,20 +726,20 @@ machine_ibmxt86_init(const machine_t *model)
uint8_t enable_5161;
const char *fn;
uint16_t offset = 0;
uint32_t local = 0;
uint32_t local = 0;
/* No ROMs available. */
if (!device_available(model->device))
return ret;
device_context(model->device);
enable_5161 = machine_get_config_int("enable_5161");
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
local = device_get_bios_local(model->device, device_get_config_bios("bios"));
enable_5161 = machine_get_config_int("enable_5161");
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
local = device_get_bios_local(model->device, device_get_config_bios("bios"));
if (local == 0) // Offset for stock roms
offset = 0x6000;
ret = bios_load_linear(fn, 0x000fe000, 65536, offset);
offset = 0x6000;
ret = bios_load_linear(fn, 0x000fe000, 65536, offset);
if (ret) {
if (local == 0) { // needed for stock roms
@@ -881,23 +1032,47 @@ machine_xt_super16te_init(const machine_t *model)
static const device_config_t jukopc_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "jukost",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Bios 2.30", .internal_name = "jukost", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { "roms/machines/jukopc/000o001.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Bios 2.30",
.internal_name = "jukost",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 8192,
.files = { "roms/machines/jukopc/000o001.bin", "" }
},
// GLaBIOS for Juko ST
{ .name = "GLaBIOS 0.4.0 (8088)", .internal_name = "glabios_040_8088", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { "roms/machines/glabios/GLABIOS_0.4.0_8S.ROM", "" } },
{ .name = "GLaBIOS 0.4.0 (V20)", .internal_name = "glabios_040_v20", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { "roms/machines/glabios/GLABIOS_0.4.0_VS.ROM", "" } },
{
.name = "GLaBIOS 0.4.0 (8088)",
.internal_name = "glabios_040_8088",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 8192,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8S.ROM", "" }
},
{
.name = "GLaBIOS 0.4.0 (V20)",
.internal_name = "glabios_040_v20",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 8192,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VS.ROM", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -928,8 +1103,8 @@ machine_xt_jukopc_init(const machine_t *model)
return ret;
device_context(model->device);
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000fe000, 8192, 0);
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000fe000, 8192, 0);
device_context_restore();
if (bios_only || !ret)
@@ -977,13 +1152,14 @@ machine_xt_micoms_xl7turbo_init(const machine_t *model)
static const device_config_t pc500_config[] = {
// clang-format off
{
.name = "bios",
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "pc500_330",
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "3.30",
@@ -1004,7 +1180,7 @@ static const device_config_t pc500_config[] = {
.files = { "roms/machines/pc500/rom310.bin", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -1035,8 +1211,8 @@ machine_xt_pc500_init(const machine_t *model)
return ret;
device_context(model->device);
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000fe000, 8192, 0);
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000fe000, 8192, 0);
device_context_restore();
if (bios_only || !ret)
@@ -1280,23 +1456,47 @@ machine_xt_pcxt_init(const machine_t *model)
static const device_config_t vendex_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "vendex",
.default_int = 0,
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "Bios 2.03C", .internal_name = "vendex", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 16384, .files = { "roms/machines/vendex/Vendex Turbo 888 XT - ROM BIOS - VER 2.03C.bin", "" } },
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Bios 2.03C",
.internal_name = "vendex",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 16384,
.files = { "roms/machines/vendex/Vendex Turbo 888 XT - ROM BIOS - VER 2.03C.bin", "" }
},
// GLaBIOS for Vendex
{ .name = "GLaBIOS 0.4.0 (8088)", .internal_name = "glabios_040_8088", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 16384, .files = { "roms/machines/glabios/GLABIOS_0.4.0_8TV.ROM", "" } },
{ .name = "GLaBIOS 0.4.0 (V20)", .internal_name = "glabios_040_v20", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 16384, .files = { "roms/machines/glabios/GLABIOS_0.4.0_VTV.ROM", "" } },
{
.name = "GLaBIOS 0.4.0 (8088)",
.internal_name = "glabios_040_8088",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 16384,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_8TV.ROM", "" }
},
{
.name = "GLaBIOS 0.4.0 (V20)",
.internal_name = "glabios_040_v20",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 16384,
.files = { "roms/machines/glabios/GLABIOS_0.4.0_VTV.ROM", "" }
},
{ .files_no = 0 }
},
}
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
@@ -1327,8 +1527,8 @@ machine_xt_vendex_init(const machine_t *model)
return ret;
device_context(model->device);
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000fc000, 16384, 0);
fn = device_get_bios_file(model->device, device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000fc000, 16384, 0);
device_context_restore();
if (bios_only || !ret)
@@ -1342,7 +1542,7 @@ machine_xt_vendex_init(const machine_t *model)
}
static void
machine_xt_laserxt_common_init(const machine_t *model,int is_lxt3)
machine_xt_laserxt_common_init(const machine_t *model, int is_lxt3)
{
machine_common_init(model);
@@ -1593,7 +1793,7 @@ machine_xt_pc5086_init(const machine_t *model)
int ret;
ret = bios_load_linear("roms/machines/pc5086/sys_rom.bin",
0x000f0000, 65536, 0);
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;

View File

@@ -132,8 +132,8 @@ typedef struct m24_kbd_t {
uint8_t scan[7];
/* Mouse stuff. */
int mouse_input_mode;
int b;
int mouse_input_mode;
int b;
pc_timer_t send_delay_timer;
} m24_kbd_t;
@@ -553,20 +553,20 @@ m24_kbd_write(uint16_t port, uint8_t val, void *priv)
switch (m24_kbd->command) {
case 0x11:
m24_kbd->mouse_input_mode = 0;
m24_kbd->scan[0] = m24_kbd->params[0];
m24_kbd->scan[1] = m24_kbd->params[1];
m24_kbd->scan[2] = m24_kbd->params[2];
m24_kbd->scan[3] = m24_kbd->params[3];
m24_kbd->scan[4] = m24_kbd->params[4];
m24_kbd->scan[5] = m24_kbd->params[5];
m24_kbd->scan[6] = m24_kbd->params[6];
m24_kbd->scan[0] = m24_kbd->params[0];
m24_kbd->scan[1] = m24_kbd->params[1];
m24_kbd->scan[2] = m24_kbd->params[2];
m24_kbd->scan[3] = m24_kbd->params[3];
m24_kbd->scan[4] = m24_kbd->params[4];
m24_kbd->scan[5] = m24_kbd->params[5];
m24_kbd->scan[6] = m24_kbd->params[6];
break;
case 0x12:
m24_kbd->mouse_input_mode = 1;
m24_kbd->scan[0] = m24_kbd->params[0];
m24_kbd->scan[1] = m24_kbd->params[1];
m24_kbd->scan[2] = m24_kbd->params[2];
m24_kbd->scan[0] = m24_kbd->params[0];
m24_kbd->scan[1] = m24_kbd->params[1];
m24_kbd->scan[2] = m24_kbd->params[2];
break;
default:
@@ -722,7 +722,7 @@ m24_kbd_reset(void *priv)
m24_kbd->wantirq = 0;
keyboard_scan = 1;
m24_kbd->param = m24_kbd->param_total = 0;
m24_kbd->mouse_input_mode = 0;
m24_kbd->mouse_input_mode = 0;
m24_kbd->scan[0] = 0x1c;
m24_kbd->scan[1] = 0x53;
m24_kbd->scan[2] = 0x01;
@@ -736,11 +736,11 @@ static int
ms_poll(void *priv)
{
m24_kbd_t *m24_kbd = (m24_kbd_t *) priv;
int delta_x;
int delta_y;
int o_x;
int o_y;
int b = mouse_get_buttons_ex();
int delta_x;
int delta_y;
int o_x;
int o_y;
int b = mouse_get_buttons_ex();
if (((key_queue_end - key_queue_start) & 0xf) > 14)
return 0xff;
@@ -847,7 +847,7 @@ ms_poll(void *priv)
- Right Windows (E0 5C) -> F18 (67).
*/
const scancode scancode_olivetti_m24_deluxe[512] = {
// clang-format off
// clang-format off
{ .mk = { 0 }, .brk = { 0 } }, /* 000 */
{ .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
{ .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
@@ -1360,7 +1360,7 @@ const scancode scancode_olivetti_m24_deluxe[512] = {
{ .mk = { 0 }, .brk = { 0 } }, /* 1fd */
{ .mk = { 0 }, .brk = { 0 } }, /* 1fe */
{ .mk = { 0 }, .brk = { 0 } } /* 1ff */
// clang-format on
// clang-format on
};
/* Remapping as follows:
@@ -1370,7 +1370,7 @@ const scancode scancode_olivetti_m24_deluxe[512] = {
- Menu (E0 5D) -> 5C.
*/
const scancode scancode_olivetti_m240[512] = {
// clang-format off
// clang-format off
{ .mk = { 0 }, .brk = { 0 } }, /* 000 */
{ .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
{ .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
@@ -1883,7 +1883,7 @@ const scancode scancode_olivetti_m240[512] = {
{ .mk = { 0 }, .brk = { 0 } }, /* 1fd */
{ .mk = { 0 }, .brk = { 0 } }, /* 1fe */
{ .mk = { 0 }, .brk = { 0 } } /* 1ff */
// clang-format on
// clang-format on
};
static void
@@ -2084,33 +2084,38 @@ const device_t m24_kbd_device = {
};
const device_config_t m19_vid_config[] = {
// clang-format off
// clang-format off
{
/* Olivetti / ATT compatible displays */
.name = "rgb_type",
.description = "RGB type",
.type = CONFIG_SELECTION,
.default_string = "",
.default_int = CGA_RGB,
.file_filter = "",
.spinner = { 0 },
.selection = {
.name = "rgb_type",
.description = "RGB type",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = CGA_RGB,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "Color", .value = 0 },
{ .description = "Green Monochrome", .value = 1 },
{ .description = "Amber Monochrome", .value = 2 },
{ .description = "Gray Monochrome", .value = 3 },
{ .description = "" }
}
},
.bios = { { 0 } }
},
{
.name = "snow_enabled",
.description = "Snow emulation",
.type = CONFIG_BINARY,
.default_string = "",
.default_int = 1,
.name = "snow_enabled",
.description = "Snow emulation",
.type = CONFIG_BINARY,
.default_string = NULL,
.default_int = 1,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t m19_vid_device = {
@@ -2243,7 +2248,7 @@ m24_read(uint16_t port, UNUSED(void *priv))
static uint8_t
m240_read(uint16_t port, UNUSED(void *priv))
{
uint8_t ret = 0x00;
uint8_t ret = 0x00;
int fdd_count = 0;
switch (port) {

View File

@@ -286,8 +286,8 @@ tc8521_write(uint16_t addr, uint8_t val, void *priv)
static uint8_t
tc8521_read(uint16_t addr, void *priv)
{
const nvr_t *nvr = (nvr_t *) priv;
uint8_t page;
const nvr_t *nvr = (nvr_t *) priv;
uint8_t page;
/* Get to the correct register page. */
addr &= 0x0f;
@@ -340,7 +340,7 @@ ems_execaddr(t1000_t *sys, UNUSED(int pg), uint16_t val)
return 0; /* Bit 7 reset => not mapped */
if (!sys->ems_pages)
return 0; /* No EMS available: all used by
* HardRAM or conventional RAM */
* HardRAM or conventional RAM */
val &= 0x7f;
#if 0
@@ -466,7 +466,7 @@ static uint8_t
ems_read_ram(uint32_t addr, void *priv)
{
const t1000_t *sys = (t1000_t *) priv;
int pg = addr_to_page(addr);
int pg = addr_to_page(addr);
if (pg < 0)
return 0xff;
@@ -832,7 +832,7 @@ int
machine_xt_t1000_init(const machine_t *model)
{
FILE *fp;
int ret;
int ret;
ret = bios_load_linear("roms/machines/t1000/t1000.rom",
0x000f8000, 32768, 0);

View File

@@ -87,77 +87,77 @@ xi8088_init(UNUSED(const device_t *info))
}
static const device_config_t xi8088_config[] = {
// clang-format off
// clang-format off
{
.name = "turbo_setting",
.name = "turbo_setting",
.description = "Turbo",
.type = CONFIG_SELECTION,
.selection = {
.type = CONFIG_SELECTION,
.default_int = 0,
.selection = {
{
.description = "Always at selected speed",
.value = 0
.value = 0
},
{
.description = "BIOS setting + Hotkeys (off during POST)",
.value = 1
.value = 1
}
},
.default_int = 0
}
},
{
.name = "bios_128kb",
.name = "bios_128kb",
.description = "BIOS size",
.type = CONFIG_SELECTION,
.selection = {
.type = CONFIG_SELECTION,
.default_int = 1,
.selection = {
{
.description = "64 KB starting from F0000",
.value = 0
.value = 0
},
{
.description = "128 KB starting from E0000 (address MSB inverted, last 64 KB first)",
.value = 1
.value = 1
}
},
.default_int = 1
}
},
{
.name = "umb_c0000h_c7fff",
.name = "umb_c0000h_c7fff",
.description = "Map C0000-C7FFF as UMB",
.type = CONFIG_BINARY,
.type = CONFIG_BINARY,
.default_int = 0
},
{
.name = "umb_c8000h_cffff",
.name = "umb_c8000h_cffff",
.description = "Map C8000-CFFFF as UMB",
.type = CONFIG_BINARY,
.type = CONFIG_BINARY,
.default_int = 0
},
{
.name = "umb_d0000h_d7fff",
.name = "umb_d0000h_d7fff",
.description = "Map D0000-D7FFF as UMB",
.type = CONFIG_BINARY,
.type = CONFIG_BINARY,
.default_int = 0
},
{
.name = "umb_d8000h_dffff",
.name = "umb_d8000h_dffff",
.description = "Map D8000-DFFFF as UMB",
.type = CONFIG_BINARY,
.type = CONFIG_BINARY,
.default_int = 0
},
{
.name = "umb_e0000h_e7fff",
.name = "umb_e0000h_e7fff",
.description = "Map E0000-E7FFF as UMB",
.type = CONFIG_BINARY,
.type = CONFIG_BINARY,
.default_int = 0
},
{
.name = "umb_e8000h_effff",
.name = "umb_e8000h_effff",
.description = "Map E8000-EFFFF as UMB",
.type = CONFIG_BINARY,
.type = CONFIG_BINARY,
.default_int = 0
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
// clang-format on
};
const device_t xi8088_device = {

View File

@@ -76,9 +76,9 @@ machine_init_ex(int m)
machine_init_gpio();
machine_init_gpio_acpi();
machine_snd = NULL;
machine_snd = NULL;
is_vpc = 0;
is_vpc = 0;
standalone_gameport_type = NULL;
gameport_instance_id = 0;
@@ -183,7 +183,7 @@ void
machine_common_init(UNUSED(const machine_t *model))
{
uint8_t cpu_requires_fast_pit = is486 || (!is286 && is8086 && (cpu_s->rspeed >= 8000000));
cpu_requires_fast_pit = cpu_requires_fast_pit && !cpu_16bitbus;
cpu_requires_fast_pit = cpu_requires_fast_pit && !cpu_16bitbus;
/* System devices first. */
pic_init();

File diff suppressed because it is too large Load Diff