# generic_xt.toml
# Machine Configurations for Generic XT systems

# MartyPC will search all *.toml files in 'machine' directories for machine
# configurations, so if you create a custom machine configuration, you can 
# put it in a separate file.
#
# ----------------------------------------------------------------------------
# Defining a Machine Configuration  
# Valid Machine types:
#  "Ibm5150v64K"
#  "Ibm5150v256K"
#  "Ibm5160"
#
# Valid Floppy Disk Controller types:
#  "IbmNec"
#
# Valid floppy Drive Types:
#  "360k"
#  "720k"
#  "1.2m"
#  "1.44m"

# Valid Hard Disk Controller Types:
#  "IbmXebec"
#
# Valid Serial Controller Types:
#  "IbmAsync"
#
# Conventional memory amount may be different from value specified due to MMIO
# optimizations. I recommend specifying a value in 0x10000 increments.
# ----------------------------------------------------------------------------

[[machine]]
name = "generic_xt_base"
type = "Ibm5160"
rom_set = "glabios_xt"
speaker = true
ppi_turbo = true

    [machine.memory]
    conventional.size = 0x10000
    conventional.wait_states = 0

    # Video cards
    [[machine.video]]
    type = "CGA"
    clock_mode = "Default"

    [machine.keyboard]
    type = "ModelF"
    layout = "US"

[[machine]]
name = "generic_xt"
type = "Ibm5160"
rom_set = "glabios_xt"
speaker = true
ppi_turbo = false
overlays = [
    "pcxt_2_720k_floppies",
    "pcxt_2_serial_ports",
    "us_modelf_keyboard",
    "microsoft_serial_mouse",
    "game_port",
]

    [machine.memory]
    conventional.size = 0xA0000
    conventional.wait_states = 0

[[machine]]
name = "generic_xt_hdd"
type = "Ibm5160"
rom_set = "glabios_xt_turbo"
speaker = true
ppi_turbo = false
overlays = [
    "pcxt_2_720k_floppies",
    "pcxt_2_serial_ports",
    "us_modelf_keyboard",
    "microsoft_serial_mouse",
    "game_port",
]

    [machine.memory]
    conventional.size = 0xA0000
    conventional.wait_states = 0

    # Hard disk controller
    [machine.hdc]
    type = "IbmXebec"

        # Drives connected to controller. Maximum of 2.
        # Drive #0 - (Typically C:)
        [[machine.hdc.drive]]
        format = "Mfm"
        vhd = "xebec20MB.vhd"

        # Drive #1 - (Typically D:)
        #[[machine.hdc.drive]]
        #format = "Mfm"
        #vhd = "games.vhd"

    # Video cards
    [[machine.video]]
    type = "CGA"
    clock_mode = "Default"

[[machine]]
name = "generic_xt_hdd_ega"
type = "Ibm5160"
rom_set = "glabios_xt"
speaker = true
ppi_turbo = false
overlays = [
    "pcxt_2_720k_floppies",
    "pcxt_2_serial_ports",
    "us_modelf_keyboard",
    "microsoft_serial_mouse",
    "game_port",
]

    [machine.memory]
    conventional.size = 0xA0000
    conventional.wait_states = 0

    # Hard disk controller
    [machine.hdc]
    type = "IbmXebec"

        # Drives connected to controller. Maximum of 2.
        # Drive #0 - (Typically C:)
        [[machine.hdc.drive]]
        format = "Mfm"
        vhd = "xebec20MB.vhd"

        # Drive #1 - (Typically D:)
        #[[machine.hdc.drive]]
        #format = "Mfm"
        #vhd = "games.vhd"

    # Video cards
    [[machine.video]]
    type = "EGA"
    clock_mode = "Default"

[[machine]]
name = "generic_award_xt_hdd"
type = "Ibm5160"
rom_set = "award_xt_4000"
speaker = true
ppi_turbo = true
overlays = [
    "pcxt_2_720k_floppies",
    "pcxt_2_serial_ports",
    "us_modelf_keyboard",
    "microsoft_serial_mouse",
    "game_port",
]

    [machine.memory]
    conventional.size = 0xA0000
    conventional.wait_states = 0

    # Hard disk controller
    [machine.hdc]
    type = "IbmXebec"

        # Drives connected to controller. Maximum of 2.
        # Drive #0 - (Typically C:)
        [[machine.hdc.drive]]
        format = "Mfm"
        vhd = "xebec20MB.vhd"

        # Drive #1 - (Typically D:)
        #[[machine.hdc.drive]]
        #format = "Mfm"
        #vhd = "games.vhd"

    # Video cards
    [[machine.video]]
    type = "CGA"
    clock_mode = "Default"

[[machine]]
name = "generic_skiselev_xt"
type = "Ibm5160"
rom_set = "skiselev_xt_1.00"
speaker = true
ppi_turbo = true
overlays = [
    "pcxt_2_720k_floppies",
    "pcxt_2_serial_ports",
    "us_modelf_keyboard",
    "microsoft_serial_mouse",
    "game_port",
]

    [machine.memory]
    conventional.size = 0xA0000
    conventional.wait_states = 0

    # Video cards
    [[machine.video]]
    type = "CGA"
    clock_mode = "Default"