mirror of
https://github.com/86Box/86Box.git
synced 2026-02-21 17:15:32 -07:00
Merge pull request #2281 from jriwanek-forks/named-initializers-3
Named initializers part 3
This commit is contained in:
@@ -683,16 +683,34 @@ isamem_close(void *priv)
|
||||
static const device_config_t ibmxt_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 128, "",
|
||||
{ 0, 512, 16 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 128,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 512,
|
||||
.step = 16
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 256, "",
|
||||
{ 0, 576, 64 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 256,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 576,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -713,16 +731,34 @@ static const device_t ibmxt_device = {
|
||||
static const device_config_t genericxt_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 16, "",
|
||||
{ 0, 640, 16 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 16,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 640,
|
||||
.step = 16
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 624, 16 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 624,
|
||||
.step = 16
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -743,16 +779,34 @@ static const device_t genericxt_device = {
|
||||
static const device_config_t msramcard_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 64, "",
|
||||
{ 0, 256, 64 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 64,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 256,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 624, 64 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 624,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -773,16 +827,34 @@ static const device_t msramcard_device = {
|
||||
static const device_config_t mssystemcard_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 64, "",
|
||||
{ 0, 256, 64 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 64,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 256,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 624, 64 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 624,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -803,16 +875,34 @@ static const device_t mssystemcard_device = {
|
||||
static const device_config_t ibmat_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 512, "",
|
||||
{ 0, 12288, 512 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 512,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 12288,
|
||||
.step = 512
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 512, "",
|
||||
{ 0, 15872, 512 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 512,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 15872,
|
||||
.step = 512
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -833,16 +923,34 @@ static const device_t ibmat_device = {
|
||||
static const device_config_t genericat_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 512, "",
|
||||
{ 0, 16384, 512 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 512,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 16384,
|
||||
.step = 512
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 512, "",
|
||||
{ 0, 15872, 128 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 512,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 15872,
|
||||
.step = 128
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -863,16 +971,34 @@ static const device_t genericat_device = {
|
||||
static const device_config_t p5pak_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 128, "",
|
||||
{ 0, 384, 64 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 128,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 384,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 512, "",
|
||||
{ 64, 576, 64 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 512,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 64,
|
||||
.max = 576,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -894,16 +1020,34 @@ static const device_t p5pak_device = {
|
||||
static const device_config_t a6pak_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 64, "",
|
||||
{ 0, 576, 64 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 64,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 576,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 256, "",
|
||||
{ 64, 512, 64 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 256,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 64,
|
||||
.max = 512,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -924,22 +1068,37 @@ static const device_t a6pak_device = {
|
||||
static const device_config_t ems5150_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 256, "",
|
||||
{ 0, 2048, 64 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 256,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 2048,
|
||||
.step = 64
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x0000 },
|
||||
{ "Board 1", 0x0208 },
|
||||
{ "Board 2", 0x020a },
|
||||
{ "Board 3", 0x020c },
|
||||
{ "Board 4", 0x020e },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x0000 },
|
||||
{ .description = "Board 1", .value = 0x0208 },
|
||||
{ .description = "Board 2", .value = 0x020a },
|
||||
{ .description = "Board 3", .value = 0x020c },
|
||||
{ .description = "Board 4", .value = 0x020e },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -960,58 +1119,109 @@ static const device_t ems5150_device = {
|
||||
static const device_config_t ev159_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 512, "",
|
||||
{ 0, 3072, 512 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 512,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 3072,
|
||||
.step = 512
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 16128, 128 },
|
||||
{ { 0 } }
|
||||
.name = "start",
|
||||
.description = "Start Address",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 16128,
|
||||
.step = 128
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"length", "Contiguous Size", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 16384, 128 },
|
||||
{ { 0 } }
|
||||
.name = "length",
|
||||
.description = "Contiguous Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 16384,
|
||||
.step = 128
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{
|
||||
"width", "I/O Width", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "8-bit", 0 },
|
||||
{ "16-bit", 1 },
|
||||
{ "" }
|
||||
.name = "width",
|
||||
.description = "I/O Width",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8-bit", .value = 0 },
|
||||
{ .description = "16-bit", .value = 1 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"speed", "Transfer Speed", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Standard (150ns)", 0 },
|
||||
{ "High-Speed (120ns)", 1 },
|
||||
{ "" }
|
||||
.name = "speed",
|
||||
.description = "Transfer Speed",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Standard (150ns)", .value = 0 },
|
||||
{ .description = "High-Speed (120ns)", .value = 1 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ems", "EMS mode", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "Enabled", 1 },
|
||||
{ "" }
|
||||
.name = "ems",
|
||||
.description = "EMS mode",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "Enabled", .value = 1 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0258, "", { 0 },
|
||||
{
|
||||
{ "208H", 0x0208 },
|
||||
{ "218H", 0x0218 },
|
||||
{ "258H", 0x0258 },
|
||||
{ "268H", 0x0268 },
|
||||
{ "2A8H", 0x02A8 },
|
||||
{ "2B8H", 0x02B8 },
|
||||
{ "2E8H", 0x02E8 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0258,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "208H", .value = 0x0208 },
|
||||
{ .description = "218H", .value = 0x0218 },
|
||||
{ .description = "258H", .value = 0x0258 },
|
||||
{ .description = "268H", .value = 0x0268 },
|
||||
{ .description = "2A8H", .value = 0x02A8 },
|
||||
{ .description = "2B8H", .value = 0x02B8 },
|
||||
{ .description = "2E8H", .value = 0x02E8 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -1033,47 +1243,79 @@ static const device_t ev159_device = {
|
||||
static const device_config_t brat_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0258, "", { 0 },
|
||||
{
|
||||
{ "208H", 0x0208 },
|
||||
{ "218H", 0x0218 },
|
||||
{ "258H", 0x0258 },
|
||||
{ "268H", 0x0268 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0258,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "208H", .value = 0x0208 },
|
||||
{ .description = "218H", .value = 0x0218 },
|
||||
{ .description = "258H", .value = 0x0258 },
|
||||
{ .description = "268H", .value = 0x0268 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"frame", "Frame Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "D000H", 0xD0000 },
|
||||
{ "E000H", 0xE0000 },
|
||||
{ "" }
|
||||
.name = "frame",
|
||||
.description = "Frame Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "D000H", .value = 0xD0000 },
|
||||
{ .description = "E000H", .value = 0xE0000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"width", "I/O Width", CONFIG_SELECTION, "", 8, "", { 0 },
|
||||
{
|
||||
{ "8-bit", 8 },
|
||||
{ "16-bit", 16 },
|
||||
{ "" }
|
||||
.name = "width",
|
||||
.description = "I/O Width",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 8,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8-bit", .value = 8 },
|
||||
{ .description = "16-bit", .value = 16 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"speed", "Transfer Speed", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Standard", 0 },
|
||||
{ "High-Speed", 1 },
|
||||
{ "" }
|
||||
.name = "speed",
|
||||
.description = "Transfer Speed",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Standard", .value = 0 },
|
||||
{ .description = "High-Speed", .value = 1 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 128,
|
||||
"",
|
||||
{ 0, 8192, 512 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 128,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 8192,
|
||||
.step = 512
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -1096,50 +1338,83 @@ static const device_t brat_device = {
|
||||
static const device_config_t rampage_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0258, "", { 0 },
|
||||
{
|
||||
{ "208H", 0x0208 },
|
||||
{ "218H", 0x0218 },
|
||||
{ "258H", 0x0258 },
|
||||
{ "268H", 0x0268 },
|
||||
{ "2A8H", 0x02A8 },
|
||||
{ "2B8H", 0x02B8 },
|
||||
{ "2E8H", 0x02E8 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0258,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "208H", .value = 0x0208 },
|
||||
{ .description = "218H", .value = 0x0218 },
|
||||
{ .description = "258H", .value = 0x0258 },
|
||||
{ .description = "268H", .value = 0x0268 },
|
||||
{ .description = "2A8H", .value = 0x02A8 },
|
||||
{ .description = "2B8H", .value = 0x02B8 },
|
||||
{ .description = "2E8H", .value = 0x02E8 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"frame", "Frame Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "C000H", 0xC0000 },
|
||||
{ "D000H", 0xD0000 },
|
||||
{ "E000H", 0xE0000 },
|
||||
{ "" }
|
||||
.name = "frame",
|
||||
.description = "Frame Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C000H", .value = 0xC0000 },
|
||||
{ .description = "D000H", .value = 0xD0000 },
|
||||
{ .description = "E000H", .value = 0xE0000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"width", "I/O Width", CONFIG_SELECTION, "", 8, "", { 0 },
|
||||
{
|
||||
{ "8-bit", 8 },
|
||||
{ "16-bit", 16 },
|
||||
{ "" }
|
||||
.name = "width",
|
||||
.description = "I/O Width",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 8,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8-bit", .value = 8 },
|
||||
{ .description = "16-bit", .value = 16 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"speed", "Transfer Speed", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Standard", 0 },
|
||||
{ "High-Speed", 1 },
|
||||
{ "" }
|
||||
.name = "speed",
|
||||
.description = "Transfer Speed",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Standard", .value = 0 },
|
||||
{ .description = "High-Speed", .value = 1 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 128, "",
|
||||
{ 0, 8192, 128 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 128,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 8192,
|
||||
.step = 128
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -1162,50 +1437,83 @@ static const device_t rampage_device = {
|
||||
static const device_config_t iab_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0258, "", { 0 },
|
||||
{
|
||||
{ "208H", 0x0208 },
|
||||
{ "218H", 0x0218 },
|
||||
{ "258H", 0x0258 },
|
||||
{ "268H", 0x0268 },
|
||||
{ "2A8H", 0x02A8 },
|
||||
{ "2B8H", 0x02B8 },
|
||||
{ "2E8H", 0x02E8 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0258,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "208H", .value = 0x0208 },
|
||||
{ .description = "218H", .value = 0x0218 },
|
||||
{ .description = "258H", .value = 0x0258 },
|
||||
{ .description = "268H", .value = 0x0268 },
|
||||
{ .description = "2A8H", .value = 0x02A8 },
|
||||
{ .description = "2B8H", .value = 0x02B8 },
|
||||
{ .description = "2E8H", .value = 0x02E8 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"frame", "Frame Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "C000H", 0xC0000 },
|
||||
{ "D000H", 0xD0000 },
|
||||
{ "E000H", 0xE0000 },
|
||||
{ "" }
|
||||
.name = "frame",
|
||||
.description = "Frame Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C000H", .value = 0xC0000 },
|
||||
{ .description = "D000H", .value = 0xD0000 },
|
||||
{ .description = "E000H", .value = 0xE0000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"width", "I/O Width", CONFIG_SELECTION, "", 8, "", { 0 },
|
||||
{
|
||||
{ "8-bit", 8 },
|
||||
{ "16-bit", 16 },
|
||||
{ "" }
|
||||
.name = "width",
|
||||
.description = "I/O Width",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 8,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8-bit", .value = 8 },
|
||||
{ .description = "16-bit", .value = 16 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"speed", "Transfer Speed", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Standard", 0 },
|
||||
{ "High-Speed", 1 },
|
||||
{ "" }
|
||||
.name = "speed",
|
||||
.description = "Transfer Speed",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Standard", .value = 0 },
|
||||
{ .description = "High-Speed", .value = 1 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 128, "",
|
||||
{ 0, 8192, 128 },
|
||||
{ { 0 } }
|
||||
.name = "size",
|
||||
.description = "Memory Size",
|
||||
.type = CONFIG_SPINNER,
|
||||
.default_string = "",
|
||||
.default_int = 128,
|
||||
.file_filter = "",
|
||||
.spinner = {
|
||||
.min = 0,
|
||||
.max = 8192,
|
||||
.step = 128
|
||||
},
|
||||
.selection = { { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -696,71 +696,120 @@ bm_init(const device_t *info)
|
||||
static const device_config_t lt_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x23c, "", { 0 }, {
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x234", 0x234 },
|
||||
{ "0x238", 0x238 },
|
||||
{ "0x23C", 0x23c },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x23c,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x230", .value = 0x230 },
|
||||
{ .description = "0x234", .value = 0x234 },
|
||||
{ .description = "0x238", .value = 0x238 },
|
||||
{ .description = "0x23C", .value = 0x23c },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 }, {
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"hz", "Hz", CONFIG_SELECTION, "", 45, "", { 0 }, {
|
||||
{ "Non-timed (original)", 0 },
|
||||
{ "30 Hz (JMP2 = 1)", 30 },
|
||||
{ "45 Hz (JMP2 not populated)", 45 },
|
||||
{ "60 Hz (JMP 2 = 2)", 60 },
|
||||
{ "" }
|
||||
.name = "hz",
|
||||
.description = "Hz",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 45,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Non-timed (original)", .value = 0 },
|
||||
{ .description = "30 Hz (JMP2 = 1)", .value = 30 },
|
||||
{ .description = "45 Hz (JMP2 not populated)", .value = 45 },
|
||||
{ .description = "60 Hz (JMP 2 = 2)", .value = 60 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"buttons", "Buttons", CONFIG_SELECTION, "", 2, "", { 0 }, {
|
||||
{ "Two", 2 },
|
||||
{ "Three", 3 },
|
||||
{ "" }
|
||||
.name = "buttons",
|
||||
.description = "Buttons",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 2,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Two", .value = 2 },
|
||||
{ .description = "Three", .value = 3 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
static const device_config_t ms_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x23c, "", { 0 }, {
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x234", 0x234 },
|
||||
{ "0x238", 0x238 },
|
||||
{ "0x23C", 0x23c },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x23c,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x230", .value = 0x230 },
|
||||
{ .description = "0x234", .value = 0x234 },
|
||||
{ .description = "0x238", .value = 0x238 },
|
||||
{ .description = "0x23C", .value = 0x23c },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 }, {
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"buttons", "Buttons", CONFIG_SELECTION, "", 2, "", { 0 }, {
|
||||
{ "Two", 2 },
|
||||
{ "Three", 3 },
|
||||
{ "" }
|
||||
.name = "buttons",
|
||||
.description = "Buttons",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 2,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Two", .value = 2 },
|
||||
{ .description = "Three", .value = 3 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -332,15 +332,22 @@ ps2_close(void *priv)
|
||||
static const device_config_t ps2_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"buttons", "Buttons", CONFIG_SELECTION, "", 2, "", { 0 }, {
|
||||
{ "Two", 2 },
|
||||
{ "Three", 3 },
|
||||
{ "Wheel", 4 },
|
||||
{ "" }
|
||||
.name = "buttons",
|
||||
.description = "Buttons",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 2,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Two", .value = 2 },
|
||||
{ .description = "Three", .value = 3 },
|
||||
{ .description = "Wheel", .value = 4 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
.name = "", .description = "", .type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -828,50 +828,76 @@ sermouse_init(const device_t *info)
|
||||
return(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t mssermouse_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"port", "Serial Port", CONFIG_SELECTION, "", 0, "", { 0 }, {
|
||||
{ "COM1", 0 },
|
||||
{ "COM2", 1 },
|
||||
{ "COM3", 2 },
|
||||
{ "COM4", 3 },
|
||||
{ "" }
|
||||
.name = "port",
|
||||
.description = "Serial Port",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "COM1", .value = 0 },
|
||||
{ .description = "COM2", .value = 1 },
|
||||
{ .description = "COM3", .value = 2 },
|
||||
{ .description = "COM4", .value = 3 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"buttons", "Buttons", CONFIG_SELECTION, "", 2, "", { 0 }, {
|
||||
{ "Two", 2 },
|
||||
{ "Three", 3 },
|
||||
{ "Wheel", 4 },
|
||||
{ "" }
|
||||
.name = "buttons",
|
||||
.description = "Buttons",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 2,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Two", .value = 2 },
|
||||
{ .description = "Three", .value = 3 },
|
||||
{ .description = "Wheel", .value = 4 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t ltsermouse_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"port", "Serial Port", CONFIG_SELECTION, "", 0, "", { 0 }, {
|
||||
{ "COM1", 0 },
|
||||
{ "COM2", 1 },
|
||||
{ "COM3", 2 },
|
||||
{ "COM4", 3 },
|
||||
{ "" }
|
||||
.name = "port",
|
||||
.description = "Serial Port",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "COM1", .value = 0 },
|
||||
{ .description = "COM2", .value = 1 },
|
||||
{ .description = "COM3", .value = 2 },
|
||||
{ .description = "COM4", .value = 3 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"buttons", "Buttons", CONFIG_SELECTION, "", 2, "", { 0 }, {
|
||||
{ "Two", 2 },
|
||||
{ "Three", 3 },
|
||||
{ "" }
|
||||
.name = "buttons",
|
||||
.description = "Buttons",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 2,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Two", .value = 2 },
|
||||
{ .description = "Three", .value = 3 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -139,7 +139,6 @@ postcard_close(UNUSED(void *priv))
|
||||
NULL, NULL, NULL, postcard_write, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
const device_t postcard_device = {
|
||||
.name = "POST Card",
|
||||
.internal_name = "postcard",
|
||||
|
||||
@@ -843,7 +843,6 @@ wd1007vse1_available(void)
|
||||
return(rom_present(BIOS_FILE));
|
||||
}
|
||||
|
||||
|
||||
const device_t esdi_at_wd1007vse1_device = {
|
||||
.name = "Western Digital WD1007V-SE1 (ESDI)",
|
||||
.internal_name = "esdi_at",
|
||||
|
||||
@@ -1178,7 +1178,6 @@ esdi_available(void)
|
||||
return(rom_present(BIOS_FILE_L) && rom_present(BIOS_FILE_H));
|
||||
}
|
||||
|
||||
|
||||
const device_t esdi_ps2_device = {
|
||||
.name = "IBM PS/2 ESDI Fixed Disk Adapter (MCA)",
|
||||
.internal_name = "esdi_mca",
|
||||
|
||||
@@ -3062,7 +3062,6 @@ ide_close(void *priv)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const device_t ide_isa_device = {
|
||||
.name = "ISA PC/AT IDE Controller",
|
||||
.internal_name = "ide_isa",
|
||||
@@ -3150,42 +3149,54 @@ const device_t ide_pci_2ch_device = {
|
||||
// clang-format off
|
||||
static const device_config_t ide_ter_config[] = {
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 10, "", { 0 },
|
||||
{
|
||||
{ "Plug and Play", -1 },
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "IRQ 9", 9 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 12", 12 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 10,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Plug and Play", .value = -1 },
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 12", .value = 12 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t ide_qua_config[] = {
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 11, "", { 0 },
|
||||
{
|
||||
{ "Plug and Play", -1 },
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "IRQ 9", 9 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 12", 12 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 11,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Plug and Play", .value = -1 },
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 12", .value = 12 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -491,7 +491,6 @@ cmd640_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ide_cmd640_vlb_device = {
|
||||
.name = "CMD PCI-0640B VLB",
|
||||
.internal_name = "ide_cmd640_vlb",
|
||||
|
||||
@@ -406,7 +406,6 @@ cmd646_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ide_cmd646_device = {
|
||||
.name = "CMD PCI-0646",
|
||||
.internal_name = "ide_cmd646",
|
||||
|
||||
@@ -311,7 +311,6 @@ opti611_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ide_opti611_vlb_device = {
|
||||
.name = "OPTi 82C611/82C611A VLB",
|
||||
.internal_name = "ide_opti611_vlb",
|
||||
|
||||
@@ -584,7 +584,6 @@ static void
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t sff8038i_device =
|
||||
{
|
||||
.name = "SFF-8038i IDE Bus Master",
|
||||
|
||||
@@ -767,7 +767,6 @@ mfm_close(void *priv)
|
||||
ui_sb_update_icon(SB_HDD|HDD_BUS_MFM, 0);
|
||||
}
|
||||
|
||||
|
||||
const device_t st506_at_wd1003_device = {
|
||||
.name = "WD1003 AT MFM/RLL Controller",
|
||||
.internal_name = "st506_at",
|
||||
|
||||
@@ -1638,122 +1638,194 @@ wd1004a_27x_available(void)
|
||||
// clang-format off
|
||||
static const device_config_t dtc_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS address", CONFIG_HEX20, "", 0xc8000, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CA00H", 0xca000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "F400H", 0xf4000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CA00H", .value = 0xca000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "F400H", .value = 0xf4000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t st11_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0320, "", { 0 },
|
||||
{
|
||||
{ "320H", 0x0320 },
|
||||
{ "324H", 0x0324 },
|
||||
{ "328H", 0x0328 },
|
||||
{ "32CH", 0x032c },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0320,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "320H", .value = 0x0320 },
|
||||
{ .description = "324H", .value = 0x0324 },
|
||||
{ .description = "328H", .value = 0x0328 },
|
||||
{ .description = "32CH", .value = 0x032c },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS address", CONFIG_HEX20, "", 0xc8000, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "D000H", 0xd0000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "E000H", 0xe0000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "D000H", .value = 0xd0000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "E000H", .value = 0xe0000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"revision", "Board Revision", CONFIG_SELECTION, "", 19, "", { 0 },
|
||||
{
|
||||
{ "Rev. 05 (v1.7)", 5 },
|
||||
{ "Rev. 19 (v2.0)", 19 },
|
||||
{ "" }
|
||||
.name = "revision",
|
||||
.description = "Board Revision",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 19,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Rev. 05 (v1.7)", .value = 5 },
|
||||
{ .description = "Rev. 19 (v2.0)", .value = 19 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t wd_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS address", CONFIG_HEX20, "", 0xc8000, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0320, "", { 0 },
|
||||
{
|
||||
{ "320H", 0x0320 },
|
||||
{ "324H", 0x0324 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0320,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "320H", .value = 0x0320 },
|
||||
{ .description = "324H", .value = 0x0324 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t wd_rll_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS address", CONFIG_HEX20, "", 0xc8000, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0320, "", { 0 },
|
||||
{
|
||||
{ "320H", 0x0320 },
|
||||
{ "324H", 0x0324 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0320,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "320H", .value = 0x0320 },
|
||||
{ .description = "324H", .value = 0x0324 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"translate", "Translate 26 -> 17", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Off", 0 },
|
||||
{ "On", 1 },
|
||||
{ "" }
|
||||
.name = "translate",
|
||||
.description = "Translate 26 -> 17",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Off", .value = 0 },
|
||||
{ .description = "On", .value = 1 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t wd1004a_config[] = {
|
||||
@@ -1799,7 +1871,7 @@ static const device_config_t wd1004a_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t wd1004_rll_config[] = {
|
||||
@@ -1864,7 +1936,7 @@ static const device_config_t wd1004_rll_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
@@ -1102,34 +1102,51 @@ xta_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t wdxt150_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0320, "", { 0 }, /*W2*/
|
||||
{
|
||||
{ "320H", 0x0320 },
|
||||
{ "324H", 0x0324 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0320,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 }, /*W2*/
|
||||
.selection = {
|
||||
{ .description = "320H", .value = 0x0320 },
|
||||
{ .description = "324H", .value = 0x0324 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 }, /*W3*/
|
||||
{
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 }, /*W3*/
|
||||
.selection = {
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0xc8000, "", { 0 }, /*W1*/
|
||||
{
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CA00H", 0xca000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 }, /*W1*/
|
||||
.selection = {
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CA00H", .value = 0xca000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format off
|
||||
};
|
||||
|
||||
|
||||
@@ -259,7 +259,6 @@ xtide_at_close(void *priv)
|
||||
free(xtide);
|
||||
}
|
||||
|
||||
|
||||
const device_t xtide_device = {
|
||||
.name = "PC/XT XTIDE",
|
||||
.internal_name = "xtide",
|
||||
|
||||
@@ -114,11 +114,17 @@ static int b215_available(void)
|
||||
static const device_config_t b215_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"bios_addr", "BIOS Address:", CONFIG_HEX20, "", 0xca000, "", { 0 },
|
||||
{
|
||||
{ "CA00H", 0xca000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address:",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xca000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "CA00H", .value = 0xca000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
@@ -138,4 +144,3 @@ const device_t fdc_b215_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = b215_config
|
||||
};
|
||||
|
||||
|
||||
@@ -124,16 +124,22 @@ static int pii_158_available(void)
|
||||
static const device_config_t pii_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"bios_addr", "BIOS Address:", CONFIG_HEX20, "", 0xce000, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "CA00H", 0xca000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "CE00H", 0xce000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address:",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xce000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "CA00H", .value = 0xca000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "CE00H", .value = 0xce000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ typedef struct {
|
||||
const char *default_string;
|
||||
int default_int;
|
||||
const char *file_filter;
|
||||
device_config_spinner_t spinner;
|
||||
const device_config_spinner_t spinner;
|
||||
const device_config_selection_t selection[16];
|
||||
} device_config_t;
|
||||
|
||||
|
||||
@@ -22,76 +22,122 @@
|
||||
#ifndef EMU_MACHINE_H
|
||||
# define EMU_MACHINE_H
|
||||
|
||||
|
||||
/* Machine feature flags. */
|
||||
// #define MACHINE_PC 0x00000000 /* PC architecture */
|
||||
/* Feature flags for features. */
|
||||
#define MACHINE_NONMI 0x00000001 /* sys does not have NMI's */
|
||||
#define MACHINE_BUS_NONE 0x00000000 /* sys has no bus */
|
||||
/* Feature flags for BUS'es. */
|
||||
#define MACHINE_BUS_ISA 0x00000004 /* sys has ISA bus */
|
||||
#define MACHINE_BUS_ISA16 0x00000008 /* sys has ISA16 bus - PC/AT architecture */
|
||||
#define MACHINE_BUS_CBUS 0x00000010 /* sys has C-BUS bus */
|
||||
#define MACHINE_BUS_PS2 0x00000020 /* system has PS/2 keyboard and mouse ports */
|
||||
#define MACHINE_BUS_EISA 0x00000040 /* sys has EISA bus */
|
||||
#define MACHINE_BUS_VLB 0x00000080 /* sys has VL bus */
|
||||
#define MACHINE_BUS_MCA 0x00000100 /* sys has MCA bus */
|
||||
#define MACHINE_BUS_PCI 0x00000200 /* sys has PCI bus */
|
||||
#define MACHINE_BUS_PCMCIA 0x00000400 /* sys has PCMCIA bus */
|
||||
#define MACHINE_BUS_AGP 0x00000800 /* sys has AGP bus */
|
||||
#define MACHINE_BUS_AC97 0x00080000 /* sys has AC97 bus (ACR/AMR/CNR slot) */
|
||||
#define MACHINE_BUS_ISA 0x00000001 /* sys has ISA bus */
|
||||
#define MACHINE_BUS_CARTRIDGE 0x00000002 /* sys has two cartridge bays */
|
||||
#define MACHINE_BUS_ISA16 0x00000004 /* sys has ISA16 bus - PC/AT architecture */
|
||||
#define MACHINE_BUS_CBUS 0x00000008 /* sys has C-BUS bus */
|
||||
#define MACHINE_BUS_PS2 0x00000010 /* system has PS/2 keyboard and mouse ports */
|
||||
#define MACHINE_BUS_EISA 0x00000020 /* sys has EISA bus */
|
||||
#define MACHINE_BUS_VLB 0x00000040 /* sys has VL bus */
|
||||
#define MACHINE_BUS_MCA 0x00000080 /* sys has MCA bus */
|
||||
#define MACHINE_BUS_PCI 0x00000100 /* sys has PCI bus */
|
||||
#define MACHINE_BUS_PCMCIA 0x00000200 /* sys has PCMCIA bus */
|
||||
#define MACHINE_BUS_AGP 0x00000400 /* sys has AGP bus */
|
||||
#define MACHINE_BUS_AC97 0x00000800 /* sys has AC97 bus (ACR/AMR/CNR slot) */
|
||||
/* Aliases. */
|
||||
#define MACHINE_CARTRIDGE (MACHINE_BUS_CARTRIDGE) /* sys has two cartridge bays */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_PC 0x00000004 /* sys is PC/XT-compatible (ISA) */
|
||||
#define MACHINE_AT 0x0000000C /* sys is AT-compatible (ISA + ISA16) */
|
||||
#define MACHINE_PC98 0x00000010 /* sys is NEC PC-98x1 series */
|
||||
#define MACHINE_EISA 0x0000004C /* sys is AT-compatible with EISA */
|
||||
#define MACHINE_VLB 0x0000008C /* sys is AT-compatible with VLB */
|
||||
#define MACHINE_VLB98 0x00000090 /* sys is NEC PC-98x1 series with VLB (did that even exist?) */
|
||||
#define MACHINE_VLBE 0x000000CC /* sys is AT-compatible with EISA and VLB */
|
||||
#define MACHINE_MCA 0x00000100 /* sys is MCA */
|
||||
#define MACHINE_PCI 0x0000020C /* sys is AT-compatible with PCI */
|
||||
#define MACHINE_PCI98 0x00000210 /* sys is NEC PC-98x1 series with PCI */
|
||||
#define MACHINE_PCIE 0x0000024C /* sys is AT-compatible with PCI, and EISA */
|
||||
#define MACHINE_PCIV 0x0000028C /* sys is AT-compatible with PCI and VLB */
|
||||
#define MACHINE_PCIVE 0x000002CC /* sys is AT-compatible with PCI, VLB, and EISA */
|
||||
#define MACHINE_PCMCIA 0x00000400 /* sys is AT-compatible laptop with PCMCIA */
|
||||
#define MACHINE_AGP 0x00000A0C /* sys is AT-compatible with AGP */
|
||||
#define MACHINE_AGP98 0x00000A10 /* sys is NEC PC-98x1 series with AGP (did that even exist?) */
|
||||
/* Feature flags for miscellaneous internal devices. */
|
||||
#define MACHINE_VIDEO 0x00001000 /* sys has int video */
|
||||
#define MACHINE_VIDEO_ONLY 0x00002000 /* sys has fixed video */
|
||||
#define MACHINE_MOUSE 0x00004000 /* sys has int mouse */
|
||||
#define MACHINE_SOUND 0x00008000 /* sys has int sound */
|
||||
#define MACHINE_FDC 0x00010000 /* sys has int FDC */
|
||||
#define MACHINE_NIC 0x00020000 /* sys has int NIC */
|
||||
#define MACHINE_GAMEPORT 0x00040000 /* sys has int game port */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_VIDEO_FIXED 0x00003000 /* sys has fixed int video */
|
||||
/* Feature flags for internal storage controllers. */
|
||||
#define MACHINE_HDC 0x07FC0000 /* sys has int HDC */
|
||||
#define MACHINE_MFM 0x00100000 /* sys has int MFM/RLL */
|
||||
#define MACHINE_XTA 0x00200000 /* sys has int XTA */
|
||||
#define MACHINE_ESDI 0x00400000 /* sys has int ESDI */
|
||||
#define MACHINE_IDE_PRI 0x00800000 /* sys has int pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_SEC 0x01000000 /* sys has int sec IDE/ATAPI */
|
||||
#define MACHINE_IDE_TER 0x02000000 /* sys has int ter IDE/ATAPI */
|
||||
#define MACHINE_IDE_QUA 0x04000000 /* sys has int qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI_PRI 0x08000000 /* sys has int pri SCSI */
|
||||
#define MACHINE_SCSI_SEC 0x10000000 /* sys has int sec SCSI */
|
||||
#define MACHINE_USB 0x20000000 /* sys has int USB */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_IDE 0x00800000 /* sys has int single IDE/ATAPI - mark as pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_DUAL 0x01800000 /* sys has int dual IDE/ATAPI - mark as both pri and sec IDE/ATAPI */
|
||||
#define MACHINE_IDE_QUAD 0x07800000 /* sys has int quad IDE/ATAPI - mark as dual + both ter and and qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI 0x08000000 /* sys has int single SCSI - mark as pri SCSI */
|
||||
#define MACHINE_SCSI_DUAL 0x18000000 /* sys has int dual SCSI - mark as both pri and sec SCSI */
|
||||
#define MACHINE_CARTRIDGE 0x20000000 /* sys has two cartridge bays */
|
||||
#define MACHINE_PC (MACHINE_BUS_ISA) /* sys is PC/XT-compatible (ISA) */
|
||||
#define MACHINE_AT (MACHINE_BUS_ISA | MACHINE_BUS_ISA16) /* sys is AT-compatible (ISA + ISA16) */
|
||||
#define MACHINE_PC98 (MACHINE_BUS_CBUS) /* sys is NEC PC-98x1 series */
|
||||
#define MACHINE_EISA (MACHINE_BUS_EISA | MACHINE_AT) /* sys is AT-compatible with EISA */
|
||||
#define MACHINE_VLB (MACHINE_BUS_VLB | MACHINE_AT) /* sys is AT-compatible with VLB */
|
||||
#define MACHINE_VLB98 (MACHINE_BUS_VLB | MACHINE_PC98) /* sys is NEC PC-98x1 series with VLB (did that even exist?) */
|
||||
#define MACHINE_VLBE (MACHINE_BUS_VLB | MACHINE_EISA) /* sys is AT-compatible with EISA and VLB */
|
||||
#define MACHINE_MCA (MACHINE_BUS_MCA) /* sys is MCA */
|
||||
#define MACHINE_PCI (MACHINE_BUS_PCI | MACHINE_AT) /* sys is AT-compatible with PCI */
|
||||
#define MACHINE_PCI98 (MACHINE_BUS_PCI | MACHINE_PC98) /* sys is NEC PC-98x1 series with PCI */
|
||||
#define MACHINE_PCIE (MACHINE_BUS_PCI | MACHINE_EISA) /* sys is AT-compatible with PCI, and EISA */
|
||||
#define MACHINE_PCIV (MACHINE_BUS_PCI | MACHINE_VLB) /* sys is AT-compatible with PCI and VLB */
|
||||
#define MACHINE_PCIVE (MACHINE_BUS_PCI | MACHINE_VLBE) /* sys is AT-compatible with PCI, VLB, and EISA */
|
||||
#define MACHINE_PCMCIA (MACHINE_BUS_PCMCIA | MACHINE_AT) /* sys is AT-compatible laptop with PCMCIA */
|
||||
#define MACHINE_AGP (MACHINE_BUS_AGP | MACHINE_PCI) /* sys is AT-compatible with AGP */
|
||||
#define MACHINE_AGP98 (MACHINE_BUS_AGP | MACHINE_PCI98) /* sys is NEC PC-98x1 series with AGP (did that even exist?) */
|
||||
|
||||
#define IS_ARCH(m, a) ((machines[m].flags & (a)) ? 1 : 0)
|
||||
#define IS_AT(m) (((machines[m].flags & 0x00000FC8) && !(machines[m].flags & MACHINE_PC98)) ? 1 : 0)
|
||||
#define MACHINE_PCJR (MACHINE_PC | MACHINE_CARTRIDGE) /* sys is PCjr */
|
||||
#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */
|
||||
#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */
|
||||
#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */
|
||||
#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */
|
||||
#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */
|
||||
#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */
|
||||
#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */
|
||||
#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */
|
||||
#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */
|
||||
/* Feature flags for miscellaneous internal devices. */
|
||||
#define MACHINE_FLAGS_NONE 0x00000000 /* sys has no int devices */
|
||||
#define MACHINE_VIDEO 0x00000001 /* sys has int video */
|
||||
#define MACHINE_VIDEO_ONLY 0x00000002 /* sys has fixed video */
|
||||
#define MACHINE_MOUSE 0x00000004 /* sys has int mouse */
|
||||
#define MACHINE_FDC 0x00000008 /* sys has int FDC */
|
||||
#define MACHINE_LPT_PRI 0x00000010 /* sys has int pri LPT */
|
||||
#define MACHINE_LPT_SEC 0x00000020 /* sys has int sec LPT */
|
||||
#define MACHINE_UART_PRI 0x00000040 /* sys has int pri UART */
|
||||
#define MACHINE_UART_SEC 0x00000080 /* sys has int sec UART */
|
||||
#define MACHINE_UART_TER 0x00000100 /* sys has int ter UART */
|
||||
#define MACHINE_UART_QUA 0x00000200 /* sys has int qua UART */
|
||||
#define MACHINE_GAMEPORT 0x00000400 /* sys has int game port */
|
||||
#define MACHINE_SOUND 0x00000800 /* sys has int sound */
|
||||
#define MACHINE_NIC 0x00001000 /* sys has int NIC */
|
||||
#define MACHINE_MODEM 0x00002000 /* sys has int modem */
|
||||
/* Feature flags for advanced devices. */
|
||||
#define MACHINE_APM 0x00004000 /* sys has APM */
|
||||
#define MACHINE_ACPI 0x00008000 /* sys has ACPI */
|
||||
#define MACHINE_HWM 0x00010000 /* sys has hw monitor */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_VIDEO_FIXED (MACHINE_VIDEO | MACHINE_VIDEO_ONLY) /* sys has fixed int video */
|
||||
#define MACHINE_SUPER_IO (MACHINE_FDC | MACHINE_LPT_PRI | MACHINE_UART_PRI | MACHINE_UART_SEC)
|
||||
#define MACHINE_SUPER_IO_GAME (MACHINE_SUPER_IO | MACHINE_GAMEPORT)
|
||||
#define MACHINE_SUPER_IO_DUAL (MACHINE_SUPER_IO | MACHINE_LPT_SEC | MACHINE_UART_TER | MACHINE_UART_QUA)
|
||||
#define MACHINE_AV (MACHINE_VIDEO | MACHINE_SOUND) /* sys has video and sound */
|
||||
#define MACHINE_AG (MACHINE_SOUND | MACHINE_GAMEPORT) /* sys has sound and game port */
|
||||
/* Feature flags for internal storage controllers. */
|
||||
#define MACHINE_HDC 0x03FE0000 /* sys has int HDC */
|
||||
#define MACHINE_MFM 0x00020000 /* sys has int MFM/RLL */
|
||||
#define MACHINE_XTA 0x00040000 /* sys has int XTA */
|
||||
#define MACHINE_ESDI 0x00080000 /* sys has int ESDI */
|
||||
#define MACHINE_IDE_PRI 0x00100000 /* sys has int pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_SEC 0x00200000 /* sys has int sec IDE/ATAPI */
|
||||
#define MACHINE_IDE_TER 0x00400000 /* sys has int ter IDE/ATAPI */
|
||||
#define MACHINE_IDE_QUA 0x00800000 /* sys has int qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI_PRI 0x01000000 /* sys has int pri SCSI */
|
||||
#define MACHINE_SCSI_SEC 0x02000000 /* sys has int sec SCSI */
|
||||
#define MACHINE_USB_PRI 0x04000000 /* sys has int pri USB */
|
||||
#define MACHINE_USB_SEC 0x08000000 /* sys has int sec USB */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_IDE (MACHINE_IDE_PRI) /* sys has int single IDE/ATAPI - mark as pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_DUAL (MACHINE_IDE_PRI | MACHINE_IDE_SEC) /* sys has int dual IDE/ATAPI - mark as both pri and sec IDE/ATAPI */
|
||||
#define MACHINE_IDE_DUALTQ (MACHINE_IDE_TER | MACHINE_IDE_QUA)
|
||||
#define MACHINE_IDE_QUAD (MACHINE_IDE_DUAL | MACHINE_IDE_DUALTQ) /* sys has int quad IDE/ATAPI - mark as dual + both ter and and qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI (MACHINE_SCSI_PRI) /* sys has int single SCSI - mark as pri SCSI */
|
||||
#define MACHINE_SCSI_DUAL (MACHINE_SCSI_PRI | MACHINE_SCSI_SEC) /* sys has int dual SCSI - mark as both pri and sec SCSI */
|
||||
#define MACHINE_USB (MACHINE_USB_PRI)
|
||||
#define MACHINE_USB_DUAL (MACHINE_USB_PRI | MACHINE_USB_SEC)
|
||||
/* Special combined flags. */
|
||||
#define MACHINE_PIIX (MACHINE_IDE_DUAL)
|
||||
#define MACHINE_PIIX3 (MACHINE_PIIX | MACHINE_USB)
|
||||
/* TODO: ACPI flag. */
|
||||
#define MACHINE_PIIX4 (MACHINE_PIIX3 | MACHINE_ACPI)
|
||||
|
||||
#define IS_ARCH(m, a) ((machines[m].bus_flags & (a)) ? 1 : 0)
|
||||
#define IS_AT(m) (((machines[m].bus_flags & (MACHINE_BUS_ISA16 | MACHINE_BUS_EISA | MACHINE_BUS_VLB | MACHINE_BUS_MCA | MACHINE_BUS_PCI | MACHINE_BUS_PCMCIA | MACHINE_BUS_AGP | MACHINE_BUS_AC97)) && !(machines[m].bus_flags & MACHINE_PC98)) ? 1 : 0)
|
||||
|
||||
#define CPU_BLOCK(...) (const uint8_t[]) {__VA_ARGS__, 0}
|
||||
#define MACHINE_MULTIPLIER_FIXED -1, -1
|
||||
|
||||
#define CPU_BLOCK_NONE 0
|
||||
#define CPU_BLOCK_QDI_FMB CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2, CPU_Cx6x86, CPU_Cx6x86L, CPU_Cx6x86MX)
|
||||
#define CPU_BLOCK_SOYO_4SAW2 CPU_BLOCK(CPU_i486SX, CPU_i486DX, CPU_Am486SX, CPU_Am486DX)
|
||||
|
||||
/* Make sure it's always an invalid value to avoid misdetections. */
|
||||
#if (defined __amd64__ || defined _M_X64 || defined __aarch64__ || defined _M_ARM64)
|
||||
#define MACHINE_AVAILABLE 0xffffffffffffffffULL
|
||||
#else
|
||||
#define MACHINE_AVAILABLE 0xffffffff
|
||||
#endif
|
||||
|
||||
enum {
|
||||
MACHINE_TYPE_NONE = 0,
|
||||
@@ -121,69 +167,130 @@ enum {
|
||||
MACHINE_TYPE_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
MACHINE_CHIPSET_NONE = 0,
|
||||
MACHINE_CHIPSET_DISCRETE,
|
||||
MACHINE_CHIPSET_PROPRIETARY,
|
||||
MACHINE_CHIPSET_GC100A,
|
||||
MACHINE_CHIPSET_GC103,
|
||||
MACHINE_CHIPSET_HT18,
|
||||
MACHINE_CHIPSET_ACC_2168,
|
||||
MACHINE_CHIPSET_ALI_M1217,
|
||||
MACHINE_CHIPSET_ALI_M6117,
|
||||
MACHINE_CHIPSET_ALI_M1409,
|
||||
MACHINE_CHIPSET_ALI_M1429,
|
||||
MACHINE_CHIPSET_ALI_M1429G,
|
||||
MACHINE_CHIPSET_ALI_M1489,
|
||||
MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
|
||||
MACHINE_CHIPSET_ALI_ALADDIN_V,
|
||||
MACHINE_CHIPSET_ALI_ALADDIN_PRO_II,
|
||||
MACHINE_CHIPSET_SCAT,
|
||||
MACHINE_CHIPSET_NEAT,
|
||||
MACHINE_CHIPSET_CT_386,
|
||||
MACHINE_CHIPSET_CT_CS4031,
|
||||
MACHINE_CHIPSET_CONTAQ_82C596,
|
||||
MACHINE_CHIPSET_CONTAQ_82C597,
|
||||
MACHINE_CHIPSET_IMS_8848,
|
||||
MACHINE_CHIPSET_INTEL_82335,
|
||||
MACHINE_CHIPSET_INTEL_420TX,
|
||||
MACHINE_CHIPSET_INTEL_420ZX,
|
||||
MACHINE_CHIPSET_INTEL_420EX,
|
||||
MACHINE_CHIPSET_INTEL_430LX,
|
||||
MACHINE_CHIPSET_INTEL_430NX,
|
||||
MACHINE_CHIPSET_INTEL_430FX,
|
||||
MACHINE_CHIPSET_INTEL_430HX,
|
||||
MACHINE_CHIPSET_INTEL_430VX,
|
||||
MACHINE_CHIPSET_INTEL_430TX,
|
||||
MACHINE_CHIPSET_INTEL_450KX,
|
||||
MACHINE_CHIPSET_INTEL_440FX,
|
||||
MACHINE_CHIPSET_INTEL_440EX,
|
||||
MACHINE_CHIPSET_INTEL_440LX,
|
||||
MACHINE_CHIPSET_INTEL_440BX,
|
||||
MACHINE_CHIPSET_INTEL_440ZX,
|
||||
MACHINE_CHIPSET_INTEL_440GX,
|
||||
MACHINE_CHIPSET_OPTI_283,
|
||||
MACHINE_CHIPSET_OPTI_291,
|
||||
MACHINE_CHIPSET_OPTI_493,
|
||||
MACHINE_CHIPSET_OPTI_495,
|
||||
MACHINE_CHIPSET_OPTI_499,
|
||||
MACHINE_CHIPSET_OPTI_895_802G,
|
||||
MACHINE_CHIPSET_OPTI_547_597,
|
||||
MACHINE_CHIPSET_SARC_RC2016A,
|
||||
MACHINE_CHIPSET_SIS_310,
|
||||
MACHINE_CHIPSET_SIS_401,
|
||||
MACHINE_CHIPSET_SIS_460,
|
||||
MACHINE_CHIPSET_SIS_461,
|
||||
MACHINE_CHIPSET_SIS_471,
|
||||
MACHINE_CHIPSET_SIS_496,
|
||||
MACHINE_CHIPSET_SIS_501,
|
||||
MACHINE_CHIPSET_SIS_5511,
|
||||
MACHINE_CHIPSET_SIS_5571,
|
||||
MACHINE_CHIPSET_SMSC_VICTORYBX_66,
|
||||
MACHINE_CHIPSET_STPC_CLIENT,
|
||||
MACHINE_CHIPSET_STPC_CONSUMER_II,
|
||||
MACHINE_CHIPSET_STPC_ELITE,
|
||||
MACHINE_CHIPSET_STPC_ATLAS,
|
||||
MACHINE_CHIPSET_SYMPHONY_SL82C460,
|
||||
MACHINE_CHIPSET_UMC_UM82C480,
|
||||
MACHINE_CHIPSET_UMC_UM82C491,
|
||||
MACHINE_CHIPSET_UMC_UM8881,
|
||||
MACHINE_CHIPSET_UMC_UM8890BF,
|
||||
MACHINE_CHIPSET_VIA_VT82C495,
|
||||
MACHINE_CHIPSET_VIA_VT82C496G,
|
||||
MACHINE_CHIPSET_VIA_APOLLO_VPX,
|
||||
MACHINE_CHIPSET_VIA_APOLLO_VP3,
|
||||
MACHINE_CHIPSET_VIA_APOLLO_MVP3,
|
||||
MACHINE_CHIPSET_VIA_APOLLO_PRO,
|
||||
MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
|
||||
MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
|
||||
MACHINE_CHIPSET_VLSI_SCAMP,
|
||||
MACHINE_CHIPSET_VLSI_VL82C480,
|
||||
MACHINE_CHIPSET_VLSI_VL82C481,
|
||||
MACHINE_CHIPSET_VLSI_VL82C486,
|
||||
MACHINE_CHIPSET_WD76C10,
|
||||
MACHINE_CHIPSET_MAX
|
||||
};
|
||||
|
||||
typedef struct _machine_type_ {
|
||||
typedef struct _machine_filter_ {
|
||||
const char *name;
|
||||
const char id;
|
||||
} machine_type_t;
|
||||
} machine_filter_t;
|
||||
|
||||
|
||||
#ifdef NEW_STRUCT
|
||||
typedef struct _machine_ {
|
||||
const char *name;
|
||||
const char *internal_name;
|
||||
const char type;
|
||||
const char *name;
|
||||
const char *internal_name;
|
||||
uint32_t type;
|
||||
uint32_t chipset;
|
||||
int (*init)(const struct _machine_ *);
|
||||
uintptr_t pad, pad0, pad1, pad2;
|
||||
uint32_t cpu_package;
|
||||
const uint8_t *cpu_block;
|
||||
uint32_t cpu_min_bus;
|
||||
uint32_t cpu_max_bus;
|
||||
uint16_t cpu_min_voltage;
|
||||
uint16_t cpu_max_voltage;
|
||||
float cpu_min_multi;
|
||||
float cpu_max_multi;
|
||||
uintptr_t bus_flags;
|
||||
uintptr_t flags;
|
||||
uint32_t min_ram, max_ram;
|
||||
int ram_granularity;
|
||||
int nvrmask;
|
||||
#ifdef EMU_DEVICE_H
|
||||
const device_t *device;
|
||||
const device_t *(*get_device)(void);
|
||||
const device_t *(*get_vid_device)(void);
|
||||
#else
|
||||
void *device;
|
||||
#endif
|
||||
struct {
|
||||
const char *name;
|
||||
#ifdef EMU_CPU_H
|
||||
CPU *cpus;
|
||||
#else
|
||||
void *cpus;
|
||||
#endif
|
||||
} cpu[5];
|
||||
int flags;
|
||||
uint32_t min_ram, max_ram;
|
||||
int ram_granularity;
|
||||
int nvrmask;
|
||||
} machine_t;
|
||||
#else
|
||||
typedef struct _machine_ {
|
||||
const char *name;
|
||||
const char *internal_name;
|
||||
const char type;
|
||||
uint32_t cpu_package;
|
||||
const uint8_t *cpu_block;
|
||||
uint32_t cpu_min_bus;
|
||||
uint32_t cpu_max_bus;
|
||||
uint16_t cpu_min_voltage;
|
||||
uint16_t cpu_max_voltage;
|
||||
double cpu_min_multi;
|
||||
double cpu_max_multi;
|
||||
int flags;
|
||||
uint32_t min_ram, max_ram;
|
||||
int ram_granularity;
|
||||
int nvrmask;
|
||||
int (*init)(const struct _machine_ *);
|
||||
#ifdef EMU_DEVICE_H
|
||||
const device_t *(*get_device)(void);
|
||||
#else
|
||||
void *get_device;
|
||||
void *get_device;
|
||||
void *get_vid_device;
|
||||
#endif
|
||||
} machine_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* Global variables. */
|
||||
extern const machine_type_t machine_types[];
|
||||
extern const machine_t machines[];
|
||||
extern int bios_only;
|
||||
extern int machine;
|
||||
|
||||
extern const machine_filter_t machine_types[],
|
||||
machine_chipsets[];
|
||||
extern const machine_t machines[];
|
||||
extern int bios_only;
|
||||
extern int machine;
|
||||
|
||||
/* Core functions. */
|
||||
extern int machine_count(void);
|
||||
@@ -197,15 +304,15 @@ extern void machine_init(void);
|
||||
extern const device_t *machine_getdevice(int m);
|
||||
#endif
|
||||
extern char *machine_get_internal_name_ex(int m);
|
||||
extern int machine_get_nvrmask(int m);
|
||||
extern int machine_has_flags(int m, int flags);
|
||||
extern int machine_has_bus(int m, int bus_flags);
|
||||
extern int machine_has_cartridge(int m);
|
||||
extern int machine_get_min_ram(int m);
|
||||
extern int machine_get_max_ram(int m);
|
||||
extern int machine_get_ram_granularity(int m);
|
||||
extern int machine_get_type(int m);
|
||||
extern void machine_close(void);
|
||||
extern int machine_get_nvrmask(int m);
|
||||
extern int machine_has_flags(int m, int flags);
|
||||
extern int machine_has_bus(int m, int bus_flags);
|
||||
extern int machine_has_cartridge(int m);
|
||||
extern int machine_get_min_ram(int m);
|
||||
extern int machine_get_max_ram(int m);
|
||||
extern int machine_get_ram_granularity(int m);
|
||||
extern int machine_get_type(int m);
|
||||
extern void machine_close(void);
|
||||
|
||||
|
||||
/* Initialization functions for boards and systems. */
|
||||
@@ -749,5 +856,4 @@ extern int machine_xt_xi8088_init(const machine_t *);
|
||||
extern const device_t *xi8088_get_device(void);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /*EMU_MACHINE_H*/
|
||||
|
||||
@@ -93,6 +93,8 @@ extern const device_t ps_nvr_device;
|
||||
extern const device_t amstrad_nvr_device;
|
||||
extern const device_t ibmat_nvr_device;
|
||||
extern const device_t piix4_nvr_device;
|
||||
extern const device_t ps_no_nmi_nvr_device;
|
||||
extern const device_t amstrad_no_nmi_nvr_device;
|
||||
extern const device_t ami_1992_nvr_device;
|
||||
extern const device_t ami_1994_nvr_device;
|
||||
extern const device_t ami_1995_nvr_device;
|
||||
|
||||
@@ -669,7 +669,6 @@ vid_speed_change_1512(void *priv)
|
||||
recalc_timings_1512(vid);
|
||||
}
|
||||
|
||||
|
||||
device_config_t vid_1512_config[] = {
|
||||
{
|
||||
.name = "display_type",
|
||||
@@ -720,7 +719,7 @@ device_config_t vid_1512_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_1512_device = {
|
||||
@@ -903,7 +902,7 @@ device_config_t vid_1640_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_1640_device = {
|
||||
@@ -1788,7 +1787,7 @@ device_config_t vid_200_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_200_device = {
|
||||
@@ -1892,7 +1891,7 @@ device_config_t vid_ppc512_config[] = {
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_ppc512_device = {
|
||||
@@ -1930,7 +1929,7 @@ device_config_t vid_pc2086_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_pc2086_device = {
|
||||
@@ -1968,7 +1967,7 @@ device_config_t vid_pc3086_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_pc3086_device = {
|
||||
@@ -2348,7 +2347,16 @@ machine_amstrad_init(const machine_t *model, int type)
|
||||
memset(ams, 0x00, sizeof(amstrad_t));
|
||||
ams->type = type;
|
||||
|
||||
device_add(&amstrad_nvr_device);
|
||||
switch(type) {
|
||||
case AMS_PC200:
|
||||
case AMS_PPC512:
|
||||
device_add(&amstrad_no_nmi_nvr_device);
|
||||
break;
|
||||
|
||||
default:
|
||||
device_add(&amstrad_nvr_device);
|
||||
break;
|
||||
}
|
||||
|
||||
machine_common_init(model);
|
||||
|
||||
|
||||
@@ -716,7 +716,7 @@ const device_config_t compaq_plasma_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t compaq_plasma_device = {
|
||||
|
||||
@@ -678,10 +678,10 @@ static const device_config_t europc_config[] = {
|
||||
.selection = {
|
||||
{ .description = "Disabled (250h)", .value = 0 },
|
||||
{ .description = "Enabled (350h)", .value = 1 },
|
||||
{ "" }
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
const device_t europc_device = {
|
||||
|
||||
@@ -784,7 +784,7 @@ static const device_config_t pcjr_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t pcjr_device = {
|
||||
|
||||
@@ -1348,7 +1348,7 @@ machine_ps2_common_init(const machine_t *model)
|
||||
|
||||
dma16_init();
|
||||
ps2_dma_init();
|
||||
device_add(&ps_nvr_device);
|
||||
device_add(&ps_no_nmi_nvr_device);
|
||||
pic2_init();
|
||||
|
||||
pit_ps2_init();
|
||||
|
||||
@@ -1157,7 +1157,7 @@ static const device_config_t vid_config[] = {
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_t vid_device = {
|
||||
|
||||
@@ -586,7 +586,6 @@ m19_vid_init(m19_vid_t *vid)
|
||||
device_context_restore();
|
||||
}
|
||||
|
||||
|
||||
const device_t m24_kbd_device = {
|
||||
.name = "Olivetti M24 keyboard and mouse",
|
||||
.internal_name = "m24_kbd",
|
||||
@@ -616,7 +615,7 @@ const device_config_t m19_vid_config[] = {
|
||||
{ .description = "Green Monochrome", .value = 1 },
|
||||
{ .description = "Amber Monochrome", .value = 2 },
|
||||
{ .description = "Gray Monochrome", .value = 3 },
|
||||
{ .description = "" }
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -626,7 +625,7 @@ const device_config_t m19_vid_config[] = {
|
||||
.default_string = "",
|
||||
.default_int = 1,
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
const device_t m19_vid_device = {
|
||||
|
||||
@@ -745,16 +745,9 @@ static const device_config_t t1000_config[] = {
|
||||
.name = "display_language",
|
||||
.description = "Language",
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection =
|
||||
{
|
||||
{
|
||||
.description = "USA",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Danish",
|
||||
.value = 1
|
||||
}
|
||||
.selection = {
|
||||
{ .description = "USA", .value = 0 },
|
||||
{ .description = "Danish", .value = 1 }
|
||||
},
|
||||
.default_int = 0
|
||||
},
|
||||
@@ -763,7 +756,8 @@ static const device_config_t t1000_config[] = {
|
||||
.description = "Enable backlight",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1 },
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "invert",
|
||||
.description = "Invert colors",
|
||||
@@ -771,7 +765,7 @@ static const device_config_t t1000_config[] = {
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{ .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
const device_t t1000_video_device = {
|
||||
|
||||
@@ -160,7 +160,7 @@ static const device_config_t xi8088_config[] = {
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 0
|
||||
},
|
||||
{ .type = -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
const device_t xi8088_device = {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -635,59 +635,88 @@ threec503_nic_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t threec503_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
|
||||
{
|
||||
{ "0x250", 0x250 },
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x2a0", 0x2a0 },
|
||||
{ "0x2e0", 0x2e0 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x310", 0x310 },
|
||||
{ "0x330", 0x330 },
|
||||
{ "0x350", 0x350 },
|
||||
{ "", 0 }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x300,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x250", .value = 0x250 },
|
||||
{ .description = "0x280", .value = 0x280 },
|
||||
{ .description = "0x2a0", .value = 0x2a0 },
|
||||
{ .description = "0x2e0", .value = 0x2e0 },
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x310", .value = 0x310 },
|
||||
{ .description = "0x330", .value = 0x330 },
|
||||
{ .description = "0x350", .value = 0x350 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "", 0 }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"dma", "DMA", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "DMA 1", 1 },
|
||||
{ "DMA 2", 2 },
|
||||
{ "DMA 3", 3 },
|
||||
{ "", 0 }
|
||||
.name = "dma",
|
||||
.description = "DMA",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DMA 1", .value = 1 },
|
||||
{ .description = "DMA 2", .value = 2 },
|
||||
{ .description = "DMA 3", .value = 3 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"mac", "MAC Address", CONFIG_MAC, "", -1, "", { 0 },
|
||||
{
|
||||
{ "", 0 }
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS address", CONFIG_HEX20, "", 0xCC000, "", { 0 },
|
||||
{
|
||||
{ "DC00", 0xDC000 },
|
||||
{ "D800", 0xD8000 },
|
||||
{ "C800", 0xC8000 },
|
||||
{ "CC00", 0xCC000 },
|
||||
{ "", 0 }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xCC000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DC00", .value = 0xDC000 },
|
||||
{ .description = "D800", .value = 0xD8000 },
|
||||
{ .description = "C800", .value = 0xC8000 },
|
||||
{ .description = "CC00", .value = 0xCC000 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format off
|
||||
};
|
||||
|
||||
|
||||
@@ -1110,7 +1110,6 @@ dp8390_close(void *priv)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const device_t dp8390_device = {
|
||||
.name = "DP8390 Network Interface Controller",
|
||||
.internal_name = "dp8390",
|
||||
|
||||
@@ -1142,86 +1142,152 @@ nic_close(void *priv)
|
||||
// clang-format off
|
||||
static const device_config_t ne1000_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
|
||||
{
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x320", 0x320 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x360", 0x360 },
|
||||
{ "0x380", 0x380 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x300,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x280", .value = 0x280 },
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x320", .value = 0x320 },
|
||||
{ .description = "0x340", .value = 0x340 },
|
||||
{ .description = "0x360", .value = 0x360 },
|
||||
{ .description = "0x380", .value = 0x380 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t ne2000_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
|
||||
{
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x320", 0x320 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x360", 0x360 },
|
||||
{ "0x380", 0x380 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x300,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x280", .value = 0x280 },
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x320", .value = 0x320 },
|
||||
{ .description = "0x340", .value = 0x340 },
|
||||
{ .description = "0x360", .value = 0x360 },
|
||||
{ .description = "0x380", .value = 0x380 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 10, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 10,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{
|
||||
"bios_addr", "BIOS address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0x00000 },
|
||||
{ "D000", 0xD0000 },
|
||||
{ "D800", 0xD8000 },
|
||||
{ "C800", 0xC8000 },
|
||||
{ "" }
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "D000", .value = 0xD0000 },
|
||||
{ .description = "D800", .value = 0xD8000 },
|
||||
{ .description = "C800", .value = 0xC8000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t rtl8019as_config[] = {
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t rtl8029as_config[] = {
|
||||
{ "bios", "Enable BIOS", CONFIG_BINARY, "", 0 },
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "bios",
|
||||
.description = "Enable BIOS",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t mca_mac_config[] = {
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -3078,68 +3078,116 @@ pcnet_close(void *priv)
|
||||
|
||||
// clang-format off
|
||||
static const device_config_t pcnet_pci_config[] = {
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t pcnet_isa_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
|
||||
{
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x320", 0x320 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x360", 0x360 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x300,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x320", .value = 0x320 },
|
||||
{ .description = "0x340", .value = 0x340 },
|
||||
{ .description = "0x360", .value = 0x360 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 9", 9 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"dma", "DMA channel", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "DMA 3", 3 },
|
||||
{ "DMA 5", 5 },
|
||||
{ "DMA 6", 6 },
|
||||
{ "DMA 7", 7 },
|
||||
{ "" }
|
||||
.name = "dma",
|
||||
.description = "DMA channel",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DMA 3", .value = 3 },
|
||||
{ .description = "DMA 5", .value = 5 },
|
||||
{ .description = "DMA 6", .value = 6 },
|
||||
{ .description = "DMA 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t pcnet_vlb_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
|
||||
{
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x320", 0x320 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x360", 0x360 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x300,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x320", .value = 0x320 },
|
||||
{ .description = "0x340", .value = 0x340 },
|
||||
{ .description = "0x360", .value = 0x360 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 9", 9 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -490,7 +490,6 @@ plip_close(void *priv)
|
||||
free(priv);
|
||||
}
|
||||
|
||||
|
||||
const lpt_device_t lpt_plip_device = {
|
||||
.name = "Parallel Line Internet Protocol",
|
||||
.internal_name = "plip",
|
||||
|
||||
@@ -738,156 +738,246 @@ wd_close(void *priv)
|
||||
// clang-format off
|
||||
static const device_config_t wd8003_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
|
||||
{
|
||||
{ "0x240", 0x240 },
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x380", 0x380 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x300,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x240", .value = 0x240 },
|
||||
{ .description = "0x280", .value = 0x280 },
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x380", .value = 0x380 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"ram_addr", "RAM address", CONFIG_HEX20, "", 0xD0000, "", { 0 },
|
||||
{
|
||||
{ "C800", 0xC8000 },
|
||||
{ "CC00", 0xCC000 },
|
||||
{ "D000", 0xD0000 },
|
||||
{ "D400", 0xD4000 },
|
||||
{ "D800", 0xD8000 },
|
||||
{ "DC00", 0xDC000 },
|
||||
{ "" }
|
||||
.name = "ram_addr",
|
||||
.description = "RAM address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD0000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "C800", .value = 0xC8000 },
|
||||
{ .description = "CC00", .value = 0xCC000 },
|
||||
{ .description = "D000", .value = 0xD0000 },
|
||||
{ .description = "D400", .value = 0xD4000 },
|
||||
{ .description = "D800", .value = 0xD8000 },
|
||||
{ .description = "DC00", .value = 0xDC000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t wd8003eb_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x280, "", { 0 },
|
||||
{
|
||||
{ "0x200", 0x200 },
|
||||
{ "0x220", 0x220 },
|
||||
{ "0x240", 0x240 },
|
||||
{ "0x260", 0x260 },
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x2A0", 0x2A0 },
|
||||
{ "0x2C0", 0x2C0 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x380", 0x380 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x280,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x200", .value = 0x200 },
|
||||
{ .description = "0x220", .value = 0x220 },
|
||||
{ .description = "0x240", .value = 0x240 },
|
||||
{ .description = "0x260", .value = 0x260 },
|
||||
{ .description = "0x280", .value = 0x280 },
|
||||
{ .description = "0x2A0", .value = 0x2A0 },
|
||||
{ .description = "0x2C0", .value = 0x2C0 },
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x340", .value = 0x340 },
|
||||
{ .description = "0x380", .value = 0x380 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2/9", 9 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2/9", .value = 9 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"ram_addr", "RAM address", CONFIG_HEX20, "", 0xD0000, "", { 0 },
|
||||
{
|
||||
{ "C000", 0xC0000 },
|
||||
{ "C400", 0xC4000 },
|
||||
{ "C800", 0xC8000 },
|
||||
{ "CC00", 0xCC000 },
|
||||
{ "D000", 0xD0000 },
|
||||
{ "D400", 0xD4000 },
|
||||
{ "D800", 0xD8000 },
|
||||
{ "DC00", 0xDC000 },
|
||||
{ "" }
|
||||
.name = "ram_addr",
|
||||
.description = "RAM address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD0000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "C000", .value = 0xC0000 },
|
||||
{ .description = "C400", .value = 0xC4000 },
|
||||
{ .description = "C800", .value = 0xC8000 },
|
||||
{ .description = "CC00", .value = 0xCC000 },
|
||||
{ .description = "D000", .value = 0xD0000 },
|
||||
{ .description = "D400", .value = 0xD4000 },
|
||||
{ .description = "D800", .value = 0xD8000 },
|
||||
{ .description = "DC00", .value = 0xDC000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"ram_size", "RAM size", CONFIG_SELECTION, "", 8192, "", { 0 },
|
||||
{
|
||||
{ "8 kB", 8192 },
|
||||
{ "32 kB", 32768 },
|
||||
{ "" }
|
||||
.name = "ram_size",
|
||||
.description = "RAM size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 8192,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8 kB", .value = 8192 },
|
||||
{ .description = "32 kB", .value = 32768 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
/* WD8013EBT configuration and defaults set according to this site:
|
||||
http://www.stack.nl/~marcolz/network/wd80x3.html#WD8013EBT */
|
||||
static const device_config_t wd8013_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x280, "", { 0 },
|
||||
{
|
||||
{ "0x200", 0x200 },
|
||||
{ "0x220", 0x220 },
|
||||
{ "0x240", 0x240 },
|
||||
{ "0x260", 0x260 },
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x2A0", 0x2A0 },
|
||||
{ "0x2C0", 0x2C0 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x380", 0x380 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x280,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x200", .value = 0x200 },
|
||||
{ .description = "0x220", .value = 0x220 },
|
||||
{ .description = "0x240", .value = 0x240 },
|
||||
{ .description = "0x260", .value = 0x260 },
|
||||
{ .description = "0x280", .value = 0x280 },
|
||||
{ .description = "0x2A0", .value = 0x2A0 },
|
||||
{ .description = "0x2C0", .value = 0x2C0 },
|
||||
{ .description = "0x300", .value = 0x300 },
|
||||
{ .description = "0x340", .value = 0x340 },
|
||||
{ .description = "0x380", .value = 0x380 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2/9", 9 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 15", 15 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 3,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2/9", .value = 9 },
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 4", .value = 4 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 15", .value = 15 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"ram_addr", "RAM address", CONFIG_HEX20, "", 0xD0000, "", { 0 },
|
||||
{
|
||||
{ "C000", 0xC0000 },
|
||||
{ "C400", 0xC4000 },
|
||||
{ "C800", 0xC8000 },
|
||||
{ "CC00", 0xCC000 },
|
||||
{ "D000", 0xD0000 },
|
||||
{ "D400", 0xD4000 },
|
||||
{ "D800", 0xD8000 },
|
||||
{ "DC00", 0xDC000 },
|
||||
{ "" }
|
||||
.name = "ram_addr",
|
||||
.description = "RAM address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD0000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "C000", .value = 0xC0000 },
|
||||
{ .description = "C400", .value = 0xC4000 },
|
||||
{ .description = "C800", .value = 0xC8000 },
|
||||
{ .description = "CC00", .value = 0xCC000 },
|
||||
{ .description = "D000", .value = 0xD0000 },
|
||||
{ .description = "D400", .value = 0xD4000 },
|
||||
{ .description = "D800", .value = 0xD8000 },
|
||||
{ .description = "DC00", .value = 0xDC000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"ram_size", "RAM size", CONFIG_SELECTION, "", 16384, "", { 0 },
|
||||
{
|
||||
{ "16 kB", 16384 },
|
||||
{ "64 kB", 65536 },
|
||||
{ "" }
|
||||
.name = "ram_size",
|
||||
.description = "RAM size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 16384,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "16 kB", .value = 16384 },
|
||||
{ .description = "64 kB", .value = 65536 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t mca_mac_config[] = {
|
||||
{ "mac", "MAC Address", CONFIG_MAC, "", -1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "mac",
|
||||
.description = "MAC Address",
|
||||
.type = CONFIG_MAC,
|
||||
.default_string = "",
|
||||
.default_int = -1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
38
src/nvr_at.c
38
src/nvr_at.c
@@ -290,11 +290,12 @@
|
||||
|
||||
#define RTC_REGS 14 /* number of registers */
|
||||
|
||||
#define FLAG_AMI_1992_HACK 0x01
|
||||
#define FLAG_AMI_1994_HACK 0x02
|
||||
#define FLAG_AMI_1995_HACK 0x04
|
||||
#define FLAG_P6RP4_HACK 0x08
|
||||
#define FLAG_PIIX4 0x10
|
||||
#define FLAG_NO_NMI 0x01
|
||||
#define FLAG_AMI_1992_HACK 0x02
|
||||
#define FLAG_AMI_1994_HACK 0x04
|
||||
#define FLAG_AMI_1995_HACK 0x08
|
||||
#define FLAG_P6RP4_HACK 0x10
|
||||
#define FLAG_PIIX4 0x20
|
||||
|
||||
|
||||
typedef struct {
|
||||
@@ -667,8 +668,7 @@ nvr_write(uint16_t addr, uint8_t val, void *priv)
|
||||
local->addr[addr_id] = (local->addr[addr_id] & 0x7f) | 0x80;
|
||||
if (local->bank[addr_id] > 0)
|
||||
local->addr[addr_id] = (local->addr[addr_id] & 0x7f) | (0x80 * local->bank[addr_id]);
|
||||
if (!(machines[machine].flags & MACHINE_MCA) &&
|
||||
!(machines[machine].flags & MACHINE_NONMI))
|
||||
if (!(local->flags & FLAG_NO_NMI))
|
||||
nmi_mask = (~val & 0x80);
|
||||
}
|
||||
}
|
||||
@@ -1033,12 +1033,16 @@ nvr_at_init(const device_t *info)
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_PS;
|
||||
local->def = 0x00;
|
||||
if (info->local & 8)
|
||||
local->flags |= FLAG_NO_NMI;
|
||||
break;
|
||||
|
||||
case 3: /* Amstrad PC's */
|
||||
nvr->irq = 1;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
local->def = 0xff;
|
||||
if (info->local & 8)
|
||||
local->flags |= FLAG_NO_NMI;
|
||||
break;
|
||||
|
||||
case 4: /* IBM AT */
|
||||
@@ -1204,6 +1208,26 @@ const device_t piix4_nvr_device = {
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ps_no_nmi_nvr_device = {
|
||||
"PS/1 or PS/2 NVRAM (No NMI)",
|
||||
"ps1_nvr",
|
||||
DEVICE_PS2,
|
||||
10,
|
||||
nvr_at_init, nvr_at_close, nvr_at_reset,
|
||||
{ NULL }, nvr_at_speed_changed,
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t amstrad_no_nmi_nvr_device = {
|
||||
"Amstrad NVRAM (No NMI)",
|
||||
"amstrad_nvr",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
11,
|
||||
nvr_at_init, nvr_at_close, nvr_at_reset,
|
||||
{ NULL }, nvr_at_speed_changed,
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t ami_1992_nvr_device = {
|
||||
.name = "AMI Color 1992 PC/AT NVRAM",
|
||||
.internal_name = "ami_1992_nvr",
|
||||
|
||||
@@ -130,7 +130,7 @@ void DeviceConfig::ConfigureDevice(const _device_* device, int instance, Setting
|
||||
break;
|
||||
}
|
||||
|
||||
for (auto* sel = config->selection; (sel->description != nullptr) && (strlen(sel->description) > 0); ++sel) {
|
||||
for (auto* sel = config->selection; (sel != nullptr) && (sel->description != nullptr) && (strlen(sel->description) > 0); ++sel) {
|
||||
int row = Models::AddEntry(model, sel->description, sel->value);
|
||||
if (selected == sel->value) {
|
||||
currentIndex = row;
|
||||
|
||||
@@ -1141,181 +1141,258 @@ aha_init(const device_t *info)
|
||||
// clang-format off
|
||||
static const device_config_t aha_154xb_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x334, "", { 0 },
|
||||
{
|
||||
{ "None", 0 },
|
||||
{ "0x330", 0x330 },
|
||||
{ "0x334", 0x334 },
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x234", 0x234 },
|
||||
{ "0x130", 0x130 },
|
||||
{ "0x134", 0x134 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x334,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "None", .value = 0 },
|
||||
{ .description = "0x330", .value = 0x330 },
|
||||
{ .description = "0x334", .value = 0x334 },
|
||||
{ .description = "0x230", .value = 0x230 },
|
||||
{ .description = "0x234", .value = 0x234 },
|
||||
{ .description = "0x130", .value = 0x130 },
|
||||
{ .description = "0x134", .value = 0x134 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 11, "", { 0 },
|
||||
{
|
||||
{ "IRQ 9", 9 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 12", 12 },
|
||||
{ "IRQ 14", 14 },
|
||||
{ "IRQ 15", 15 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 11,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 12", .value = 12 },
|
||||
{ .description = "IRQ 14", .value = 14 },
|
||||
{ .description = "IRQ 15", .value = 15 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"dma", "DMA channel", CONFIG_SELECTION, "", 6, "", { 0 },
|
||||
{
|
||||
{ "DMA 5", 5 },
|
||||
{ "DMA 6", 6 },
|
||||
{ "DMA 7", 7 },
|
||||
{ "" }
|
||||
.name = "dma",
|
||||
.description = "DMA channel",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 6,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DMA 5", .value = 5 },
|
||||
{ .description = "DMA 6", .value = 6 },
|
||||
{ .description = "DMA 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"hostid", "Host ID", CONFIG_SELECTION, "", 7, "", { 0 },
|
||||
{
|
||||
{ "0", 0 },
|
||||
{ "1", 1 },
|
||||
{ "2", 2 },
|
||||
{ "3", 3 },
|
||||
{ "4", 4 },
|
||||
{ "5", 5 },
|
||||
{ "6", 6 },
|
||||
{ "7", 7 },
|
||||
{ "" }
|
||||
.name = "hostid",
|
||||
.description = "Host ID",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 7,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0", .value = 0 },
|
||||
{ .description = "1", .value = 1 },
|
||||
{ .description = "2", .value = 2 },
|
||||
{ .description = "3", .value = 3 },
|
||||
{ .description = "4", .value = 4 },
|
||||
{ .description = "5", .value = 5 },
|
||||
{ .description = "6", .value = 6 },
|
||||
{ .description = "7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "D000H", 0xd0000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "D000H", .value = 0xd0000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t aha_154x_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x334, "", { 0 },
|
||||
{
|
||||
{ "None", 0 },
|
||||
{ "0x330", 0x330 },
|
||||
{ "0x334", 0x334 },
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x234", 0x234 },
|
||||
{ "0x130", 0x130 },
|
||||
{ "0x134", 0x134 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x334,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "None", .value = 0 },
|
||||
{ .description = "0x330", .value = 0x330 },
|
||||
{ .description = "0x334", .value = 0x334 },
|
||||
{ .description = "0x230", .value = 0x230 },
|
||||
{ .description = "0x234", .value = 0x234 },
|
||||
{ .description = "0x130", .value = 0x130 },
|
||||
{ .description = "0x134", .value = 0x134 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 11, "", { 0 },
|
||||
{
|
||||
{ "IRQ 9", 9 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 12", 12 },
|
||||
{ "IRQ 14", 14 },
|
||||
{ "IRQ 15", 15 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 11,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 12", .value = 12 },
|
||||
{ .description = "IRQ 14", .value = 14 },
|
||||
{ .description = "IRQ 15", .value = 15 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"dma", "DMA channel", CONFIG_SELECTION, "", 6, "", { 0 },
|
||||
{
|
||||
{ "DMA 5", 5 },
|
||||
{ "DMA 6", 6 },
|
||||
{ "DMA 7", 7 },
|
||||
{ "" }
|
||||
.name = "dma",
|
||||
.description = "DMA channel",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 6,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DMA 5", .value = 5 },
|
||||
{ .description = "DMA 6", .value = 6 },
|
||||
{ .description = "DMA 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "D000H", 0xd0000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "D000H", .value = 0xd0000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t aha_154xcf_config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x334, "", { 0 },
|
||||
{
|
||||
{ "None", 0 },
|
||||
{ "0x330", 0x330 },
|
||||
{ "0x334", 0x334 },
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x234", 0x234 },
|
||||
{ "0x130", 0x130 },
|
||||
{ "0x134", 0x134 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x334,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "None", .value = 0 },
|
||||
{ .description = "0x330", .value = 0x330 },
|
||||
{ .description = "0x334", .value = 0x334 },
|
||||
{ .description = "0x230", .value = 0x230 },
|
||||
{ .description = "0x234", .value = 0x234 },
|
||||
{ .description = "0x130", .value = 0x130 },
|
||||
{ .description = "0x134", .value = 0x134 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 11, "", { 0 },
|
||||
{
|
||||
{ "IRQ 9", 9 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 12", 12 },
|
||||
{ "IRQ 14", 14 },
|
||||
{ "IRQ 15", 15 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 11,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 12", .value = 12 },
|
||||
{ .description = "IRQ 14", .value = 14 },
|
||||
{ .description = "IRQ 15", .value = 15 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"dma", "DMA channel", CONFIG_SELECTION, "", 6, "", { 0 },
|
||||
{
|
||||
{ "DMA 5", 5 },
|
||||
{ "DMA 6", 6 },
|
||||
{ "DMA 7", 7 },
|
||||
{ "" }
|
||||
.name = "dma",
|
||||
.description = "DMA channel",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 6,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DMA 5", .value = 5 },
|
||||
{ .description = "DMA 6", .value = 6 },
|
||||
{ .description = "DMA 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "D000H", 0xd0000 },
|
||||
{ "D400H", 0xd4000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "D000H", .value = 0xd0000 },
|
||||
{ .description = "D400H", .value = 0xd4000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"fdc_addr", "FDC address", CONFIG_HEX16, "", 0, "", { 0 },
|
||||
{
|
||||
{ "None", 0 },
|
||||
{ "0x3f0", FDC_PRIMARY_ADDR },
|
||||
{ "0x370", FDC_SECONDARY_ADDR },
|
||||
{ "" }
|
||||
.name = "fdc_addr",
|
||||
.description = "FDC address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "None", .value = 0 },
|
||||
{ .description = "0x3f0", .value = FDC_PRIMARY_ADDR },
|
||||
{ .description = "0x370", .value = FDC_SECONDARY_ADDR },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -1805,54 +1805,84 @@ buslogic_init(const device_t *info)
|
||||
// clang-format off
|
||||
static const device_config_t BT_ISA_Config[] = {
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x334, "", { 0 },
|
||||
{
|
||||
{ "0x330", 0x330 },
|
||||
{ "0x334", 0x334 },
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x234", 0x234 },
|
||||
{ "0x130", 0x130 },
|
||||
{ "0x134", 0x134 },
|
||||
{ "", 0 }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x334,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "0x330", .value = 0x330 },
|
||||
{ .description = "0x334", .value = 0x334 },
|
||||
{ .description = "0x230", .value = 0x230 },
|
||||
{ .description = "0x234", .value = 0x234 },
|
||||
{ .description = "0x130", .value = 0x130 },
|
||||
{ .description = "0x134", .value = 0x134 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 11, "", { 0 },
|
||||
{
|
||||
{ "IRQ 9", 9 },
|
||||
{ "IRQ 10", 10 },
|
||||
{ "IRQ 11", 11 },
|
||||
{ "IRQ 12", 12 },
|
||||
{ "IRQ 14", 14 },
|
||||
{ "IRQ 15", 15 },
|
||||
{ "", 0 }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 11,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 9", .value = 9 },
|
||||
{ .description = "IRQ 10", .value = 10 },
|
||||
{ .description = "IRQ 11", .value = 11 },
|
||||
{ .description = "IRQ 12", .value = 12 },
|
||||
{ .description = "IRQ 14", .value = 14 },
|
||||
{ .description = "IRQ 15", .value = 15 },
|
||||
{ .description = "", 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"dma", "DMA channel", CONFIG_SELECTION, "", 6, "", { 0 },
|
||||
{
|
||||
{ "DMA 5", 5 },
|
||||
{ "DMA 6", 6 },
|
||||
{ "DMA 7", 7 },
|
||||
{ "", 0 }
|
||||
.name = "dma",
|
||||
.description = "DMA channel",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 6,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "DMA 5", .value = 5 },
|
||||
{ .description = "DMA 6", .value = 6 },
|
||||
{ .description = "DMA 7", .value = 7 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "D000H", 0xd0000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "", 0 }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "D000H", .value = 0xd0000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "", .value = 0 }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t BT958D_Config[] = {
|
||||
{ "bios", "Enable BIOS", CONFIG_BINARY, "", 0 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "bios",
|
||||
.description = "Enable BIOS",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -1594,116 +1594,180 @@ corel_ls2000_available(void)
|
||||
// clang-format off
|
||||
static const device_config_t ncr5380_mmio_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0xD8000, "", { 0 },
|
||||
{
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t rancho_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0xD8000, "", { 0 },
|
||||
{
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"bios_ver", "BIOS Version", CONFIG_SELECTION, "", 1, "", { 0 },
|
||||
{
|
||||
{ "8.20R", 1 },
|
||||
{ "8.10R", 0 },
|
||||
{ "" }
|
||||
.name = "bios_ver",
|
||||
.description = "BIOS Version",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 1,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "8.20R", .value = 1 },
|
||||
{ .description = "8.10R", .value = 0 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t t130b_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0xD8000, "", { 0 },
|
||||
{
|
||||
{ "Disabled", 0 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0350, "", { 0 },
|
||||
{
|
||||
{ "240H", 0x0240 },
|
||||
{ "250H", 0x0250 },
|
||||
{ "340H", 0x0340 },
|
||||
{ "350H", 0x0350 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0350,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "240H", .value = 0x0240 },
|
||||
{ .description = "250H", .value = 0x0250 },
|
||||
{ .description = "340H", .value = 0x0340 },
|
||||
{ .description = "350H", .value = 0x0350 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t t128_config[] = {
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0xD8000, "", { 0 },
|
||||
{
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "" }
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xD8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "D800H", .value = 0xd8000 },
|
||||
{ .description = "DC00H", .value = 0xdc000 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"irq", "IRQ", CONFIG_SELECTION, "", 5, "", { 0 },
|
||||
{
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner ={ 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 3", .value = 3 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "IRQ 7", .value = 7 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"boot", "Enable Boot ROM", CONFIG_BINARY, "", 1
|
||||
.name = "boot",
|
||||
.description = "Enable Boot ROM",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -2636,15 +2636,21 @@ ncr53c8xx_close(void *priv)
|
||||
static const device_config_t ncr53c8xx_pci_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"bios", "BIOS", CONFIG_SELECTION, "", 1, "", { 0 },
|
||||
{
|
||||
{ "SDMS 4.x BIOS", 2 },
|
||||
{ "SDMS 3.x BIOS", 1 },
|
||||
{ "Disable BIOS", 0 },
|
||||
{ "" }
|
||||
.name = "bios",
|
||||
.description = "BIOS",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 1,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "SDMS 4.x BIOS", .value = 2 },
|
||||
{ .description = "SDMS 3.x BIOS", .value = 1 },
|
||||
{ .description = "Disable BIOS", .value = 0 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -2002,11 +2002,13 @@ esp_close(void *priv)
|
||||
static const device_config_t bios_enable_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"bios", "Enable BIOS", CONFIG_BINARY, "", 0
|
||||
.name = "bios",
|
||||
.description = "Enable BIOS",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -1159,14 +1159,20 @@ spock_available(void)
|
||||
static const device_config_t spock_rom_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"bios_ver", "BIOS Version", CONFIG_SELECTION, "", 1, "", { 0 },
|
||||
{
|
||||
{ "1991 BIOS (>1GB)", 1 },
|
||||
{ "1990 BIOS", 0 },
|
||||
{ "" }
|
||||
.name = "bios_ver",
|
||||
.description = "BIOS Version",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 1,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "1991 BIOS (>1GB)", .value = 1 },
|
||||
{ .description = "1990 BIOS", .value = 0 },
|
||||
{ .description = "" }
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -541,9 +541,7 @@ static const device_config_t fluidsynth_config[] = {
|
||||
},
|
||||
.default_int = 2
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -368,9 +368,7 @@ static const device_config_t mt32_config[] = {
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -234,57 +234,73 @@ rtmidi_in_get_dev_name(int num, char *s)
|
||||
|
||||
static const device_config_t system_midi_config[] = {
|
||||
{
|
||||
"midi", "MIDI out device", CONFIG_MIDI_OUT, "", 0
|
||||
.name = "midi",
|
||||
.description = "MIDI out device",
|
||||
.type = CONFIG_MIDI_OUT,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t midi_input_config[] = {
|
||||
{
|
||||
"midi_input", "MIDI in device", CONFIG_MIDI_IN, "", 0
|
||||
.name = "midi_input",
|
||||
.description = "MIDI in device",
|
||||
.type = CONFIG_MIDI_IN,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
"realtime", "MIDI Real time", CONFIG_BINARY, "", 0
|
||||
.name = "realtime",
|
||||
.description = "MIDI Real time",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
"thruchan", "MIDI Thru", CONFIG_BINARY, "", 1
|
||||
.name = "thruchan",
|
||||
.description = "MIDI Thru",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"clockout", "MIDI Clockout", CONFIG_BINARY, "", 1
|
||||
.name = "clockout",
|
||||
.description = "MIDI Clockout",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
const device_t rtmidi_output_device = {
|
||||
SYSTEM_MIDI_NAME,
|
||||
SYSTEM_MIDI_INTERNAL_NAME,
|
||||
0, 0,
|
||||
rtmidi_output_init,
|
||||
rtmidi_output_close,
|
||||
NULL,
|
||||
{ rtmidi_out_get_num_devs },
|
||||
NULL,
|
||||
NULL,
|
||||
system_midi_config
|
||||
.name = SYSTEM_MIDI_NAME,
|
||||
.internal_name = SYSTEM_MIDI_INTERNAL_NAME,
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = rtmidi_output_init,
|
||||
.close = rtmidi_output_close,
|
||||
.reset = NULL,
|
||||
{ .available = rtmidi_out_get_num_devs },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = system_midi_config
|
||||
};
|
||||
|
||||
|
||||
const device_t rtmidi_input_device =
|
||||
{
|
||||
MIDI_INPUT_NAME,
|
||||
MIDI_INPUT_INTERNAL_NAME,
|
||||
0, 0,
|
||||
rtmidi_input_init,
|
||||
rtmidi_input_close,
|
||||
NULL,
|
||||
{ rtmidi_in_get_num_devs },
|
||||
NULL,
|
||||
NULL,
|
||||
midi_input_config
|
||||
const device_t rtmidi_input_device = {
|
||||
.name = MIDI_INPUT_NAME,
|
||||
.internal_name = MIDI_INPUT_INTERNAL_NAME,
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = rtmidi_input_init,
|
||||
.close = rtmidi_input_close,
|
||||
.reset = NULL,
|
||||
{ .available = rtmidi_in_get_num_devs },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = midi_input_config
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -982,10 +982,28 @@ adgold_close(void *p)
|
||||
|
||||
static const device_config_t adgold_config[] = {
|
||||
// clang-format off
|
||||
{ "gameport", "Enable Game port", CONFIG_BINARY, "", 1 },
|
||||
{ "surround", "Surround module", CONFIG_BINARY, "", 1 },
|
||||
{ "receive_input", "Receive input (MIDI)", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "gameport",
|
||||
.description = "Enable Game port",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "surround",
|
||||
.description = "Surround module",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (MIDI)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -2055,46 +2055,54 @@ es1371_speed_changed(void *p)
|
||||
static const device_config_t es1371_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
.name = "codec",
|
||||
.description = "CODEC",
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Asahi Kasei AK4540",
|
||||
.value = AC97_CODEC_AK4540
|
||||
}, {
|
||||
.description = "Crystal CS4297",
|
||||
.value = AC97_CODEC_CS4297
|
||||
}, {
|
||||
.description = "Crystal CS4297A",
|
||||
.value = AC97_CODEC_CS4297A
|
||||
}, {
|
||||
.description = "SigmaTel STAC9708",
|
||||
.value = AC97_CODEC_STAC9708
|
||||
}, {
|
||||
.description = "SigmaTel STAC9721",
|
||||
.value = AC97_CODEC_STAC9721
|
||||
}
|
||||
},
|
||||
.default_int = AC97_CODEC_CS4297A
|
||||
.name = "codec",
|
||||
.description = "CODEC",
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Asahi Kasei AK4540",
|
||||
.value = AC97_CODEC_AK4540
|
||||
},
|
||||
{
|
||||
.description = "Crystal CS4297",
|
||||
.value = AC97_CODEC_CS4297
|
||||
},
|
||||
{
|
||||
.description = "Crystal CS4297A",
|
||||
.value = AC97_CODEC_CS4297A
|
||||
},
|
||||
{
|
||||
.description = "SigmaTel STAC9708",
|
||||
.value = AC97_CODEC_STAC9708
|
||||
},
|
||||
{
|
||||
.description = "SigmaTel STAC9721",
|
||||
.value = AC97_CODEC_STAC9721
|
||||
}
|
||||
},
|
||||
.default_int = AC97_CODEC_CS4297A
|
||||
},
|
||||
{
|
||||
"receive_input", "Receive input (MIDI)", CONFIG_BINARY, "", 1
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (MIDI)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
static const device_config_t es1371_onboard_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"receive_input", "Receive input (MIDI)", CONFIG_BINARY, "", 1
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (MIDI)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -1251,12 +1251,29 @@ static const device_config_t azt1605_config[] = {
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
"addr", "SB Address", CONFIG_HEX16, "", 0, "", { 0 },
|
||||
{
|
||||
{ "0x220", 0x220 },
|
||||
{ "0x240", 0x240 },
|
||||
{ "Use EEPROM setting", 0 },
|
||||
{ "" }
|
||||
.name = "addr",
|
||||
.description = "SB Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x220",
|
||||
.value = 0x220
|
||||
},
|
||||
{
|
||||
.description = "0x240",
|
||||
.value = 0x240
|
||||
},
|
||||
{
|
||||
.description = "Use EEPROM setting",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1328,10 +1345,28 @@ static const device_config_t azt1605_config[] = {
|
||||
},
|
||||
.default_int = 0
|
||||
},
|
||||
{ "opl", "Enable OPL", CONFIG_BINARY, "", 1 },
|
||||
{ "receive_input", "Receive input (SB MIDI)", CONFIG_BINARY, "", 1 },
|
||||
{ "receive_input401", "Receive input (MPU-401)", CONFIG_BINARY, "", 0 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "opl",
|
||||
.description = "Enable OPL",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (SB MIDI)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "receive_input401",
|
||||
.description = "Receive input (MPU-401)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -1341,8 +1376,7 @@ static const device_config_t azt2316a_config[] = {
|
||||
.name = "codec",
|
||||
.description = "CODEC",
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection =
|
||||
{
|
||||
.selection = {
|
||||
{
|
||||
.description = "CS4248",
|
||||
.value = AD1848_TYPE_CS4248
|
||||
@@ -1361,20 +1395,36 @@ static const device_config_t azt2316a_config[] = {
|
||||
.default_int = 0
|
||||
},
|
||||
{
|
||||
"addr", "SB Address", CONFIG_HEX16, "", 0, "", { 0 },
|
||||
{
|
||||
{ "0x220", 0x220 },
|
||||
{ "0x240", 0x240 },
|
||||
{ "Use EEPROM setting", 0 },
|
||||
{ "" }
|
||||
.name = "addr",
|
||||
.description = "SB Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x220",
|
||||
.value = 0x220
|
||||
},
|
||||
{
|
||||
.description = "0x240",
|
||||
.value = 0x240
|
||||
},
|
||||
{
|
||||
.description = "Use EEPROM setting",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "wss_irq",
|
||||
.description = "WSS IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection =
|
||||
{
|
||||
.selection = {
|
||||
{
|
||||
.description = "IRQ 11",
|
||||
.value = 11
|
||||
@@ -1397,8 +1447,7 @@ static const device_config_t azt2316a_config[] = {
|
||||
.name = "wss_dma",
|
||||
.description = "WSS DMA",
|
||||
.type = CONFIG_SELECTION,
|
||||
.selection =
|
||||
{
|
||||
.selection = {
|
||||
{
|
||||
.description = "DMA 0",
|
||||
.value = 0
|
||||
@@ -1417,10 +1466,28 @@ static const device_config_t azt2316a_config[] = {
|
||||
},
|
||||
.default_int = 0
|
||||
},
|
||||
{ "opl", "Enable OPL", CONFIG_BINARY, "", 1 },
|
||||
{ "receive_input", "Receive input (SB MIDI)", CONFIG_BINARY, "", 1 },
|
||||
{ "receive_input401", "Receive input (MPU-401)", CONFIG_BINARY, "", 0 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "opl",
|
||||
.description = "Enable OPL",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (SB MIDI)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "receive_input401",
|
||||
.description = "Receive input (MPU-401)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 0
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -1446,16 +1446,34 @@ cmi8x38_close(void *priv)
|
||||
|
||||
static const device_config_t cmi8x38_config[] = {
|
||||
// clang-format off
|
||||
{ "receive_input", "Receive input (MPU-401)", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (MPU-401)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
static const device_config_t cmi8738_config[] = {
|
||||
// clang-format off
|
||||
{ "six_channel", "6CH variant (6-channel)", CONFIG_BINARY, "", 1 },
|
||||
{ "receive_input", "Receive input (MPU-401)", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "six_channel",
|
||||
.description = "6CH variant (6-channel)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (MPU-401)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -189,20 +189,44 @@ cms_close(void *p)
|
||||
static const device_config_t cms_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x220, "", { 0 },
|
||||
{
|
||||
{ "0x210", 0x210 },
|
||||
{ "0x220", 0x220 },
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x240", 0x240 },
|
||||
{ "0x250", 0x250 },
|
||||
{ "0x260", 0x260 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x220,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x210",
|
||||
.value = 0x210
|
||||
},
|
||||
{
|
||||
.description = "0x220",
|
||||
.value = 0x220
|
||||
},
|
||||
{
|
||||
.description = "0x230",
|
||||
.value = 0x230
|
||||
},
|
||||
{
|
||||
.description = "0x240",
|
||||
.value = 0x240
|
||||
},
|
||||
{
|
||||
.description = "0x250",
|
||||
.value = 0x250
|
||||
},
|
||||
{
|
||||
.description = "0x260",
|
||||
.value = 0x260
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -1204,37 +1204,94 @@ gus_speed_changed(void *p)
|
||||
static const device_config_t gus_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"type", "GUS type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Classic", GUS_CLASSIC },
|
||||
.name = "type",
|
||||
.description = "GUS type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "Classic",
|
||||
.value = GUS_CLASSIC
|
||||
},
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
{ "MAX", GUS_MAX },
|
||||
{
|
||||
.description = "MAX",
|
||||
.value = GUS_MAX
|
||||
},
|
||||
#endif
|
||||
{ NULL }
|
||||
{ NULL }
|
||||
},
|
||||
},
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x220, "", { 0 },
|
||||
{
|
||||
{ "210H", 0x210 },
|
||||
{ "220H", 0x220 },
|
||||
{ "230H", 0x230 },
|
||||
{ "240H", 0x240 },
|
||||
{ "250H", 0x250 },
|
||||
{ "260H", 0x260 },
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x220,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "210H",
|
||||
.value = 0x210
|
||||
},
|
||||
{
|
||||
.description = "220H",
|
||||
.value = 0x220
|
||||
},
|
||||
{
|
||||
.description = "230H",
|
||||
.value = 0x230
|
||||
},
|
||||
{
|
||||
.description = "240H",
|
||||
.value = 0x240
|
||||
},
|
||||
{
|
||||
.description = "250H",
|
||||
.value = 0x250
|
||||
},
|
||||
{
|
||||
.description = "260H",
|
||||
.value = 0x260
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"gus_ram", "Onboard RAM", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "256 KB", 0 },
|
||||
{ "512 KB", 1 },
|
||||
{ "1 MB", 2 },
|
||||
{ NULL }
|
||||
.name = "gus_ram",
|
||||
"Onboard RAM",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 KB",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "512 KB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 2
|
||||
},
|
||||
{ NULL }
|
||||
}
|
||||
},
|
||||
{ "receive_input", "Receive input (SB MIDI)", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "receive_input",
|
||||
.description = "Receive input (SB MIDI)",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format off
|
||||
};
|
||||
|
||||
|
||||
@@ -1806,30 +1806,87 @@ mpu401_standalone_close(void *priv)
|
||||
static const device_config_t mpu401_standalone_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "MPU-401 Address", CONFIG_HEX16, "", 0x330, "", { 0 },
|
||||
{
|
||||
{ "0x220", 0x220 },
|
||||
{ "0x230", 0x230 },
|
||||
{ "0x240", 0x240 },
|
||||
{ "0x250", 0x250 },
|
||||
{ "0x300", 0x300 },
|
||||
{ "0x320", 0x320 },
|
||||
{ "0x330", 0x330 },
|
||||
{ "0x340", 0x340 },
|
||||
{ "0x350", 0x350 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "MPU-401 Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x330,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x220",
|
||||
.value = 0x220
|
||||
},
|
||||
{
|
||||
.description = "0x230",
|
||||
.value = 0x230
|
||||
},
|
||||
{
|
||||
.description = "0x240",
|
||||
.value = 0x240
|
||||
},
|
||||
{
|
||||
.description = "0x250",
|
||||
.value = 0x250
|
||||
},
|
||||
{
|
||||
.description = "0x300",
|
||||
.value = 0x300
|
||||
},
|
||||
{
|
||||
.description = "0x320",
|
||||
.value = 0x320
|
||||
},
|
||||
{
|
||||
.description = "0x330",
|
||||
.value = 0x330
|
||||
},
|
||||
{
|
||||
.description = "0x340",
|
||||
.value = 0x340
|
||||
},
|
||||
{
|
||||
.description = "0x350",
|
||||
.value = 0x350
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"irq", "MPU-401 IRQ", CONFIG_SELECTION, "", 2, "", { 0 },
|
||||
{
|
||||
{ "IRQ 2", 2 },
|
||||
{ "IRQ 3", 3 },
|
||||
{ "IRQ 4", 4 },
|
||||
{ "IRQ 5", 5 },
|
||||
{ "IRQ 6", 6 },
|
||||
{ "IRQ 7", 7 },
|
||||
{ "" }
|
||||
.name = "irq",
|
||||
.description = "MPU-401 IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 2,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "IRQ 2",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "IRQ 3",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = "IRQ 4",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = "IRQ 5",
|
||||
.value = 5
|
||||
},
|
||||
{
|
||||
.description = "IRQ 6",
|
||||
.value = 6
|
||||
},
|
||||
{
|
||||
.description = "IRQ 7",
|
||||
.value = 7
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1838,7 +1895,7 @@ static const device_config_t mpu401_standalone_config[] = {
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -1850,9 +1907,7 @@ static const device_config_t mpu401_standalone_mca_config[] = {
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -239,15 +239,30 @@ pssj_close(void *p)
|
||||
static const device_config_t pssj_isa_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x2C0, "", { 0 },
|
||||
{
|
||||
{ "0x0C0", 0x0C0 },
|
||||
{ "0x1E0", 0x1E0 },
|
||||
{ "0x2C0", 0x2C0 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x2C0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x0C0",
|
||||
.value = 0x0C0
|
||||
},
|
||||
{
|
||||
.description = "0x1E0",
|
||||
.value = 0x1E0
|
||||
},
|
||||
{
|
||||
.description = "0x2C0",
|
||||
.value = 0x2C0
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
#endif
|
||||
@@ -277,7 +292,7 @@ const device_t pssj_1e0_device = {
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
|
||||
1340
src/sound/snd_sb.c
1340
src/sound/snd_sb.c
File diff suppressed because it is too large
Load Diff
@@ -247,15 +247,30 @@ sn76489_device_close(void *p)
|
||||
static const device_config_t tndy_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0x0C0, "", { 0 },
|
||||
{
|
||||
{ "0x0C0", 0x0C0 },
|
||||
{ "0x1E0", 0x1E0 },
|
||||
{ "0x2C0", 0x2C0 },
|
||||
{ "" }
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0C0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x0C0",
|
||||
.value = 0x0C0
|
||||
},
|
||||
{
|
||||
.description = "0x1E0",
|
||||
.value = 0x1E0
|
||||
},
|
||||
{
|
||||
.description = "0x2C0",
|
||||
.value = 0x2C0
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -92,13 +92,32 @@ ssi2001_close(void *p)
|
||||
|
||||
static const device_config_t ssi2001_config[] = {
|
||||
// clang-format off
|
||||
{ "base", "Address", CONFIG_HEX16, "", 0x280, "", { 0 },
|
||||
{
|
||||
{ "0x280", 0x280 },
|
||||
{ "0x2A0", 0x2A0 },
|
||||
{ "0x2C0", 0x2C0 },
|
||||
{ "0x2E0", 0x2E0 },
|
||||
{ "" }
|
||||
{
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x280,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x280",
|
||||
.value = 0x280
|
||||
},
|
||||
{
|
||||
.description = "0x2A0",
|
||||
.value = 0x2A0
|
||||
},
|
||||
{
|
||||
.description = "0x2C0",
|
||||
.value = 0x2C0
|
||||
},
|
||||
{
|
||||
.description = "0x2E0",
|
||||
.value = 0x2E0
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "gameport", "Enable Game port", CONFIG_BINARY, "", 1 },
|
||||
|
||||
@@ -228,17 +228,42 @@ wss_speed_changed(void *priv)
|
||||
|
||||
static const device_config_t wss_config[] = {
|
||||
// clang-format off
|
||||
{ "base", "Address", CONFIG_HEX16, "", 0x530, "", { 0 },
|
||||
{
|
||||
{ "0x530", 0x530 },
|
||||
{ "0x604", 0x604 },
|
||||
{ "0xe80", 0xe80 },
|
||||
{ "0xf40", 0xf40 },
|
||||
{ "" }
|
||||
{
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x530,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{
|
||||
.description = "0x530",
|
||||
.value = 0x530
|
||||
},
|
||||
{
|
||||
.description = "0x604",
|
||||
.value = 0x604
|
||||
},
|
||||
{
|
||||
.description = "0xe80",
|
||||
.value = 0xe80
|
||||
},
|
||||
{
|
||||
.description = "0xf40",
|
||||
.value = 0xf40
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ "opl", "Enable OPL", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "opl",
|
||||
.description = "Enable OPL",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_string = "",
|
||||
.default_int = 1
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -708,29 +708,61 @@ ati28800_force_redraw(void *priv)
|
||||
// clang-format off
|
||||
static const device_config_t ati28800_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 512, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_XL24)
|
||||
static const device_config_t ati28800_wonderxl_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 512, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
#endif
|
||||
// clang-format on
|
||||
|
||||
@@ -3684,27 +3684,56 @@ void mach64_force_redraw(void *p)
|
||||
// clang-format off
|
||||
static const device_config_t mach64gx_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "1 MB", 1 },
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t mach64vt2_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -578,37 +578,82 @@ cga_speed_changed(void *p)
|
||||
// clang-format off
|
||||
const device_config_t cga_config[] = {
|
||||
{
|
||||
"display_type", "Display type", CONFIG_SELECTION, "", CGA_RGB, "", { 0 },
|
||||
{
|
||||
{ "RGB", CGA_RGB },
|
||||
{ "Composite", CGA_COMPOSITE },
|
||||
{ "" }
|
||||
.name = "display_type",
|
||||
.description = "Display type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = CGA_RGB,
|
||||
.selection = {
|
||||
{
|
||||
.description = "RGB",
|
||||
.value = CGA_RGB
|
||||
},
|
||||
{
|
||||
.description = "Composite",
|
||||
.value = CGA_COMPOSITE
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"composite_type", "Composite type", CONFIG_SELECTION, "", COMPOSITE_OLD, "", { 0 },
|
||||
{
|
||||
{ "Old", COMPOSITE_OLD },
|
||||
{ "New", COMPOSITE_NEW },
|
||||
{ "" }
|
||||
.name = "composite_type",
|
||||
.description = "Composite type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = COMPOSITE_OLD,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Old",
|
||||
.value = COMPOSITE_OLD
|
||||
},
|
||||
{
|
||||
.description = "New",
|
||||
.value = COMPOSITE_NEW
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"rgb_type", "RGB type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Color", 0 },
|
||||
{ "Green Monochrome", 1 },
|
||||
{ "Amber Monochrome", 2 },
|
||||
{ "Gray Monochrome", 3 },
|
||||
{ "Color (no brown)", 4 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "RGB type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Color",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green Monochrome",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber Monochrome",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray Monochrome",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = "Color (no brown)",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"snow_enabled", "Snow emulation", CONFIG_BINARY, "", 1
|
||||
.name = "snow_enabled",
|
||||
.description = "Snow emulation",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -4304,7 +4304,7 @@ static const device_config_t gd542x_config[] = {
|
||||
.default_int = 512
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4333,7 +4333,7 @@ static const device_config_t gd5426_config[] = {
|
||||
.default_int = 2048
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4362,7 +4362,7 @@ static const device_config_t gd5428_onboard_config[] = {
|
||||
.default_int = 2048
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4387,7 +4387,7 @@ static const device_config_t gd5429_config[] = {
|
||||
.default_int = 2
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4412,7 +4412,7 @@ static const device_config_t gd5440_onboard_config[] = {
|
||||
.default_int = 2
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4441,7 +4441,7 @@ static const device_config_t gd5434_config[] = {
|
||||
.default_int = 4
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4470,7 +4470,7 @@ static const device_config_t gd5434_onboard_config[] = {
|
||||
.default_int = 4
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -427,27 +427,55 @@ void colorplus_speed_changed(void *p)
|
||||
cga_recalctimings(&colorplus->cga);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t colorplus_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"display_type", "Display type", CONFIG_SELECTION, "", CGA_RGB, "", { 0 },
|
||||
{
|
||||
{ "RGB", CGA_RGB },
|
||||
{ "Composite", CGA_COMPOSITE },
|
||||
{ "" }
|
||||
.name = "display_type",
|
||||
.description = "Display type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = CGA_RGB,
|
||||
.selection = {
|
||||
{
|
||||
.description = "RGB",
|
||||
.value = CGA_RGB
|
||||
},
|
||||
{
|
||||
.description = "Composite",
|
||||
.value = CGA_COMPOSITE
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"composite_type", "Composite type", CONFIG_SELECTION, "", COMPOSITE_OLD, "", { 0 },
|
||||
{
|
||||
{ "Old", COMPOSITE_OLD },
|
||||
{ "New", COMPOSITE_NEW },
|
||||
{ "" }
|
||||
.name = "composite_type",
|
||||
.description = "Composite type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = COMPOSITE_OLD,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Old",
|
||||
.value = COMPOSITE_OLD
|
||||
},
|
||||
{
|
||||
.description = "New",
|
||||
.value = COMPOSITE_NEW
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "snow_enabled", "Snow emulation", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "snow_enabled",
|
||||
.description = "Snow emulation",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -1179,13 +1179,30 @@ ega_speed_changed(void *p)
|
||||
static const device_config_t ega_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 256, "", { 0 },
|
||||
{
|
||||
{ "32 kB", 32 },
|
||||
{ "64 kB", 64 },
|
||||
{ "128 kB", 128 },
|
||||
{ "256 kB", 256 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 256,
|
||||
.selection = {
|
||||
{
|
||||
.description = "32 kB",
|
||||
.value = 32
|
||||
},
|
||||
{
|
||||
.description = "64 kB",
|
||||
.value = 64
|
||||
},
|
||||
{
|
||||
.description = "128 kB",
|
||||
.value = 128
|
||||
},
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1228,7 +1245,7 @@ static const device_config_t ega_config[] = {
|
||||
.default_int = 9
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -807,15 +807,31 @@ et4000_kasan_available(void)
|
||||
static const device_config_t et4000_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1024, "", { 0 },
|
||||
{
|
||||
{ "256 KB", 256 },
|
||||
{ "512 KB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -2193,14 +2193,27 @@ et4000w32p_force_redraw(void *p)
|
||||
static const device_config_t et4000w32p_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 2, "", { 0 },
|
||||
{
|
||||
{ "1 MB", 1 },
|
||||
{ "2 MB", 2 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 2,
|
||||
.selection = {
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -608,21 +608,44 @@ speed_changed(void *priv)
|
||||
recalc_timings(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t hercules_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"rgb_type", "Display type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Default", 0 },
|
||||
{ "Green", 1 },
|
||||
{ "Amber", 2 },
|
||||
{ "Gray", 3 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "Display type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Default",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "blend", "Blend", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "blend",
|
||||
.description = "Blend",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -693,21 +693,44 @@ speed_changed(void *priv)
|
||||
recalc_timings(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t herculesplus_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"rgb_type", "Display type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Default", 0 },
|
||||
{ "Green", 1 },
|
||||
{ "Amber", 2 },
|
||||
{ "Gray", 3 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "Display type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Default",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "blend", "Blend", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "blend",
|
||||
.description = "Blend",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -1621,44 +1621,88 @@ ht216_force_redraw(void *p)
|
||||
ht216->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t v7_vga_1024i_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 512, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
static const device_config_t ht216_32_standalone_config[] = {
|
||||
{
|
||||
"monitor_type", "Monitor type", CONFIG_SELECTION, "", 0x18, "", { 0 },
|
||||
{
|
||||
{ "Mono Interlaced", 0x00 },
|
||||
{ "Mono Non-Interlaced", 0x08 },
|
||||
{ "Color Interlaced", 0x10 },
|
||||
{ "Color Non-Interlaced", 0x18 },
|
||||
{ "" }
|
||||
.name = "monitor_type",
|
||||
.description = "Monitor type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0x18,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Mono Interlaced",
|
||||
.value = 0x00
|
||||
},
|
||||
{
|
||||
.description = "Mono Non-Interlaced",
|
||||
.value = 0x08
|
||||
},
|
||||
{
|
||||
.description = "Color Interlaced",
|
||||
.value = 0x10
|
||||
},
|
||||
{
|
||||
.description = "Color Non-Interlaced",
|
||||
.value = 0x18
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t radius_svga_multiview_config[] = {
|
||||
{
|
||||
"extensions", "Extensions", CONFIG_SELECTION, "", 0x00, "", { 0 },
|
||||
{
|
||||
{ "Extensions Enabled", 0x00 },
|
||||
{ "Extensions Disabled", 0x02 },
|
||||
{ "" }
|
||||
.name = "extensions",
|
||||
.description = "Extensions",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0x00,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Extensions Enabled",
|
||||
.value = 0x00
|
||||
},
|
||||
{
|
||||
.description = "Extensions Disabled",
|
||||
.value = 0x02
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -1729,8 +1773,7 @@ const device_t radius_svga_multiview_isa_device = {
|
||||
{ .available = radius_svga_multiview_available },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
radius_svga_multiview_config,
|
||||
.config = NULL
|
||||
.config = radius_svga_multiview_config
|
||||
};
|
||||
|
||||
const device_t radius_svga_multiview_mca_device = {
|
||||
|
||||
@@ -330,16 +330,35 @@ void mda_speed_changed(void *p)
|
||||
static const device_config_t mda_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"rgb_type", "Display type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Default", 0 },
|
||||
{ "Green", 1 },
|
||||
{ "Amber", 2 },
|
||||
{ "Gray", 3 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "Display type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Default",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -5336,7 +5336,6 @@ mystique_force_redraw(void *p)
|
||||
mystique->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t mystique_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -5363,7 +5362,9 @@ static const device_config_t mystique_config[] = {
|
||||
},
|
||||
.default_int = 8
|
||||
},
|
||||
{ .type = -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -598,42 +598,94 @@ nga_init(const device_t *info)
|
||||
return nga;
|
||||
}
|
||||
|
||||
|
||||
const device_config_t nga_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"rgb_type", "RGB type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Color", 0 },
|
||||
{ "Green Monochrome", 1 },
|
||||
{ "Amber Monochrome", 2 },
|
||||
{ "Gray Monochrome", 3 },
|
||||
{ "Color (no brown)", 4 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "RGB type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Color",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green Monochrome",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber Monochrome",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray Monochrome",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = "Color (no brown)",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"snow_enabled", "Snow emulation", CONFIG_BINARY, "", 1
|
||||
.name = "snow_enabled",
|
||||
.description = "Snow emulation",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 64, "", { 0 },
|
||||
{
|
||||
{ "32 KB", 32 },
|
||||
{ "64 KB", 64 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 64,
|
||||
.selection = {
|
||||
{
|
||||
.description = "32 KB",
|
||||
.value = 32
|
||||
},
|
||||
{
|
||||
.description = "64 KB",
|
||||
.value = 64
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"charset", "Character set", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "U.S. English", 0 },
|
||||
{ "Scandinavian", 1 },
|
||||
{ "Other languages", 2 },
|
||||
{ "E.F. Hutton", 3 },
|
||||
{ "" }
|
||||
.name = "charset",
|
||||
.description = "Character set",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "U.S. English",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Scandinavian",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Other languages",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "E.F. Hutton",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -500,43 +500,84 @@ oti067_m300_available(void)
|
||||
return(rom_present(BIOS_067_M300_08_PATH));
|
||||
}
|
||||
|
||||
|
||||
// clang-format off
|
||||
static const device_config_t oti067_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 512, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t oti067_ama932j_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 256, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 256,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t oti077_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1024, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -639,17 +639,41 @@ const device_config_t ogc_m24_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
/* Olivetti / ATT compatible displays */
|
||||
"rgb_type", "RGB type", CONFIG_SELECTION, "", CGA_RGB, "", { 0 },
|
||||
{
|
||||
{ "Color", 0 },
|
||||
{ "Green Monochrome", 1 },
|
||||
{ "Amber Monochrome", 2 },
|
||||
{ "Gray Monochrome", 3 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "RGB type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = CGA_RGB,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Color",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green Monochrome",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber Monochrome",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray Monochrome",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "snow_enabled", "Snow emulation", CONFIG_BINARY, "", 1, },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "snow_enabled",
|
||||
.description = "Snow emulation",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1,
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -717,126 +717,139 @@ void paradise_force_redraw(void *p)
|
||||
paradise->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
const device_t paradise_pvga1a_pc2086_device =
|
||||
{
|
||||
"Paradise PVGA1A (Amstrad PC2086)",
|
||||
"pvga1a_pc2086",
|
||||
0,
|
||||
PVGA1A,
|
||||
paradise_pvga1a_pc2086_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
NULL
|
||||
const device_t paradise_pvga1a_pc2086_device = {
|
||||
.name = "Paradise PVGA1A (Amstrad PC2086)",
|
||||
.internal_name = "pvga1a_pc2086",
|
||||
.flags = 0,
|
||||
.local = PVGA1A,
|
||||
.init = paradise_pvga1a_pc2086_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t paradise_pvga1a_pc3086_device =
|
||||
{
|
||||
"Paradise PVGA1A (Amstrad PC3086)",
|
||||
"pvga1a_pc3086",
|
||||
0,
|
||||
PVGA1A,
|
||||
paradise_pvga1a_pc3086_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
NULL
|
||||
const device_t paradise_pvga1a_pc3086_device = {
|
||||
.name = "Paradise PVGA1A (Amstrad PC3086)",
|
||||
.internal_name = "pvga1a_pc3086",
|
||||
.flags = 0,
|
||||
.local = PVGA1A,
|
||||
.init = paradise_pvga1a_pc3086_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const device_config_t paradise_pvga1a_config[] =
|
||||
{
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 512, "", { 0 },
|
||||
{
|
||||
{
|
||||
"256 kB", 256
|
||||
},
|
||||
{
|
||||
"512 kB", 512
|
||||
},
|
||||
{
|
||||
""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
static const device_config_t paradise_pvga1a_config[] = {
|
||||
{
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 512,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
const device_t paradise_pvga1a_ncr3302_device =
|
||||
{
|
||||
"Paradise PVGA1A (NCR 3302)",
|
||||
"pvga1a_ncr3302",
|
||||
0,
|
||||
PVGA1A,
|
||||
paradise_pvga1a_ncr3302_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
paradise_pvga1a_config
|
||||
const device_t paradise_pvga1a_ncr3302_device = {
|
||||
.name = "Paradise PVGA1A (NCR 3302)",
|
||||
.internal_name = "pvga1a_ncr3302",
|
||||
.flags = 0,
|
||||
.local = PVGA1A,
|
||||
.init = paradise_pvga1a_ncr3302_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = paradise_pvga1a_config
|
||||
};
|
||||
|
||||
const device_t paradise_pvga1a_device =
|
||||
{
|
||||
"Paradise PVGA1A",
|
||||
"pvga1a",
|
||||
DEVICE_ISA,
|
||||
PVGA1A,
|
||||
paradise_pvga1a_standalone_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ paradise_pvga1a_standalone_available },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
paradise_pvga1a_config
|
||||
const device_t paradise_pvga1a_device = {
|
||||
.name = "Paradise PVGA1A",
|
||||
.internal_name = "pvga1a",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = PVGA1A,
|
||||
.init = paradise_pvga1a_standalone_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = paradise_pvga1a_standalone_available },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = paradise_pvga1a_config
|
||||
};
|
||||
const device_t paradise_wd90c11_megapc_device =
|
||||
{
|
||||
"Paradise WD90C11 (Amstrad MegaPC)",
|
||||
"wd90c11_megapc",
|
||||
0,
|
||||
WD90C11,
|
||||
paradise_wd90c11_megapc_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
NULL
|
||||
|
||||
const device_t paradise_wd90c11_megapc_device = {
|
||||
.name = "Paradise WD90C11 (Amstrad MegaPC)",
|
||||
.internal_name = "wd90c11_megapc",
|
||||
.flags = 0,
|
||||
.local = WD90C11,
|
||||
.init = paradise_wd90c11_megapc_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
const device_t paradise_wd90c11_device =
|
||||
{
|
||||
"Paradise WD90C11-LR",
|
||||
"wd90c11",
|
||||
DEVICE_ISA,
|
||||
WD90C11,
|
||||
paradise_wd90c11_standalone_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ paradise_wd90c11_standalone_available },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
NULL
|
||||
|
||||
const device_t paradise_wd90c11_device = {
|
||||
.name = "Paradise WD90C11-LR",
|
||||
.internal_name = "wd90c11",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = WD90C11,
|
||||
.init = paradise_wd90c11_standalone_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = paradise_wd90c11_standalone_available },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const device_config_t paradise_wd90c30_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1024, "", { 0 },
|
||||
{
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -361,15 +361,31 @@ rtg_available(void)
|
||||
static const device_config_t rtg_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1024, "", { 0 },
|
||||
{
|
||||
{ "256 KB", 256 },
|
||||
{ "512 KB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 KB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 KB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
@@ -379,8 +395,8 @@ const device_t realtek_rtg3106_device = {
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 2,
|
||||
.init = rtg_init,
|
||||
.close = rtg_close,
|
||||
.reset = NULL,
|
||||
.close = rtg_close,
|
||||
.reset = NULL,
|
||||
{ .available = rtg_available },
|
||||
.speed_changed = rtg_speed_changed,
|
||||
.force_redraw = rtg_force_redraw,
|
||||
|
||||
@@ -7611,67 +7611,144 @@ static void s3_force_redraw(void *p)
|
||||
|
||||
static const device_config_t s3_orchid_86c911_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1, "", { 0 },
|
||||
{
|
||||
{ "512 KB", 0 },
|
||||
{ "1 MB", 1 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 KB",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_9fx_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 2, "", { 0 },
|
||||
{
|
||||
{ "1 MB", 1 },
|
||||
{ "2 MB", 2 },
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 2,
|
||||
.selection = {
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
/*Trio64 also supports 4 MB, however the Number Nine BIOS does not*/
|
||||
{ "" }
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_phoenix_trio32_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 2, "", { 0 },
|
||||
{
|
||||
{ "512 KB", 0 },
|
||||
{ "1 MB", 1 },
|
||||
{ "2 MB", 2 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 2,
|
||||
.selection = {
|
||||
{
|
||||
.description = "512 KB",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_standard_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "1 MB", 1 },
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_968_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "1 MB", 1 },
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "8 MB", 8 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = "8 MB",
|
||||
.value = 8
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
const device_t s3_orchid_86c911_isa_device = {
|
||||
|
||||
@@ -4219,51 +4219,135 @@ static void s3_virge_force_redraw(void *p)
|
||||
|
||||
static const device_config_t s3_virge_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "bilinear",
|
||||
.description = "Bilinear filtering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithering",
|
||||
.description = "Dithering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_virge_stb_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "8 MB", 8 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "2 MB",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = "8 MB",
|
||||
.value = 8
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "bilinear",
|
||||
.description = "Bilinear filtering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithering",
|
||||
.description = "Dithering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_virge_357_config[] = {
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "bilinear",
|
||||
.description = "Bilinear filtering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithering",
|
||||
.description = "Dithering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t s3_trio3d2x_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{ "4 MB", 4 },
|
||||
{ "8 MB", 8 },
|
||||
{ "" }
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 4,
|
||||
.selection = {
|
||||
{
|
||||
.description = "4 MB",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = "8 MB",
|
||||
.value = 8
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.name = "bilinear",
|
||||
.description = "Bilinear filtering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithering",
|
||||
.description = "Dithering",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
const device_t s3_virge_325_pci_device = {
|
||||
|
||||
@@ -880,39 +880,103 @@ sigma_speed_changed(void *p)
|
||||
sigma_recalctimings(sigma);
|
||||
}
|
||||
|
||||
|
||||
device_config_t sigma_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"rgb_type", "RGB type", CONFIG_SELECTION, "", 0, "", { 0 },
|
||||
{
|
||||
{ "Color", 0 },
|
||||
{ "Green Monochrome", 1 },
|
||||
{ "Amber Monochrome", 2 },
|
||||
{ "Gray Monochrome", 3 },
|
||||
{ "Color (no brown)", 4 },
|
||||
{ "" }
|
||||
.name = "rgb_type",
|
||||
.description = "RGB type",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 0,
|
||||
.selection = {
|
||||
{
|
||||
.description = "Color",
|
||||
.value = 0
|
||||
},
|
||||
{
|
||||
.description = "Green Monochrome",
|
||||
.value = 1
|
||||
},
|
||||
{
|
||||
.description = "Amber Monochrome",
|
||||
.value = 2
|
||||
},
|
||||
{
|
||||
.description = "Gray Monochrome",
|
||||
.value = 3
|
||||
},
|
||||
{
|
||||
.description = "Color (no brown)",
|
||||
.value = 4
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "enable_nmi", "Enable NMI for CGA emulation", CONFIG_BINARY, "", 1 },
|
||||
{
|
||||
"bios_addr", "BIOS Address", CONFIG_HEX20, "", 0xc0000, "", { 0 },
|
||||
{
|
||||
{ "C000H", 0xc0000 },
|
||||
{ "C800H", 0xc8000 },
|
||||
{ "CC00H", 0xcc000 },
|
||||
{ "D000H", 0xd0000 },
|
||||
{ "D400H", 0xd4000 },
|
||||
{ "D800H", 0xd8000 },
|
||||
{ "DC00H", 0xdc000 },
|
||||
{ "E000H", 0xe0000 },
|
||||
{ "E400H", 0xe4000 },
|
||||
{ "E800H", 0xe8000 },
|
||||
{ "EC00H", 0xec000 },
|
||||
{ "" }
|
||||
.name = "enable_nmi",
|
||||
.description = "Enable NMI for CGA emulation",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS Address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_int = 0xc0000,
|
||||
.selection = {
|
||||
{
|
||||
.description = "C000H",
|
||||
.value = 0xc0000
|
||||
},
|
||||
{
|
||||
.description = "C800H",
|
||||
.value = 0xc8000
|
||||
},
|
||||
{
|
||||
.description = "CC00H",
|
||||
.value = 0xcc000
|
||||
},
|
||||
{
|
||||
.description = "D000H",
|
||||
.value = 0xd0000
|
||||
},
|
||||
{
|
||||
.description = "D400H",
|
||||
.value = 0xd4000
|
||||
},
|
||||
{
|
||||
.description = "D800H",
|
||||
.value = 0xd8000
|
||||
},
|
||||
{
|
||||
.description = "DC00H",
|
||||
.value = 0xdc000
|
||||
},
|
||||
{
|
||||
.description = "E000H",
|
||||
.value = 0xe0000
|
||||
},
|
||||
{
|
||||
.description = "E400H",
|
||||
.value = 0xe4000
|
||||
},
|
||||
{
|
||||
.description = "E800H",
|
||||
.value = 0xe8000
|
||||
},
|
||||
{
|
||||
.description = "EC00H",
|
||||
.value = 0xec000
|
||||
},
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
},
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -47,31 +47,31 @@ static video_timings_t timing_default = {VIDEO_ISA, 8, 16, 32, 8, 16, 32};
|
||||
|
||||
static int was_reset = 0;
|
||||
|
||||
|
||||
static const device_t vid_none_device = {
|
||||
"None",
|
||||
"none",
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "None",
|
||||
.internal_name = "none",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
static const device_t vid_internal_device = {
|
||||
"Internal",
|
||||
"internal",
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
NULL, NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "Internal",
|
||||
.internal_name = "internal",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const VIDEO_CARD
|
||||
|
||||
@@ -3193,7 +3193,7 @@ static const device_config_t tgui9440_config[] = {
|
||||
.default_int = 2
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3222,7 +3222,7 @@ static const device_config_t tgui96xx_config[] = {
|
||||
.default_int = 4
|
||||
},
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -446,16 +446,32 @@ void tvga_force_redraw(void *p)
|
||||
static const device_config_t tvga_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1024, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_int = 1024,
|
||||
.selection = {
|
||||
{
|
||||
.description = "256 kB",
|
||||
.value = 256
|
||||
},
|
||||
{
|
||||
.description = "512 kB",
|
||||
.value = 512
|
||||
},
|
||||
{
|
||||
.description = "1 MB",
|
||||
.value = 1024
|
||||
},
|
||||
/*Chip supports 2mb, but drivers are buggy*/
|
||||
{ "" }
|
||||
{
|
||||
.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
{
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format off
|
||||
};
|
||||
|
||||
|
||||
@@ -1418,22 +1418,22 @@ static const device_config_t voodoo_config[] = {
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
const device_t voodoo_device =
|
||||
{
|
||||
"3DFX Voodoo Graphics",
|
||||
"voodoo",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
voodoo_init,
|
||||
voodoo_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
voodoo_speed_changed,
|
||||
voodoo_force_blit,
|
||||
voodoo_config
|
||||
.name = "3DFX Voodoo Graphics",
|
||||
.internal_name = "voodoo",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = voodoo_init,
|
||||
.close = voodoo_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = voodoo_speed_changed,
|
||||
.force_redraw = voodoo_force_blit,
|
||||
.config = voodoo_config
|
||||
};
|
||||
|
||||
@@ -2601,8 +2601,7 @@ static void banshee_pci_write(int func, int addr, uint8_t val, void *p)
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
static const device_config_t banshee_sgram_config[] =
|
||||
{
|
||||
static const device_config_t banshee_sgram_config[] = {
|
||||
{
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
@@ -2672,12 +2671,11 @@ static const device_config_t banshee_sgram_config[] =
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
|
||||
static const device_config_t banshee_sdram_config[] =
|
||||
{
|
||||
static const device_config_t banshee_sdram_config[] = {
|
||||
{
|
||||
.name = "bilinear",
|
||||
.description = "Bilinear filtering",
|
||||
@@ -2728,7 +2726,7 @@ static const device_config_t banshee_sdram_config[] =
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.type = -1
|
||||
.type = CONFIG_END
|
||||
}
|
||||
};
|
||||
// clang-format on
|
||||
@@ -2954,123 +2952,114 @@ static void banshee_force_redraw(void *p)
|
||||
banshee->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
|
||||
const device_t voodoo_banshee_device =
|
||||
{
|
||||
"3dfx Voodoo Banshee",
|
||||
"voodoo_banshee_pci",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
banshee_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ banshee_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sgram_config
|
||||
const device_t voodoo_banshee_device = {
|
||||
.name = "3dfx Voodoo Banshee",
|
||||
.internal_name = "voodoo_banshee_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = banshee_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = banshee_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sgram_config
|
||||
};
|
||||
|
||||
const device_t creative_voodoo_banshee_device =
|
||||
{
|
||||
"Creative 3D Blaster Banshee",
|
||||
"ctl3d_banshee_pci",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
creative_banshee_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ creative_banshee_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t creative_voodoo_banshee_device = {
|
||||
.name = "Creative 3D Blaster Banshee",
|
||||
.internal_name = "ctl3d_banshee_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = creative_banshee_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = creative_banshee_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_2000_device =
|
||||
{
|
||||
"3dfx Voodoo3 2000",
|
||||
"voodoo3_2k_pci",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
v3_2000_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ v3_2000_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t voodoo_3_2000_device = {
|
||||
.name = "3dfx Voodoo3 2000",
|
||||
.internal_name = "voodoo3_2k_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = v3_2000_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = v3_2000_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_2000_agp_device =
|
||||
{
|
||||
"3dfx Voodoo3 2000",
|
||||
"voodoo3_2k_agp",
|
||||
DEVICE_AGP,
|
||||
0,
|
||||
v3_2000_agp_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ v3_2000_agp_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t voodoo_3_2000_agp_device = {
|
||||
.name = "3dfx Voodoo3 2000",
|
||||
.internal_name = "voodoo3_2k_agp",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = 0,
|
||||
.init = v3_2000_agp_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = v3_2000_agp_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_2000_agp_onboard_8m_device =
|
||||
{
|
||||
"3dfx Voodoo3 2000 (On-Board 8MB SGRAM)",
|
||||
"voodoo3_2k_agp_onboard_8m",
|
||||
DEVICE_AGP,
|
||||
8,
|
||||
v3_2000_agp_onboard_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t voodoo_3_2000_agp_onboard_8m_device = {
|
||||
.name = "3dfx Voodoo3 2000 (On-Board 8MB SGRAM)",
|
||||
.internal_name = "voodoo3_2k_agp_onboard_8m",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = 8,
|
||||
.init = v3_2000_agp_onboard_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_3000_device =
|
||||
{
|
||||
"3dfx Voodoo3 3000",
|
||||
"voodoo3_3k_pci",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
v3_3000_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ v3_3000_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t voodoo_3_3000_device = {
|
||||
.name = "3dfx Voodoo3 3000",
|
||||
.internal_name = "voodoo3_3k_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = v3_3000_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = v3_3000_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_3000_agp_device =
|
||||
{
|
||||
"3dfx Voodoo3 3000",
|
||||
"voodoo3_3k_agp",
|
||||
DEVICE_AGP,
|
||||
0,
|
||||
v3_3000_agp_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ v3_3000_agp_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t voodoo_3_3000_agp_device = {
|
||||
.name = "3dfx Voodoo3 3000",
|
||||
.internal_name = "voodoo3_3k_agp",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = 0,
|
||||
.init = v3_3000_agp_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = v3_3000_agp_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t velocity_100_agp_device =
|
||||
{
|
||||
"3dfx Velocity 100",
|
||||
"velocity100_agp",
|
||||
DEVICE_AGP,
|
||||
0,
|
||||
velocity_100_agp_init,
|
||||
banshee_close,
|
||||
NULL,
|
||||
{ velocity_100_available },
|
||||
banshee_speed_changed,
|
||||
banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
const device_t velocity_100_agp_device = {
|
||||
.name = "3dfx Velocity 100",
|
||||
.internal_name = "velocity100_agp",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = 0,
|
||||
.init = velocity_100_agp_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = velocity_100_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
@@ -81,7 +81,7 @@ deviceconfig_dlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
(char *) config->name, config->default_int);
|
||||
|
||||
c = 0;
|
||||
while (selection->description && selection->description[0]) {
|
||||
while (selection && selection->description && selection->description[0]) {
|
||||
mbstowcs(lptsTemp, selection->description,
|
||||
strlen(selection->description) + 1);
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM)(LPCSTR)lptsTemp);
|
||||
@@ -146,7 +146,7 @@ deviceconfig_dlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
(char *) config->name, config->default_int);
|
||||
|
||||
c = 0;
|
||||
while (selection->description && selection->description[0]) {
|
||||
while (selection && selection->description && selection->description[0]) {
|
||||
mbstowcs(lptsTemp, selection->description,
|
||||
strlen(selection->description) + 1);
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM)(LPCSTR)lptsTemp);
|
||||
@@ -163,7 +163,7 @@ deviceconfig_dlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
(char *) config->name, config->default_int);
|
||||
|
||||
c = 0;
|
||||
while (selection->description && selection->description[0]) {
|
||||
while (selection && selection->description && selection->description[0]) {
|
||||
mbstowcs(lptsTemp, selection->description,
|
||||
strlen(selection->description) + 1);
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM)(LPCSTR)lptsTemp);
|
||||
@@ -391,6 +391,8 @@ deviceconfig_dlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
id++;
|
||||
break;
|
||||
case CONFIG_SELECTION:
|
||||
case CONFIG_HEX16:
|
||||
case CONFIG_HEX20:
|
||||
case CONFIG_MIDI_OUT:
|
||||
case CONFIG_MIDI_IN:
|
||||
case CONFIG_SPINNER:
|
||||
|
||||
Reference in New Issue
Block a user