initial commit
This commit is contained in:
commit
934dc6d4df
BIN
archive/ibm-basic-1.10.rom
Normal file
BIN
archive/ibm-basic-1.10.rom
Normal file
Binary file not shown.
284
configs/keyboard_layouts/keyboard_IT.toml
Normal file
284
configs/keyboard_layouts/keyboard_IT.toml
Normal file
@ -0,0 +1,284 @@
|
|||||||
|
# keyboard_IT.toml
|
||||||
|
# Keyboard translation file for Italian keyboard layouts for the
|
||||||
|
# MartyPC emulator.
|
||||||
|
|
||||||
|
# Why a translation file?
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Certain scancodes have changed since the 1980's, as the meaning of certain
|
||||||
|
# keys was changed, keys were split out to new keys, or moved around on the
|
||||||
|
# keyboard. This translation file will attempt to remap the modern scancodes
|
||||||
|
# to compatible ones for the given emulated keyboard type. In some cases,
|
||||||
|
# equivalents to modern keys may not exist, but you can map them by scancode
|
||||||
|
# to a key of your choice.
|
||||||
|
|
||||||
|
# Keycodes are logical names for keys on the keyboard.
|
||||||
|
# Keycodes use the W3C naming convention.
|
||||||
|
#
|
||||||
|
# See https://w3c.github.io/uievents-code/#code-value-tables for descriptions
|
||||||
|
# of these keys.
|
||||||
|
|
||||||
|
# Backquote,
|
||||||
|
# Backslash,
|
||||||
|
# BracketLeft,
|
||||||
|
# BracketRight,
|
||||||
|
# Comma,
|
||||||
|
# Digit0,
|
||||||
|
# Digit1,
|
||||||
|
# Digit2,
|
||||||
|
# Digit3,
|
||||||
|
# Digit4,
|
||||||
|
# Digit5,
|
||||||
|
# Digit6,
|
||||||
|
# Digit7,
|
||||||
|
# Digit8,
|
||||||
|
# Digit9,
|
||||||
|
# Equal,
|
||||||
|
# IntlBackslash,
|
||||||
|
# IntlRo,
|
||||||
|
# IntlYen,
|
||||||
|
# KeyA,
|
||||||
|
# KeyB,
|
||||||
|
# KeyC,
|
||||||
|
# KeyD,
|
||||||
|
# KeyE,
|
||||||
|
# KeyF,
|
||||||
|
# KeyG,
|
||||||
|
# KeyH,
|
||||||
|
# KeyI,
|
||||||
|
# KeyJ,
|
||||||
|
# KeyK,
|
||||||
|
# KeyL,
|
||||||
|
# KeyM,
|
||||||
|
# KeyN,
|
||||||
|
# KeyO,
|
||||||
|
# KeyP,
|
||||||
|
# KeyQ,
|
||||||
|
# KeyR,
|
||||||
|
# KeyS,
|
||||||
|
# KeyT,
|
||||||
|
# KeyU,
|
||||||
|
# KeyV,
|
||||||
|
# KeyW,
|
||||||
|
# KeyX,
|
||||||
|
# KeyY,
|
||||||
|
# KeyZ,
|
||||||
|
# Minus,
|
||||||
|
# Period,
|
||||||
|
# Quote,
|
||||||
|
# Semicolon,
|
||||||
|
# Slash,
|
||||||
|
# AltLeft,
|
||||||
|
# AltRight,
|
||||||
|
# Backspace,
|
||||||
|
# CapsLock,
|
||||||
|
# ContextMenu,
|
||||||
|
# ControlLeft,
|
||||||
|
# ControlRight,
|
||||||
|
# Enter,
|
||||||
|
# MetaLeft,
|
||||||
|
# MetaRight,
|
||||||
|
# ShiftLeft,
|
||||||
|
# ShiftRight,
|
||||||
|
# Space,
|
||||||
|
# Tab,
|
||||||
|
# Convert,
|
||||||
|
# KanaMode,
|
||||||
|
# Lang1,
|
||||||
|
# Lang2,
|
||||||
|
# Lang3,
|
||||||
|
# Lang4,
|
||||||
|
# Lang5,
|
||||||
|
# NonConvert,
|
||||||
|
# Delete,
|
||||||
|
# End,
|
||||||
|
# Help,
|
||||||
|
# Home,
|
||||||
|
# Insert,
|
||||||
|
# PageDown,
|
||||||
|
# PageUp,
|
||||||
|
# ArrowDown,
|
||||||
|
# ArrowLeft,
|
||||||
|
# ArrowRight,
|
||||||
|
# ArrowUp,
|
||||||
|
# NumLock,
|
||||||
|
# Numpad0,
|
||||||
|
# Numpad1,
|
||||||
|
# Numpad2,
|
||||||
|
# Numpad3,
|
||||||
|
# Numpad4,
|
||||||
|
# Numpad5,
|
||||||
|
# Numpad6,
|
||||||
|
# Numpad7,
|
||||||
|
# Numpad8,
|
||||||
|
# Numpad9,
|
||||||
|
# NumpadAdd,
|
||||||
|
# NumpadBackspace,
|
||||||
|
# NumpadClear,
|
||||||
|
# NumpadClearEntry,
|
||||||
|
# NumpadComma,
|
||||||
|
# NumpadDecimal,
|
||||||
|
# NumpadDivide,
|
||||||
|
# NumpadEnter,
|
||||||
|
# NumpadEqual,
|
||||||
|
# NumpadHash,
|
||||||
|
# NumpadMemoryAdd,
|
||||||
|
# NumpadMemoryClear,
|
||||||
|
# NumpadMemoryRecall,
|
||||||
|
# NumpadMemoryStore,
|
||||||
|
# NumpadMemorySubtract,
|
||||||
|
# NumpadMultiply,
|
||||||
|
# NumpadParenLeft,
|
||||||
|
# NumpadParenRight,
|
||||||
|
# NumpadStar,
|
||||||
|
# NumpadSubtract,
|
||||||
|
# Escape,
|
||||||
|
# Fn,
|
||||||
|
# FnLock,
|
||||||
|
# PrintScreen,
|
||||||
|
# ScrollLock,
|
||||||
|
# Pause,
|
||||||
|
# BrowserBack,
|
||||||
|
# BrowserFavorites,
|
||||||
|
# BrowserForward,
|
||||||
|
# BrowserHome,
|
||||||
|
# BrowserRefresh,
|
||||||
|
# BrowserSearch,
|
||||||
|
# BrowserStop,
|
||||||
|
# Eject,
|
||||||
|
# LaunchApp1,
|
||||||
|
# LaunchApp2,
|
||||||
|
# LaunchMail,
|
||||||
|
# MediaPlayPause,
|
||||||
|
# MediaSelect,
|
||||||
|
# MediaStop,
|
||||||
|
# MediaTrackNext,
|
||||||
|
# MediaTrackPrevious,
|
||||||
|
# Power,
|
||||||
|
# Sleep,
|
||||||
|
# AudioVolumeDown,
|
||||||
|
# AudioVolumeMute,
|
||||||
|
# AudioVolumeUp,
|
||||||
|
# WakeUp,
|
||||||
|
# Meta,
|
||||||
|
# Hyper,
|
||||||
|
# Turbo,
|
||||||
|
# Abort,
|
||||||
|
# Resume,
|
||||||
|
# Suspend,
|
||||||
|
# Again,
|
||||||
|
# Copy,
|
||||||
|
# Cut,
|
||||||
|
# Find,
|
||||||
|
# Open,
|
||||||
|
# Paste,
|
||||||
|
# Props,
|
||||||
|
# Select,
|
||||||
|
# Undo,
|
||||||
|
# Hiragana,
|
||||||
|
# Katakana,
|
||||||
|
# F1,
|
||||||
|
# F2,
|
||||||
|
# F3,
|
||||||
|
# F4,
|
||||||
|
# F5,
|
||||||
|
# F6,
|
||||||
|
# F7,
|
||||||
|
# F8,
|
||||||
|
# F9,
|
||||||
|
# F10,
|
||||||
|
# F11,
|
||||||
|
# F12,
|
||||||
|
# F13,
|
||||||
|
# F14,
|
||||||
|
# F15,
|
||||||
|
# F16,
|
||||||
|
# F17,
|
||||||
|
# F18,
|
||||||
|
# F19,
|
||||||
|
# F20,
|
||||||
|
# F21,
|
||||||
|
# F22,
|
||||||
|
# F23,
|
||||||
|
# F24,
|
||||||
|
# F25,
|
||||||
|
# F26,
|
||||||
|
# F27,
|
||||||
|
# F28,
|
||||||
|
# F29,
|
||||||
|
# F30,
|
||||||
|
# F31,
|
||||||
|
# F32,
|
||||||
|
# F33,
|
||||||
|
# F34,
|
||||||
|
# F35
|
||||||
|
|
||||||
|
# You can override the mapping of KeyCodes to scancodes with 'keycode_mappings'
|
||||||
|
# The format of keyboard_mappings is an array of mapping entries.
|
||||||
|
#
|
||||||
|
# Each mapping entry is an a dictionary with the following properties:
|
||||||
|
#
|
||||||
|
# keycode = The keycode name from the list given above.
|
||||||
|
#
|
||||||
|
# modifiers = A list of modifier keys to match. Valid values for modifiers
|
||||||
|
# include "control", "alt", "shift" and "super"
|
||||||
|
# On Mac, the command key is equivalent to "control."
|
||||||
|
#
|
||||||
|
# If a key is to be always translated, this value should be
|
||||||
|
# "any".
|
||||||
|
#
|
||||||
|
# If a key is to be translated when no modifiers are pressed,
|
||||||
|
# this value should be "none"
|
||||||
|
#
|
||||||
|
# Alternately, provide a list of modifiers. All modifiers in
|
||||||
|
# the list must be present for translation.
|
||||||
|
#
|
||||||
|
# key_macro = Convert this keycode into a sequence of multiple keycodes.
|
||||||
|
# Each keycode will be delivered after a specific delay
|
||||||
|
# (typically one frame)
|
||||||
|
#
|
||||||
|
# scancodes = The resulting scancodes to translate the specified key +
|
||||||
|
# matching modifiers into. A single keycode can map to
|
||||||
|
# multiple scancodes, which will be sent in order.
|
||||||
|
#
|
||||||
|
# 'key_macro' and 'scancodes' are mutually exclusive. Use one and leave the
|
||||||
|
# other empty.
|
||||||
|
#
|
||||||
|
# Different keyboard models can produce multi-byte scancodes, therefore, each
|
||||||
|
# keycode should be mapped to an array.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Model F - the Original 83-key keyboard shipped with the IBM PC and XT.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# The model F keyboard has single-byte scancodes, so scancodes defined here
|
||||||
|
# should only have one element.
|
||||||
|
[keyboard.modelf]
|
||||||
|
keycode_mappings = [
|
||||||
|
# Map the '<>' key to IntlBackslash.
|
||||||
|
{keycode="IntlBackslash", modifiers=["any"], key_macro=[], macro_translate=false, scancodes=[0x2B]},
|
||||||
|
# Map the ù key to Backquote
|
||||||
|
{keycode="Backslash", modifiers=["any"], key_macro=[], macro_translate=false, scancodes=[0x29]},
|
||||||
|
# Generate a backslash.
|
||||||
|
{keycode="Backquote", modifiers=["any"], key_macro=["+ControlLeft", "+AltLeft", "+IntlBackslash", "-ControlLeft", "-AltLeft", "-IntlBackslash"], macro_translate=false, scancodes=[]},
|
||||||
|
# Generate a pipe character. There is no equivalent on the italian model F.
|
||||||
|
{keycode="Backquote", modifiers=["shift"], key_macro=["+AltLeft", "+Numpad1", "+Numpad2", "+Numpad4", "-AltLeft", "-Numpad1", "-Numpad2", "-Numpad4"], macro_translate=false, scancodes=[]},
|
||||||
|
]
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Tandy 1000 - the Original 95-key keyboard shipped with the Tandy 1000r
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# The Tandy 1000 keyboard has single-byte scancodes, so scancodes defined here
|
||||||
|
# should only have one element
|
||||||
|
[keyboard.tandy1000]
|
||||||
|
keycode_mappings = [
|
||||||
|
# Map the '<>' key to IntlBackslash.
|
||||||
|
{keycode="IntlBackslash", modifiers=["any"], key_macro=[], macro_translate=false, scancodes=[0x2B]},
|
||||||
|
# Map the ù key to Backquote
|
||||||
|
{keycode="Backslash", modifiers=["any"], key_macro=[], macro_translate=false, scancodes=[0x29]},
|
||||||
|
# Generate a backslash.
|
||||||
|
{keycode="Backquote", modifiers=["any"], key_macro=["+ControlLeft", "+AltLeft", "+IntlBackslash", "-ControlLeft", "-AltLeft", "-IntlBackslash"], macro_translate=false, scancodes=[]},
|
||||||
|
# Generate a pipe character. There is no equivalent on the italian model F.
|
||||||
|
{keycode="Backquote", modifiers=["shift"], key_macro=["+AltLeft", "+Numpad1", "+Numpad2", "+Numpad4", "-AltLeft", "-Numpad1", "-Numpad2", "-Numpad4"], macro_translate=false, scancodes=[]},
|
||||||
|
]
|
285
configs/keyboard_layouts/keyboard_UK.toml
Normal file
285
configs/keyboard_layouts/keyboard_UK.toml
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
# keyboard_US.toml
|
||||||
|
# Keyboard translation file for UK keyboard layouts for the MartyPC emulator
|
||||||
|
|
||||||
|
# Why a translation file?
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Certain scancodes have changed since the 1980's, as the meaning of certain
|
||||||
|
# keys was changed, keys were split out to new keys, or moved around on the
|
||||||
|
# keyboard. This translation file will attempt to remap the modern scancodes
|
||||||
|
# to compatible ones for the given emulated keyboard type. In some cases,
|
||||||
|
# equivalents to modern keys may not exist, but you can map them by scancode
|
||||||
|
# to a key of your choice.
|
||||||
|
|
||||||
|
# Keycodes are logical names for keys on the keyboard.
|
||||||
|
# Keycodes use the W3C naming convention.
|
||||||
|
#
|
||||||
|
# See https://w3c.github.io/uievents-code/#code-value-tables for descriptions
|
||||||
|
# of these keys.
|
||||||
|
|
||||||
|
# Backquote,
|
||||||
|
# Backslash,
|
||||||
|
# BracketLeft,
|
||||||
|
# BracketRight,
|
||||||
|
# Comma,
|
||||||
|
# Digit0,
|
||||||
|
# Digit1,
|
||||||
|
# Digit2,
|
||||||
|
# Digit3,
|
||||||
|
# Digit4,
|
||||||
|
# Digit5,
|
||||||
|
# Digit6,
|
||||||
|
# Digit7,
|
||||||
|
# Digit8,
|
||||||
|
# Digit9,
|
||||||
|
# Equal,
|
||||||
|
# IntlBackslash,
|
||||||
|
# IntlRo,
|
||||||
|
# IntlYen,
|
||||||
|
# KeyA,
|
||||||
|
# KeyB,
|
||||||
|
# KeyC,
|
||||||
|
# KeyD,
|
||||||
|
# KeyE,
|
||||||
|
# KeyF,
|
||||||
|
# KeyG,
|
||||||
|
# KeyH,
|
||||||
|
# KeyI,
|
||||||
|
# KeyJ,
|
||||||
|
# KeyK,
|
||||||
|
# KeyL,
|
||||||
|
# KeyM,
|
||||||
|
# KeyN,
|
||||||
|
# KeyO,
|
||||||
|
# KeyP,
|
||||||
|
# KeyQ,
|
||||||
|
# KeyR,
|
||||||
|
# KeyS,
|
||||||
|
# KeyT,
|
||||||
|
# KeyU,
|
||||||
|
# KeyV,
|
||||||
|
# KeyW,
|
||||||
|
# KeyX,
|
||||||
|
# KeyY,
|
||||||
|
# KeyZ,
|
||||||
|
# Minus,
|
||||||
|
# Period,
|
||||||
|
# Quote,
|
||||||
|
# Semicolon,
|
||||||
|
# Slash,
|
||||||
|
# AltLeft,
|
||||||
|
# AltRight,
|
||||||
|
# Backspace,
|
||||||
|
# CapsLock,
|
||||||
|
# ContextMenu,
|
||||||
|
# ControlLeft,
|
||||||
|
# ControlRight,
|
||||||
|
# Enter,
|
||||||
|
# MetaLeft,
|
||||||
|
# MetaRight,
|
||||||
|
# ShiftLeft,
|
||||||
|
# ShiftRight,
|
||||||
|
# Space,
|
||||||
|
# Tab,
|
||||||
|
# Convert,
|
||||||
|
# KanaMode,
|
||||||
|
# Lang1,
|
||||||
|
# Lang2,
|
||||||
|
# Lang3,
|
||||||
|
# Lang4,
|
||||||
|
# Lang5,
|
||||||
|
# NonConvert,
|
||||||
|
# Delete,
|
||||||
|
# End,
|
||||||
|
# Help,
|
||||||
|
# Home,
|
||||||
|
# Insert,
|
||||||
|
# PageDown,
|
||||||
|
# PageUp,
|
||||||
|
# ArrowDown,
|
||||||
|
# ArrowLeft,
|
||||||
|
# ArrowRight,
|
||||||
|
# ArrowUp,
|
||||||
|
# NumLock,
|
||||||
|
# Numpad0,
|
||||||
|
# Numpad1,
|
||||||
|
# Numpad2,
|
||||||
|
# Numpad3,
|
||||||
|
# Numpad4,
|
||||||
|
# Numpad5,
|
||||||
|
# Numpad6,
|
||||||
|
# Numpad7,
|
||||||
|
# Numpad8,
|
||||||
|
# Numpad9,
|
||||||
|
# NumpadAdd,
|
||||||
|
# NumpadBackspace,
|
||||||
|
# NumpadClear,
|
||||||
|
# NumpadClearEntry,
|
||||||
|
# NumpadComma,
|
||||||
|
# NumpadDecimal,
|
||||||
|
# NumpadDivide,
|
||||||
|
# NumpadEnter,
|
||||||
|
# NumpadEqual,
|
||||||
|
# NumpadHash,
|
||||||
|
# NumpadMemoryAdd,
|
||||||
|
# NumpadMemoryClear,
|
||||||
|
# NumpadMemoryRecall,
|
||||||
|
# NumpadMemoryStore,
|
||||||
|
# NumpadMemorySubtract,
|
||||||
|
# NumpadMultiply,
|
||||||
|
# NumpadParenLeft,
|
||||||
|
# NumpadParenRight,
|
||||||
|
# NumpadStar,
|
||||||
|
# NumpadSubtract,
|
||||||
|
# Escape,
|
||||||
|
# Fn,
|
||||||
|
# FnLock,
|
||||||
|
# PrintScreen,
|
||||||
|
# ScrollLock,
|
||||||
|
# Pause,
|
||||||
|
# BrowserBack,
|
||||||
|
# BrowserFavorites,
|
||||||
|
# BrowserForward,
|
||||||
|
# BrowserHome,
|
||||||
|
# BrowserRefresh,
|
||||||
|
# BrowserSearch,
|
||||||
|
# BrowserStop,
|
||||||
|
# Eject,
|
||||||
|
# LaunchApp1,
|
||||||
|
# LaunchApp2,
|
||||||
|
# LaunchMail,
|
||||||
|
# MediaPlayPause,
|
||||||
|
# MediaSelect,
|
||||||
|
# MediaStop,
|
||||||
|
# MediaTrackNext,
|
||||||
|
# MediaTrackPrevious,
|
||||||
|
# Power,
|
||||||
|
# Sleep,
|
||||||
|
# AudioVolumeDown,
|
||||||
|
# AudioVolumeMute,
|
||||||
|
# AudioVolumeUp,
|
||||||
|
# WakeUp,
|
||||||
|
# Meta,
|
||||||
|
# Hyper,
|
||||||
|
# Turbo,
|
||||||
|
# Abort,
|
||||||
|
# Resume,
|
||||||
|
# Suspend,
|
||||||
|
# Again,
|
||||||
|
# Copy,
|
||||||
|
# Cut,
|
||||||
|
# Find,
|
||||||
|
# Open,
|
||||||
|
# Paste,
|
||||||
|
# Props,
|
||||||
|
# Select,
|
||||||
|
# Undo,
|
||||||
|
# Hiragana,
|
||||||
|
# Katakana,
|
||||||
|
# F1,
|
||||||
|
# F2,
|
||||||
|
# F3,
|
||||||
|
# F4,
|
||||||
|
# F5,
|
||||||
|
# F6,
|
||||||
|
# F7,
|
||||||
|
# F8,
|
||||||
|
# F9,
|
||||||
|
# F10,
|
||||||
|
# F11,
|
||||||
|
# F12,
|
||||||
|
# F13,
|
||||||
|
# F14,
|
||||||
|
# F15,
|
||||||
|
# F16,
|
||||||
|
# F17,
|
||||||
|
# F18,
|
||||||
|
# F19,
|
||||||
|
# F20,
|
||||||
|
# F21,
|
||||||
|
# F22,
|
||||||
|
# F23,
|
||||||
|
# F24,
|
||||||
|
# F25,
|
||||||
|
# F26,
|
||||||
|
# F27,
|
||||||
|
# F28,
|
||||||
|
# F29,
|
||||||
|
# F30,
|
||||||
|
# F31,
|
||||||
|
# F32,
|
||||||
|
# F33,
|
||||||
|
# F34,
|
||||||
|
# F35
|
||||||
|
|
||||||
|
# You can override the mapping of KeyCodes to scancodes with 'keycode_mappings'
|
||||||
|
# The format of keyboard_mappings is an array of mapping entries.
|
||||||
|
#
|
||||||
|
# Each mapping entry is an a dictionary with the following properties:
|
||||||
|
#
|
||||||
|
# keycode = The keycode name from the list given above.
|
||||||
|
#
|
||||||
|
# modifiers = A list of modifier keys to match. Valid values for modifiers
|
||||||
|
# include "control", "alt", "shift" and "super"
|
||||||
|
# On Mac, the command key is equivalent to "control."
|
||||||
|
#
|
||||||
|
# If a key is to be always translated, this value should be
|
||||||
|
# "any".
|
||||||
|
#
|
||||||
|
# If a key is to be translated when no modifiers are pressed,
|
||||||
|
# this value should be "none"
|
||||||
|
#
|
||||||
|
# Alternately, provide a list of modifiers. All modifiers in
|
||||||
|
# the list must be present for translation.
|
||||||
|
#
|
||||||
|
# key_macro = Convert this keycode into a sequence of multiple keycodes.
|
||||||
|
# Each keycode will be delivered after a specific delay
|
||||||
|
# (typically one frame)
|
||||||
|
#
|
||||||
|
# scancodes = The resulting scancodes to translate the specified key +
|
||||||
|
# matching modifiers into. A single keycode can map to
|
||||||
|
# multiple scancodes, which will be sent in order.
|
||||||
|
#
|
||||||
|
# 'key_macro' and 'scancodes' are mutually exclusive. Use one and leave the
|
||||||
|
# other empty.
|
||||||
|
#
|
||||||
|
# Different keyboard models can produce multi-byte scancodes, therefore, each
|
||||||
|
# keycode should be mapped to an array.
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Model F - the Original 83-key keyboard shipped with the IBM PC and XT.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# The Model F keyboard has single-byte scancodes, so scancodes defined here
|
||||||
|
# should only have one element.
|
||||||
|
[keyboard.modelf]
|
||||||
|
keycode_mappings = [
|
||||||
|
{ keycode = "IntlBackslash", modifiers = ["any"], key_macro = [], macro_translate = false, scancodes = [0x2B] },
|
||||||
|
{ keycode = "Quote", modifiers = ["any"], key_macro = [], macro_translate = false, scancodes = [0x28] },
|
||||||
|
{ keycode = "Backslash", modifiers = ["any"], key_macro = [], macro_translate = false, scancodes = [0x29] },
|
||||||
|
# Backquote ` didn't exist on the UK Model F keyboard, so we'll use an alt-code.
|
||||||
|
{ keycode = "Backquote", modifiers = ["none"], key_macro = ["+AltLeft", "+Numpad9", "+Numpad6", "-AltLeft", "-Numpad9", "-Numpad6"], macro_translate = false, scancodes = [] },
|
||||||
|
# Shift-backquote: ¬ (NOT symbol)
|
||||||
|
{ keycode = "Backquote", modifiers = ["shift"], key_macro = ["+AltLeft", "+Numpad1", "+Numpad7", "+Numpad0", "-AltLeft", "-Numpad1", "-Numpad7", "-Numpad0"], macro_translate = false, scancodes = [] },
|
||||||
|
# Alt-Gr keys did not exist on Model F. If we want them, we need to implement them with alt-codes.
|
||||||
|
# There appears to be a bug with AltGr-A. the KeyA keydown event does not fire :(
|
||||||
|
#{ keycode = "KeyA", modifiers = ["control", "alt"], key_macro = ["+AltLeft", "+Numpad1", "+Numpad6", "+Numpad0", "-AltLeft", "-Numpad1", "-Numpad6", "-Numpad0"], macro_translate = false, scancodes = [] },
|
||||||
|
]
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Tandy 1000 - the Original 95-key keyboard shipped with the Tandy 1000
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# The Tandy 1000 keyboard has single-byte scancodes, so scancodes defined here
|
||||||
|
# should only have one element.
|
||||||
|
[keyboard.tandy1000]
|
||||||
|
keycode_mappings = [
|
||||||
|
{ keycode = "IntlBackslash", modifiers = ["any"], key_macro = [], macro_translate = false, scancodes = [0x2B] },
|
||||||
|
{ keycode = "Quote", modifiers = ["any"], key_macro = [], macro_translate = false, scancodes = [0x28] },
|
||||||
|
{ keycode = "Backslash", modifiers = ["any"], key_macro = [], macro_translate = false, scancodes = [0x29] },
|
||||||
|
# Backquote ` didn't exist on the UK Model F keyboard, so we'll use an alt-code.
|
||||||
|
{ keycode = "Backquote", modifiers = ["none"], key_macro = ["+AltLeft", "+Numpad9", "+Numpad6", "-AltLeft", "-Numpad9", "-Numpad6"], macro_translate = false, scancodes = [] },
|
||||||
|
# Shift-backquote: ¬ (NOT symbol)
|
||||||
|
{ keycode = "Backquote", modifiers = ["shift"], key_macro = ["+AltLeft", "+Numpad1", "+Numpad7", "+Numpad0", "-AltLeft", "-Numpad1", "-Numpad7", "-Numpad0"], macro_translate = false, scancodes = [] },
|
||||||
|
# Alt-Gr keys did not exist on Model F. If we want them, we need to implement them with alt-codes.
|
||||||
|
# There appears to be a bug with AltGr-A. the KeyA keydown event does not fire :(
|
||||||
|
#{ keycode = "KeyA", modifiers = ["control", "alt"], key_macro = ["+AltLeft", "+Numpad1", "+Numpad6", "+Numpad0", "-AltLeft", "-Numpad1", "-Numpad6", "-Numpad0"], macro_translate = false, scancodes = [] },
|
||||||
|
]
|
266
configs/keyboard_layouts/keyboard_US.toml
Normal file
266
configs/keyboard_layouts/keyboard_US.toml
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
# keyboard_US.toml
|
||||||
|
# Keyboard translation file for US keyboard layouts for the MartyPC emulator
|
||||||
|
#
|
||||||
|
# US layouts do not require translation, so this file is empty by design.
|
||||||
|
|
||||||
|
# Why a translation file?
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Certain scancodes have changed since the 1980's, as the meaning of certain
|
||||||
|
# keys was changed, keys were split out to new keys, or moved around on the
|
||||||
|
# keyboard. This translation file will attempt to remap the modern scancodes
|
||||||
|
# to compatible ones for the given emulated keyboard type. In some cases,
|
||||||
|
# equivalents to modern keys may not exist, but you can map them by scancode
|
||||||
|
# to a key of your choice.
|
||||||
|
|
||||||
|
# Keycodes are logical names for keys on the keyboard.
|
||||||
|
# Keycodes use the W3C naming convention.
|
||||||
|
#
|
||||||
|
# See https://w3c.github.io/uievents-code/#code-value-tables for descriptions
|
||||||
|
# of these keys.
|
||||||
|
|
||||||
|
# Backquote,
|
||||||
|
# Backslash,
|
||||||
|
# BracketLeft,
|
||||||
|
# BracketRight,
|
||||||
|
# Comma,
|
||||||
|
# Digit0,
|
||||||
|
# Digit1,
|
||||||
|
# Digit2,
|
||||||
|
# Digit3,
|
||||||
|
# Digit4,
|
||||||
|
# Digit5,
|
||||||
|
# Digit6,
|
||||||
|
# Digit7,
|
||||||
|
# Digit8,
|
||||||
|
# Digit9,
|
||||||
|
# Equal,
|
||||||
|
# IntlBackslash,
|
||||||
|
# IntlRo,
|
||||||
|
# IntlYen,
|
||||||
|
# KeyA,
|
||||||
|
# KeyB,
|
||||||
|
# KeyC,
|
||||||
|
# KeyD,
|
||||||
|
# KeyE,
|
||||||
|
# KeyF,
|
||||||
|
# KeyG,
|
||||||
|
# KeyH,
|
||||||
|
# KeyI,
|
||||||
|
# KeyJ,
|
||||||
|
# KeyK,
|
||||||
|
# KeyL,
|
||||||
|
# KeyM,
|
||||||
|
# KeyN,
|
||||||
|
# KeyO,
|
||||||
|
# KeyP,
|
||||||
|
# KeyQ,
|
||||||
|
# KeyR,
|
||||||
|
# KeyS,
|
||||||
|
# KeyT,
|
||||||
|
# KeyU,
|
||||||
|
# KeyV,
|
||||||
|
# KeyW,
|
||||||
|
# KeyX,
|
||||||
|
# KeyY,
|
||||||
|
# KeyZ,
|
||||||
|
# Minus,
|
||||||
|
# Period,
|
||||||
|
# Quote,
|
||||||
|
# Semicolon,
|
||||||
|
# Slash,
|
||||||
|
# AltLeft,
|
||||||
|
# AltRight,
|
||||||
|
# Backspace,
|
||||||
|
# CapsLock,
|
||||||
|
# ContextMenu,
|
||||||
|
# ControlLeft,
|
||||||
|
# ControlRight,
|
||||||
|
# Enter,
|
||||||
|
# MetaLeft,
|
||||||
|
# MetaRight,
|
||||||
|
# ShiftLeft,
|
||||||
|
# ShiftRight,
|
||||||
|
# Space,
|
||||||
|
# Tab,
|
||||||
|
# Convert,
|
||||||
|
# KanaMode,
|
||||||
|
# Lang1,
|
||||||
|
# Lang2,
|
||||||
|
# Lang3,
|
||||||
|
# Lang4,
|
||||||
|
# Lang5,
|
||||||
|
# NonConvert,
|
||||||
|
# Delete,
|
||||||
|
# End,
|
||||||
|
# Help,
|
||||||
|
# Home,
|
||||||
|
# Insert,
|
||||||
|
# PageDown,
|
||||||
|
# PageUp,
|
||||||
|
# ArrowDown,
|
||||||
|
# ArrowLeft,
|
||||||
|
# ArrowRight,
|
||||||
|
# ArrowUp,
|
||||||
|
# NumLock,
|
||||||
|
# Numpad0,
|
||||||
|
# Numpad1,
|
||||||
|
# Numpad2,
|
||||||
|
# Numpad3,
|
||||||
|
# Numpad4,
|
||||||
|
# Numpad5,
|
||||||
|
# Numpad6,
|
||||||
|
# Numpad7,
|
||||||
|
# Numpad8,
|
||||||
|
# Numpad9,
|
||||||
|
# NumpadAdd,
|
||||||
|
# NumpadBackspace,
|
||||||
|
# NumpadClear,
|
||||||
|
# NumpadClearEntry,
|
||||||
|
# NumpadComma,
|
||||||
|
# NumpadDecimal,
|
||||||
|
# NumpadDivide,
|
||||||
|
# NumpadEnter,
|
||||||
|
# NumpadEqual,
|
||||||
|
# NumpadHash,
|
||||||
|
# NumpadMemoryAdd,
|
||||||
|
# NumpadMemoryClear,
|
||||||
|
# NumpadMemoryRecall,
|
||||||
|
# NumpadMemoryStore,
|
||||||
|
# NumpadMemorySubtract,
|
||||||
|
# NumpadMultiply,
|
||||||
|
# NumpadParenLeft,
|
||||||
|
# NumpadParenRight,
|
||||||
|
# NumpadStar,
|
||||||
|
# NumpadSubtract,
|
||||||
|
# Escape,
|
||||||
|
# Fn,
|
||||||
|
# FnLock,
|
||||||
|
# PrintScreen,
|
||||||
|
# ScrollLock,
|
||||||
|
# Pause,
|
||||||
|
# BrowserBack,
|
||||||
|
# BrowserFavorites,
|
||||||
|
# BrowserForward,
|
||||||
|
# BrowserHome,
|
||||||
|
# BrowserRefresh,
|
||||||
|
# BrowserSearch,
|
||||||
|
# BrowserStop,
|
||||||
|
# Eject,
|
||||||
|
# LaunchApp1,
|
||||||
|
# LaunchApp2,
|
||||||
|
# LaunchMail,
|
||||||
|
# MediaPlayPause,
|
||||||
|
# MediaSelect,
|
||||||
|
# MediaStop,
|
||||||
|
# MediaTrackNext,
|
||||||
|
# MediaTrackPrevious,
|
||||||
|
# Power,
|
||||||
|
# Sleep,
|
||||||
|
# AudioVolumeDown,
|
||||||
|
# AudioVolumeMute,
|
||||||
|
# AudioVolumeUp,
|
||||||
|
# WakeUp,
|
||||||
|
# Meta,
|
||||||
|
# Hyper,
|
||||||
|
# Turbo,
|
||||||
|
# Abort,
|
||||||
|
# Resume,
|
||||||
|
# Suspend,
|
||||||
|
# Again,
|
||||||
|
# Copy,
|
||||||
|
# Cut,
|
||||||
|
# Find,
|
||||||
|
# Open,
|
||||||
|
# Paste,
|
||||||
|
# Props,
|
||||||
|
# Select,
|
||||||
|
# Undo,
|
||||||
|
# Hiragana,
|
||||||
|
# Katakana,
|
||||||
|
# F1,
|
||||||
|
# F2,
|
||||||
|
# F3,
|
||||||
|
# F4,
|
||||||
|
# F5,
|
||||||
|
# F6,
|
||||||
|
# F7,
|
||||||
|
# F8,
|
||||||
|
# F9,
|
||||||
|
# F10,
|
||||||
|
# F11,
|
||||||
|
# F12,
|
||||||
|
# F13,
|
||||||
|
# F14,
|
||||||
|
# F15,
|
||||||
|
# F16,
|
||||||
|
# F17,
|
||||||
|
# F18,
|
||||||
|
# F19,
|
||||||
|
# F20,
|
||||||
|
# F21,
|
||||||
|
# F22,
|
||||||
|
# F23,
|
||||||
|
# F24,
|
||||||
|
# F25,
|
||||||
|
# F26,
|
||||||
|
# F27,
|
||||||
|
# F28,
|
||||||
|
# F29,
|
||||||
|
# F30,
|
||||||
|
# F31,
|
||||||
|
# F32,
|
||||||
|
# F33,
|
||||||
|
# F34,
|
||||||
|
# F35
|
||||||
|
|
||||||
|
# You can override the mapping of KeyCodes to scancodes with 'keycode_mappings'
|
||||||
|
# The format of keyboard_mappings is an array of mapping entries.
|
||||||
|
#
|
||||||
|
# Each mapping entry is an a dictionary with the following properties:
|
||||||
|
#
|
||||||
|
# keycode = The keycode name from the list given above.
|
||||||
|
#
|
||||||
|
# modifiers = A list of modifier keys to match. Valid values for modifiers
|
||||||
|
# include "control", "alt", "shift" and "super"
|
||||||
|
# On Mac, the command key is equivalent to "control."
|
||||||
|
#
|
||||||
|
# If a key is to be always translated, this value should be
|
||||||
|
# "any".
|
||||||
|
#
|
||||||
|
# If a key is to be translated when no modifiers are pressed,
|
||||||
|
# this value should be "none"
|
||||||
|
#
|
||||||
|
# Alternately, provide a list of modifiers. All modifiers in
|
||||||
|
# the list must be present for translation.
|
||||||
|
#
|
||||||
|
# key_macro = Convert this keycode into a sequence of multiple keycodes.
|
||||||
|
# Each keycode will be delivered after a specific delay
|
||||||
|
# (typically one frame)
|
||||||
|
#
|
||||||
|
# scancodes = The resulting scancodes to translate the specified key +
|
||||||
|
# matching modifiers into. A single keycode can map to
|
||||||
|
# multiple scancodes, which will be sent in order.
|
||||||
|
#
|
||||||
|
# 'key_macro' and 'scancodes' are mutually exclusive. Use one and leave the
|
||||||
|
# other empty.
|
||||||
|
#
|
||||||
|
# Different keyboard models can produce multi-byte scancodes, therefore, each
|
||||||
|
# keycode should be mapped to an array.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Model F - the Original 83-key keyboard shipped with the IBM PC and XT.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# The model F keyboard has single-byte scancodes, so scancodes defined here
|
||||||
|
# should only have one element.
|
||||||
|
[keyboard.modelf]
|
||||||
|
keycode_mappings = []
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Tandy 1000 - the Original 95-key keyboard shipped with the Tandy 1000
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# The Tandy 1000 keyboard has single-byte scancodes, so scancodes defined here
|
||||||
|
# should only have one element.
|
||||||
|
[keyboard.tandy1000]
|
||||||
|
keycode_mappings = []
|
64
configs/machines/compaq_portable.toml
Normal file
64
configs/machines/compaq_portable.toml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# compaq_portable.toml
|
||||||
|
# Machine Configurations for the Compaq Portable
|
||||||
|
|
||||||
|
# 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 = "compaq_portable"
|
||||||
|
type = "Ibm5160"
|
||||||
|
rom_set = "compaq_portable_revf"
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"us_modelf_keyboard",
|
||||||
|
"pcxt_2_720k_floppies",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "CGA"
|
||||||
|
clock_mode = "Dynamic"
|
||||||
|
|
||||||
|
# Hard disk controller
|
||||||
|
[machine.hdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmXebec"
|
||||||
|
|
||||||
|
# Drives connected to controller. Maximum of 2.
|
||||||
|
# Drive #0 - (Typically C:)
|
||||||
|
[[machine.hdc.drive]]
|
||||||
|
format = "Mfm"
|
||||||
|
vhd = "xebec20MB.vhd"
|
||||||
|
|
222
configs/machines/config_overlays.toml
Normal file
222
configs/machines/config_overlays.toml
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
# machine_config_overlays.toml
|
||||||
|
# Main Machine Configuration Overlay file for MartyPC.
|
||||||
|
|
||||||
|
|
||||||
|
# Upgrade the CPU of the system to an NECV20.
|
||||||
|
# Base machine type must have a compatible CPU (Intel 8088)
|
||||||
|
[[overlay]]
|
||||||
|
name = "cpu_v20"
|
||||||
|
[overlay.cpu]
|
||||||
|
upgrade_type = "NecV20"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "lotech_ems"
|
||||||
|
[overlay.ems]
|
||||||
|
ems_type = "LoTech2MB"
|
||||||
|
# EMS Window
|
||||||
|
# Valid values for LoTech card are:
|
||||||
|
# 0xC000
|
||||||
|
# 0xD000
|
||||||
|
# 0xE000
|
||||||
|
window = 0xE000
|
||||||
|
# Base IO address
|
||||||
|
# Valid values for LoTech card are:
|
||||||
|
# 0x260h
|
||||||
|
# 0x264h
|
||||||
|
# 0x268h
|
||||||
|
# 0x26Ch
|
||||||
|
io_base = 0x260
|
||||||
|
# Memory size = 2MB. Do not modify.
|
||||||
|
size = 0x200000
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "pcxt_640k_conventional"
|
||||||
|
[overlay.memory]
|
||||||
|
# A0000 = 640K of conventional memory
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "us_modelf_keyboard"
|
||||||
|
[overlay.keyboard]
|
||||||
|
# Valid options for keyboard_type are:
|
||||||
|
# ModelF - This was the original 83-key keyboard shipped with the PC/XT
|
||||||
|
# (More keyboard types yet to be implemented)
|
||||||
|
type = "ModelF"
|
||||||
|
# Keyboard layout. Used to load the appropriate keyboard translation file.
|
||||||
|
# MartyPC will look for the file keyboard_XX.toml in the ./keyboard/ directory
|
||||||
|
# where XX is the string specified by keyboard_layout.
|
||||||
|
#
|
||||||
|
# Certain scancodes have changed their meaning since the 1980's. Your help
|
||||||
|
# would be appreciated in developing new translation files.
|
||||||
|
layout = "US"
|
||||||
|
# Enable typematic repeat for the emulated keyboard. Host repeat is ignored.
|
||||||
|
typematic = true
|
||||||
|
# Delay in milliseconds before typematic repeat begins.
|
||||||
|
typematic_delay = 500.0
|
||||||
|
# Delay in milliseconds between each scancode during typematic repeat.
|
||||||
|
typematic_rate= 50.0
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "pcxt_2_serial_ports"
|
||||||
|
# Serial card
|
||||||
|
[[overlay.serial]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmAsync"
|
||||||
|
[[overlay.serial.port]]
|
||||||
|
io_base = 0x3F8
|
||||||
|
irq = 4
|
||||||
|
[[overlay.serial.port]]
|
||||||
|
io_base = 0x2F8
|
||||||
|
irq = 3
|
||||||
|
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "ibm_xebec"
|
||||||
|
# Hard disk controller
|
||||||
|
[overlay.hdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmXebec"
|
||||||
|
[[overlay.hdc.drive]]
|
||||||
|
format = "Mfm"
|
||||||
|
vhd = "xebec20MB.vhd"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "ibm_cga"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "CGA"
|
||||||
|
|
||||||
|
# Clocking mode for video card. Default values are:
|
||||||
|
# Default - Choose the best mode per card. (Recommended)
|
||||||
|
# Dynamic - Switch between supported clocking modes as required.
|
||||||
|
# Cycle - Clock by cycle. Accurate but slow. Only really useful for debugging.
|
||||||
|
# Only valid for CGA.
|
||||||
|
# Character - Clock by character. Faster but may not be able to emulate certain effects.
|
||||||
|
# Valid for MDA, CGA and EGA.
|
||||||
|
# Scanline - Clock by scanline. Fastest but unable to emulate certain effects.
|
||||||
|
# (Unimplemented)
|
||||||
|
clocking_mode = "Default"
|
||||||
|
|
||||||
|
# Request line doubling for 15Khz (200 scanline) modes during rendering.
|
||||||
|
# Recommended.
|
||||||
|
# This occurs before aspect correction, so reduces blur. Not applicable
|
||||||
|
# to VGA as VGA double-scans such modes in hardware.
|
||||||
|
line_double = true
|
||||||
|
snow = false
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "ibm_mda"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "hercules"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
subtype = "Hercules"
|
||||||
|
clock_mode = "Default"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "ibm_ega"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "EGA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
dip_switch = 0b1001
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "ibm_ega_on_cga"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "EGA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
# 0111 = EGA on CGA monitor.
|
||||||
|
dip_switch = 0b0111
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "ibm_cga_and_mda"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "CGA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
# Video card
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
|
||||||
|
#[[overlay]]
|
||||||
|
#name = "ram_expansion"
|
||||||
|
# [[overlay.ram_expansion]]
|
||||||
|
# type = "Conventional"
|
||||||
|
# size = 0x60000 # 394K
|
||||||
|
# speed_ns = 200
|
||||||
|
# wait_states = 0
|
||||||
|
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "pcxt_2_720k_floppies"
|
||||||
|
# Floppy disk controller
|
||||||
|
[overlay.fdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmNec"
|
||||||
|
# Drives connected to controller. Maximum of 4.
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "720k"
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "720k"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "pcxt_2_360k_floppies"
|
||||||
|
# Floppy disk controller
|
||||||
|
[overlay.fdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmNec"
|
||||||
|
# Drives connected to controller. Maximum of 4.
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "pcxt_4_360k_floppies"
|
||||||
|
# Floppy disk controller
|
||||||
|
[overlay.fdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmNec"
|
||||||
|
# Drives connected to controller. Maximum of 4.
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
[[overlay.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "microsoft_serial_mouse"
|
||||||
|
[overlay.serial_mouse]
|
||||||
|
type = "Microsoft"
|
||||||
|
# Port 0 - COM1
|
||||||
|
# Port 1 - COM2
|
||||||
|
port = 1
|
||||||
|
|
||||||
|
[[overlay]]
|
||||||
|
name = "game_port"
|
||||||
|
[overlay.game_port]
|
||||||
|
# Don't change this unless you know what you are doing.
|
||||||
|
# Everything expects the game port to be at 0x201.
|
||||||
|
io_base = 0x201
|
||||||
|
|
||||||
|
|
207
configs/machines/generic_xt.toml
Normal file
207
configs/machines/generic_xt.toml
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
# 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"
|
175
configs/machines/ibm5150.toml
Normal file
175
configs/machines/ibm5150.toml
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
# ibm5150.toml
|
||||||
|
# Machine Configurations for the IBM 5150
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The lowest possible memory configuration, just for fun
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5150_16k"
|
||||||
|
type = "Ibm5150v64K"
|
||||||
|
rom_set = "ibm5150_81_v1" # The '82 BIOS doesn't support <64KB of RAM.
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"pcxt_2_360k_floppies",
|
||||||
|
"pcxt_2_serial_ports",
|
||||||
|
"us_modelf_keyboard",
|
||||||
|
"game_port",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0x4000 # A whopping 16K of RAM
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Character"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5150_64k"
|
||||||
|
type = "Ibm5150v64K"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"pcxt_2_360k_floppies",
|
||||||
|
"pcxt_2_serial_ports",
|
||||||
|
"us_modelf_keyboard",
|
||||||
|
"game_port",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Character"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5150_64k_hdd"
|
||||||
|
type = "Ibm5150v64K"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"pcxt_2_360k_floppies",
|
||||||
|
"pcxt_2_serial_ports",
|
||||||
|
"us_modelf_keyboard",
|
||||||
|
"game_port",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
# Hard disk controller
|
||||||
|
[machine.hdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
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]]
|
||||||
|
#vhd = "games.vhd"
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Character"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5150_256k"
|
||||||
|
type = "Ibm5150v256K"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"pcxt_2_360k_floppies",
|
||||||
|
"pcxt_2_serial_ports",
|
||||||
|
"us_modelf_keyboard",
|
||||||
|
"game_port",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Character"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5150_256k_hdd"
|
||||||
|
type = "Ibm5150v256K"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"pcxt_2_360k_floppies",
|
||||||
|
"pcxt_2_serial_ports",
|
||||||
|
"us_modelf_keyboard",
|
||||||
|
"game_port",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
# Hard disk controller
|
||||||
|
[machine.hdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
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]]
|
||||||
|
#vhd = "games.vhd"
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Character"
|
||||||
|
|
||||||
|
|
156
configs/machines/ibm5160.toml
Normal file
156
configs/machines/ibm5160.toml
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
# ibm5160.toml
|
||||||
|
# Machine Configurations for the IBM 5160
|
||||||
|
|
||||||
|
# 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 = "ibm5160"
|
||||||
|
type = "Ibm5160"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = 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]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "CGA"
|
||||||
|
clock_mode = "Dynamic"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5160_diags"
|
||||||
|
type = "Ibm5160"
|
||||||
|
rom_set = "supersoft_diags"
|
||||||
|
speaker = 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]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "CGA"
|
||||||
|
clock_mode = "Dynamic"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5160_hdd"
|
||||||
|
type = "Ibm5160"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = 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]
|
||||||
|
bus_type = "ISA"
|
||||||
|
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]]
|
||||||
|
#vhd = "games.vhd"
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
type = "CGA"
|
||||||
|
clock_mode = "Dynamic"
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5160_hdd_ega"
|
||||||
|
type = "Ibm5160"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = 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]
|
||||||
|
bus_type = "ISA"
|
||||||
|
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]]
|
||||||
|
#vhd = "games.vhd"
|
||||||
|
|
||||||
|
# Video cards
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "EGA"
|
||||||
|
clock_mode = "Dynamic"
|
||||||
|
|
||||||
|
|
||||||
|
|
88
configs/machines/ibm_pcjr.toml
Normal file
88
configs/machines/ibm_pcjr.toml
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# ibmpcjr.toml
|
||||||
|
# Machine Configurations for the IBM PCJR
|
||||||
|
|
||||||
|
# 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 = "ibm_pcjr"
|
||||||
|
type = "IbmPCJr"
|
||||||
|
rom_set = "ibm_pcjr"
|
||||||
|
speaker = true
|
||||||
|
|
||||||
|
[machine.keyboard]
|
||||||
|
# Valid options for keyboard_type are:
|
||||||
|
# ModelF - This was the original 83-key keyboard shipped with the PC/XT
|
||||||
|
# (More keyboard types yet to be implemented)
|
||||||
|
#
|
||||||
|
# TODO: Replace this with a 'PCJr' keyboard type as there are scancode differences
|
||||||
|
type = "ModelF"
|
||||||
|
# Keyboard layout. Used to load the appropriate keyboard translation file.
|
||||||
|
# MartyPC will look for the file keyboard_XX.toml in the ./keyboard/ directory
|
||||||
|
# where XX is the string specified by keyboard_layout.
|
||||||
|
#
|
||||||
|
# Certain scancodes have changed their meaning since the 1980's. Your help
|
||||||
|
# would be appreciated in developing new translation files.
|
||||||
|
layout = "US"
|
||||||
|
# Enable typematic repeat for the emulated keyboard. Host repeat is ignored.
|
||||||
|
typematic = true
|
||||||
|
# Delay in milliseconds before typematic repeat begins.
|
||||||
|
typematic_delay = 500.0
|
||||||
|
# Delay in milliseconds between each scancode during typematic repeat.
|
||||||
|
typematic_rate= 50.0
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0x20000 # 128KB max. Install additional RAM via sidecars
|
||||||
|
conventional.wait_states = 3
|
||||||
|
|
||||||
|
# Video cards - Maximum of 1.
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "Onboard"
|
||||||
|
type = "TGA"
|
||||||
|
subtype = "IbmPCJr"
|
||||||
|
clock_mode = "Default"
|
||||||
|
|
||||||
|
# Floppy disk controller
|
||||||
|
[machine.fdc]
|
||||||
|
bus_type = "Onboard"
|
||||||
|
type = "IbmPCJrNec"
|
||||||
|
# Drives connected to controller. Maximum of 1.
|
||||||
|
[[machine.fdc.drive]]
|
||||||
|
type = "360k"
|
||||||
|
|
||||||
|
[[machine.serial]]
|
||||||
|
bus_type = "Onboard"
|
||||||
|
type = "IbmAsync"
|
||||||
|
[[machine.serial.port]]
|
||||||
|
io_base = 0x2F8
|
||||||
|
irq = 3
|
||||||
|
# Required for PCjr to avoid boot errors.
|
||||||
|
out2_suppresses_int = false
|
||||||
|
|
113
configs/machines/readme.md
Normal file
113
configs/machines/readme.md
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
### MartyPC Machine Configuration
|
||||||
|
|
||||||
|
MartyPC uses "machine" configurations to describe the specific hardware to be emulated during a session.
|
||||||
|
|
||||||
|
Machine configurations can be split up among arbitrary TOML configuration files in this directory.
|
||||||
|
|
||||||
|
Each configuration consists of a base configuration definition and optional configuration overlay definitions.
|
||||||
|
|
||||||
|
A base configuration is capable of fully describing a machine. Overlays are supported in order to reduce the amount of
|
||||||
|
repeated configuration settings needed for common components, or to allow overriding certain settings within a
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
An example configuration is commented below:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[[machine]]
|
||||||
|
name = "ibm5150_64k" # Each configuration is required to have a name, which can be referenced
|
||||||
|
# via the main configuration file or command line argument.
|
||||||
|
|
||||||
|
type = "Ibm5150v64K" # The Machine Type specifies the base hardware of this configuration. Think of this as
|
||||||
|
# describing the motherboard or fixed hardware configuration of a system. Here we
|
||||||
|
# are stating that this configuration builds on the base of an IBM 5150 with a 16-64K motherboard
|
||||||
|
|
||||||
|
rom_set = "auto" # A specfic ROM set can be referenced by 'alias', or it can be left 'auto' to let MartyPC pick
|
||||||
|
# the best (usually newest) ROM set detected to be compatible for this system.
|
||||||
|
|
||||||
|
speaker = true # Enable the PC speaker.
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
conventional.size = 0xA0000 # List the amount of conventional memory. This is masked to the nearest multiple of
|
||||||
|
# 4k. Certain machine types may have more specific requirements.
|
||||||
|
# For example, for the IBM 5150, this value should match a valid memory DIP setting.
|
||||||
|
# (See https://www.minuszerodegrees.net/5150/misc/5150_motherboard_switch_settings.htm)
|
||||||
|
|
||||||
|
conventional.wait_states = 0 # Wait states to apply to conventional memory (placeholder, not implemented)
|
||||||
|
|
||||||
|
# Floppy disk controller (optional)
|
||||||
|
[machine.fdc]
|
||||||
|
bus_type = "ISA" # Bus type. Only supported type is ISA.
|
||||||
|
type = "IbmNec" # Type of floppy disk controller. Currently only "IbmNec" supported.
|
||||||
|
|
||||||
|
# Drives connected to controller. Maximum of 4.
|
||||||
|
[[machine.fdc.drive]]
|
||||||
|
type = "360k" # Drive type. Valid values are:
|
||||||
|
# "360k"
|
||||||
|
# "720k"
|
||||||
|
# "1.2m"
|
||||||
|
# "1.44m"
|
||||||
|
image = "dos330.img" # Default image to load into this drive. (optional)
|
||||||
|
|
||||||
|
[[machine.fdc.drive]] # Additional floppy drive definitions follow
|
||||||
|
type = "360k"
|
||||||
|
|
||||||
|
# Serial card (optional, repeatable)
|
||||||
|
[[machine.serial]]
|
||||||
|
bus_type = "ISA" # Bus type. Only supported type is ISA.
|
||||||
|
type = "IbmAsync" # Type of serial card. Currently only "IbmAsync" supported. This will add two
|
||||||
|
# serial ports to the system at 0x3F8 and 0x2F8.
|
||||||
|
|
||||||
|
[[overlay.serial.port]] # Eventually you will be able to specify individual port addresses and IRQs.
|
||||||
|
io_base = 0x3F8 # For the moment these values are placeholders and are ignored.
|
||||||
|
irq = 4
|
||||||
|
[[overlay.serial.port]]
|
||||||
|
io_base = 0x2F8
|
||||||
|
irq = 3
|
||||||
|
|
||||||
|
# Video card (optional, repeatable)
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "ISA" # Bus type. Only supported type is ISA.
|
||||||
|
type = "MDA" # Type of video card. Valid values are:
|
||||||
|
# MDA, CGA, EGA
|
||||||
|
clock_mode = "Default" # Clock mode for video card. Leave this "Default" in most cases.
|
||||||
|
|
||||||
|
# Keyboard (Optional)
|
||||||
|
[machine.keyboard]
|
||||||
|
type = "ModelF" # Type of keyboard installed. Currently only "ModelF" implemented.
|
||||||
|
layout = "US" # Keyboard layout. Used to find a keyboard mapping file in /configs/keyboards/
|
||||||
|
|
||||||
|
# Serial mouse (Optional)
|
||||||
|
[machine.serialmouse]
|
||||||
|
type = "Microsoft" # Type of serial mouse. Currently only "Microsoft" implemented.
|
||||||
|
port = 0 # Serial port mouse is connected to.
|
||||||
|
# Port 0 == first serial port defined (usually COM1)
|
||||||
|
# Port 1 == second serial port defined (usually COM2)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
See the various TOML files provided for more examples.
|
||||||
|
|
||||||
|
### Machine Configuration Overlays
|
||||||
|
|
||||||
|
A machine configuration overlay can contain any part of a machine configuration that is (Optional). This includes
|
||||||
|
fdc, hdc, serial, video, mouse and keyboard sections.
|
||||||
|
|
||||||
|
If a base configuration and an overlay specify the same sections, the overlay will overwrite the base configuration's
|
||||||
|
values. If two overlays specify the same sections, they will be overwritten in the order the overlays were specified.
|
||||||
|
|
||||||
|
The following overlay definition can be used to add a CGA and MDA card to any base configuration:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[[overlay]]
|
||||||
|
name = "cga_and_mda"
|
||||||
|
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "CGA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
|
||||||
|
[[overlay.video]]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "MDA"
|
||||||
|
clock_mode = "Default"
|
||||||
|
```
|
55
configs/machines/tandy1000.toml
Normal file
55
configs/machines/tandy1000.toml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# tandy1000.toml
|
||||||
|
# Machine Configurations for the Tandy 1000 series
|
||||||
|
|
||||||
|
[[machine]]
|
||||||
|
name = "tandy1000"
|
||||||
|
type = "Tandy1000"
|
||||||
|
rom_set = "auto"
|
||||||
|
speaker = true
|
||||||
|
overlays = [
|
||||||
|
"pcxt_2_360k_floppies",
|
||||||
|
]
|
||||||
|
|
||||||
|
[machine.memory]
|
||||||
|
#conventional.size = 0x20000 # 128KB max. Install additional RAM via expansion cards
|
||||||
|
conventional.size = 0xA0000
|
||||||
|
conventional.wait_states = 0
|
||||||
|
|
||||||
|
[machine.keyboard]
|
||||||
|
# Valid options for keyboard_type are:
|
||||||
|
# ModelF - This was the original 83-key keyboard shipped with the PC/XT
|
||||||
|
# (More keyboard types yet to be implemented)
|
||||||
|
#
|
||||||
|
type = "Tandy1000"
|
||||||
|
# Keyboard layout. Used to load the appropriate keyboard translation file.
|
||||||
|
# MartyPC will look for the file keyboard_XX.toml in the ./keyboard/ directory
|
||||||
|
# where XX is the string specified by keyboard_layout.
|
||||||
|
#
|
||||||
|
# Certain scancodes have changed their meaning since the 1980's. Your help
|
||||||
|
# would be appreciated in developing new translation files.
|
||||||
|
layout = "US"
|
||||||
|
# Enable typematic repeat for the emulated keyboard. Host repeat is ignored.
|
||||||
|
typematic = true
|
||||||
|
# Delay in milliseconds before typematic repeat begins.
|
||||||
|
typematic_delay = 500.0
|
||||||
|
# Delay in milliseconds between each scancode during typematic repeat.
|
||||||
|
typematic_rate= 50.0
|
||||||
|
|
||||||
|
# Video card
|
||||||
|
[[machine.video]]
|
||||||
|
bus_type = "Onboard"
|
||||||
|
type = "TGA"
|
||||||
|
subtype = "Tandy1000"
|
||||||
|
clock_mode = "Default"
|
||||||
|
|
||||||
|
# Hard disk controller
|
||||||
|
[machine.hdc]
|
||||||
|
bus_type = "ISA"
|
||||||
|
type = "IbmXebec"
|
||||||
|
|
||||||
|
# Drives connected to controller. Maximum of 2.
|
||||||
|
# Drive #0 - (Typically C:)
|
||||||
|
[[machine.hdc.drive]]
|
||||||
|
format = "Mfm"
|
||||||
|
vhd = "xebec20MB.vhd"
|
||||||
|
|
619
martypc.toml
Normal file
619
martypc.toml
Normal file
@ -0,0 +1,619 @@
|
|||||||
|
# martypc.toml
|
||||||
|
# Main configuration file for the MartyPC emulator
|
||||||
|
#
|
||||||
|
[meta]
|
||||||
|
file_type = "main_config"
|
||||||
|
config_version = "0.2"
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Machine Options
|
||||||
|
#
|
||||||
|
# Items specific to machine configuration are listed here first for
|
||||||
|
# convenience, as they are usually the first thing people want to change.
|
||||||
|
#
|
||||||
|
# General emulator options are given in [emulator] below.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[machine]
|
||||||
|
# Specify the name of a machine configuration to load. Valid config_names
|
||||||
|
# are defined via machine configuration profiles in the /configs/machines
|
||||||
|
# directory.
|
||||||
|
#config_name = "ibm5160"
|
||||||
|
config_name = "ibm5160_hdd"
|
||||||
|
|
||||||
|
# Specify configuration overlays to load on top of machine configuration.
|
||||||
|
# Config overlays are a convenient way to swap or add to a base config.
|
||||||
|
# The 'ega' overlay will add an EGA card to a system that defaults to
|
||||||
|
# MDA or CGA, for example.
|
||||||
|
#
|
||||||
|
# - See 'machine_config_overlays.toml' for more examples, or define your own.
|
||||||
|
#config_overlays = ["ega"]
|
||||||
|
|
||||||
|
# Prefer OEM ROMs over other compatible ROMs, if present. Default: true.
|
||||||
|
prefer_oem = true
|
||||||
|
|
||||||
|
# Reload ROMs from disk when system is hard-rebooted (not ctrl-alt-del)
|
||||||
|
reload_roms = true
|
||||||
|
|
||||||
|
# Apply ROM patches defined in ROM sets. Disable this for authenticity
|
||||||
|
# as some patches may speed up boot time.
|
||||||
|
patch_roms = true
|
||||||
|
|
||||||
|
# Don't load any ROMs if true. Default: false
|
||||||
|
#no_roms = true
|
||||||
|
|
||||||
|
# Enable disassembly recording. This is similar to CPU instruction history,
|
||||||
|
# but records the disassembly of each instruction executed, sorted by
|
||||||
|
# address. This builds a disassembly listing of the program as it runs.
|
||||||
|
disassembly_recording = false
|
||||||
|
|
||||||
|
# Filename to save diassembly recording to.
|
||||||
|
# This will be saved in the 'traces' directory
|
||||||
|
disassembly_file = "disassembly.lst"
|
||||||
|
|
||||||
|
# Enable a console debugging port. Writes to this port will be printed to the
|
||||||
|
# host terminal. ESC bytes (0x1B) will be filtered to avoid terminal abuse.
|
||||||
|
#terminal_port = 0xE9
|
||||||
|
|
||||||
|
# Turbo Button
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Change the clock divisor/multiplier for the CPU to run the CPU faster than
|
||||||
|
# normal. Other devices like the timer will continue to run at the same rate.
|
||||||
|
#
|
||||||
|
# On IBM PC/XT, turbo increases CPU clock from 4.77Mhz to 7.16Mhz.
|
||||||
|
turbo = false
|
||||||
|
|
||||||
|
# Emulate phase offset of PIT vs CPU. Don't change this if you don't know why
|
||||||
|
# you would want to do that.
|
||||||
|
pit_phase = 0
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Input options
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[machine.input]
|
||||||
|
# Keyboard layouts are normally specified in machine configurations. You can
|
||||||
|
# override the keyboard layout here. Easier than editing all your machines.
|
||||||
|
# A keyboard mapping file compatible with the specified layout and keyboard
|
||||||
|
# type must be present.
|
||||||
|
|
||||||
|
keyboard_layout = "US"
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# CPU Options
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[machine.cpu]
|
||||||
|
|
||||||
|
# Enable CPU wait states. This includes wait states from DMA, memory access
|
||||||
|
# and device IO. Setting this to false may speed up the CPU, but reduce
|
||||||
|
# accuracy (Area 5150 will break)
|
||||||
|
wait_states = true
|
||||||
|
|
||||||
|
# Attempt to detect when the CPU is executing invalid instructions and halt.
|
||||||
|
# May need to disable for certain test programs like acid88
|
||||||
|
off_rails_detection = false
|
||||||
|
|
||||||
|
# What to do when the CPU has entered an unrecoverable halt condition.
|
||||||
|
# Valid options are:
|
||||||
|
# Continue - Do nothing; just keep running
|
||||||
|
# Warn - Keep running, but display a warning notification
|
||||||
|
# Stop - Stop the system and display a warning notification
|
||||||
|
on_halt = "Warn"
|
||||||
|
|
||||||
|
# Enable instruction history. This slows down the emulator a modest amount
|
||||||
|
# when enabled. Only enable if debugging.
|
||||||
|
instruction_history = false
|
||||||
|
|
||||||
|
# Enable MartyPC's internal emulator serivce interrupt at 0xFC. You may need
|
||||||
|
# to disable this if conflicts arise. 'mdebug.com' requires this to be set
|
||||||
|
# true.
|
||||||
|
service_interrupt = true
|
||||||
|
|
||||||
|
# CPU Tracing Options
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# CPU tracing may be enabled by specifying trace_mode
|
||||||
|
# Tracing does not begin unless trace_on == true or set in GUI
|
||||||
|
#
|
||||||
|
# Valid values for trace_mode:
|
||||||
|
# Instruction - Output per-instruction traces (slow, big)
|
||||||
|
# CycleText - Output per-cycle traces, text format (very slow, huge)
|
||||||
|
# CycleCsv - Output per-cycle traces, text/csv format (recommended)
|
||||||
|
# CycleSigrok - Output per-cycle traces, sigrok csv format (very slow, huge)
|
||||||
|
# Designed for import into sigrok PulseView for debugging.
|
||||||
|
# Use an import string of t,x20,l,l,x2,x3,l,l,l,l,l,l
|
||||||
|
|
||||||
|
# >>> WARNING: Any of these options will quickly make multi-gigabyte files <<<
|
||||||
|
#
|
||||||
|
# Additionally, a valid value for trace_file must be supplied.
|
||||||
|
#
|
||||||
|
trace_on = false
|
||||||
|
#trace_mode = "Instruction"
|
||||||
|
trace_mode = "CycleSigrok"
|
||||||
|
trace_file = "cycle_trace.log"
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Emulator paths
|
||||||
|
#
|
||||||
|
# By default, emulator paths are defined as relative to the base_dir path.
|
||||||
|
# If $base_dir$ is omitted from a path specifier, then that patch becomes
|
||||||
|
# an absolute path.
|
||||||
|
# Each path entry must be defined on a single line due to TOML grammar.
|
||||||
|
#
|
||||||
|
# Multiple entries for the same resource string can be defined for the
|
||||||
|
# following resources:
|
||||||
|
#
|
||||||
|
# hdd - MartyPC will search all defined paths for valid VHD images.
|
||||||
|
# rom - MartyPC will search all defined paths for valid ROMs.
|
||||||
|
# floppy - MartyPC will search all defined paths for valid floppy images.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[emulator]
|
||||||
|
# basedir: Base emulator data directory.
|
||||||
|
# Other emulator paths can be set as absolute paths, or relative to
|
||||||
|
# basedir with $basedir$
|
||||||
|
# The default is ".", effecting a portable installation with all
|
||||||
|
# directories relative to the current working directory.
|
||||||
|
basedir = "/home/gmgauthier/Retro/marty"
|
||||||
|
paths = [
|
||||||
|
{ resource = "machine", path = "$basedir$/configs/machines", recurse = true },
|
||||||
|
{ resource = "keyboard_layout", path = "$basedir$/configs/keyboard_layouts", recurse = false },
|
||||||
|
{ resource = "rom", path = "$basedir$/media/roms", recurse = true },
|
||||||
|
{ resource = "hdd", path = "$basedir$/media/hdds", recurse = true },
|
||||||
|
{ resource = "floppy", path = "$basedir$/media/floppies", recurse = true, create = true },
|
||||||
|
{ resource = "cartridge", path = "$basedir$/media/cartridges", recurse = true, create = true },
|
||||||
|
{ resource = "cassette", path = "$basedir$/media/cassettes", recurse = true, create = true },
|
||||||
|
{ resource = "dump", path = "$basedir$/output/dumps", create = true },
|
||||||
|
{ resource = "trace", path = "$basedir$/output/traces", create = true },
|
||||||
|
{ resource = "screenshot", path = "$basedir$/output/screenshots", create = true },
|
||||||
|
]
|
||||||
|
|
||||||
|
# Exclude any matching directories from recursion. Useful for temporarily
|
||||||
|
# hiding files, or moving files in and out of a "library" subdir.
|
||||||
|
ignore_dirs = ["parking"]
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------
|
||||||
|
# General emulator options
|
||||||
|
# -------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Power on the emulated machine on startup (only applicable in gui mode)
|
||||||
|
auto_poweron = true
|
||||||
|
|
||||||
|
# cpu_autostart: Run the CPU on startup - if false CPU will start paused
|
||||||
|
# (only applicable in gui mode)
|
||||||
|
cpu_autostart = true
|
||||||
|
|
||||||
|
# benchmark_mode: Run MartyPC in benchmark mode (cmdline: --benchmark-mode)
|
||||||
|
benchmark_mode = false
|
||||||
|
|
||||||
|
# headless: Run MartyPC without any windows
|
||||||
|
headless = false
|
||||||
|
|
||||||
|
# fuzzer: Run the instruction fuzzer (requires validator feature)
|
||||||
|
fuzzer = false
|
||||||
|
|
||||||
|
# title_hacks: Enable compatibility tweaks for specific software titles
|
||||||
|
title_hacks = true
|
||||||
|
|
||||||
|
# Debug mode does a few miscellaneous things.
|
||||||
|
# - CPU Autostart is disabled
|
||||||
|
# - Several debug panels are opened automatically
|
||||||
|
# - CPU Instruction history is turned on (overrides setting)
|
||||||
|
debug_mode = false
|
||||||
|
|
||||||
|
# Warn if MartyPC was compiled in debug mode. Disable this if you intend to
|
||||||
|
# do so and don't want the nag.
|
||||||
|
debug_warn = true
|
||||||
|
|
||||||
|
# Run the specified program instead of booting BIOS. The CPU reset vector will
|
||||||
|
# be set to 'run_bin_seg:run_bin_ofs'
|
||||||
|
#run_bin = "./program/a_effect.bin"
|
||||||
|
run_bin_seg = 0x1000
|
||||||
|
run_bin_ofs = 0x0000
|
||||||
|
|
||||||
|
[emulator.backend]
|
||||||
|
# Enable vsync. For wgpu frontend, I would recommend leaving this off. FIFO
|
||||||
|
# presentation mode increase latency and causes window resizing issues.
|
||||||
|
vsync = false
|
||||||
|
|
||||||
|
# There appears to be a bug in the wgpu backend that causes vertical stripes when
|
||||||
|
# running fullscreen under Intel graphics. This is a workaround for that issue, setting
|
||||||
|
# the surface size to one pixel less than fullscreen.
|
||||||
|
macos_stripe_fix = false
|
||||||
|
|
||||||
|
[emulator.audio]
|
||||||
|
# Set this to false to disable sound system initialization.
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[emulator.media]
|
||||||
|
# Provide a list of file extensions to interpret as raw floppy sector images.
|
||||||
|
raw_sector_image_extensions = ["img", "ima", "dsk", "mnx"]
|
||||||
|
|
||||||
|
# Default state of write protection for newly loaded floppy images.
|
||||||
|
write_protect_default = false
|
||||||
|
|
||||||
|
[[emulator.media.vhd]]
|
||||||
|
# VHD to mount into drive 0 (Typically C:)
|
||||||
|
drive = 0
|
||||||
|
filename = "DRIVE_C.vhd"
|
||||||
|
|
||||||
|
[[emulator.media.vhd]]
|
||||||
|
# VHD to mount into drive 1 (Typically D:)
|
||||||
|
drive = 1
|
||||||
|
filename = "DRIVE_D.vhd"
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Debugger Options
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[emulator.debugger]
|
||||||
|
# Create toast notifications for ROM checkpoints at this level.
|
||||||
|
checkpoint_notify_level = 0
|
||||||
|
# Create a toast notification when breakpoint hit
|
||||||
|
breakpoint_notify = true
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Emulator Window Options
|
||||||
|
#
|
||||||
|
# MartyPC will always have a main window, unless run headless. The main
|
||||||
|
# window can be set to display a video adapter, or not. Additional windows
|
||||||
|
# can be defined in [[emulator.window]] sections. Multiple windows can
|
||||||
|
# reference the same video card - aperture and scaling options are set
|
||||||
|
# per-window, so you can visualize an adapter's output multiple ways.
|
||||||
|
# Of course, every window you create has a cost in memory throughput and
|
||||||
|
# rendering time.
|
||||||
|
#
|
||||||
|
# At least one [[emulator.window]] section must be present. The first
|
||||||
|
# [[emulator.window]] defines the main window.
|
||||||
|
#
|
||||||
|
# A note about sizes - the real minimum size of a window is the unscaled size
|
||||||
|
# of the card's selected video aperture, which may be larger than expected
|
||||||
|
# due to overscan. If this is larger than the requested min_size, min_size
|
||||||
|
# will be ignored, the scaler will not resample downwards.
|
||||||
|
# Therefore, if you specifically want a 640x480 window, you should
|
||||||
|
# select the "Cropped" aperture.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[emulator.window]]
|
||||||
|
# Provide a name for this window. (Required)
|
||||||
|
name = "Main GUI"
|
||||||
|
|
||||||
|
# If this parameter is provided, the window will be created at *at least*
|
||||||
|
# this size, or the video aperture resolution, whichever is higher.
|
||||||
|
# It is useful to use this value for the main window, but for secondary
|
||||||
|
# display windows, you may wish to use card_scale instead.
|
||||||
|
size = { w = 1024, h = 768 }
|
||||||
|
|
||||||
|
# If this window has a GUI menu, add the vertical height of the menu to the
|
||||||
|
# window height, and adjust the scaler to display the emulated display
|
||||||
|
# beneath it. Otherwise, if you create a 640x480 Cropped main window,
|
||||||
|
# the menu bar will overlap the top of image unless the GUI is hidden.
|
||||||
|
menu_adjust = true
|
||||||
|
|
||||||
|
# If set to false, the window cannot be resized by the user. It may still
|
||||||
|
# resize if the associated video card changes resolutions or the display
|
||||||
|
# aperture is changed.
|
||||||
|
resizable = true
|
||||||
|
|
||||||
|
# If this field is present, the window will display the specified card in its
|
||||||
|
# client area. If you do not want the window to display a card, comment this
|
||||||
|
# out.
|
||||||
|
# card_id is the numeric index of cards defined in a Machine configuration.
|
||||||
|
card_id = 0
|
||||||
|
|
||||||
|
# Size the initial window dimensions to the specified card's aperture size
|
||||||
|
# times this number.
|
||||||
|
# Setting this value overrides 'size' and 'resizable'.
|
||||||
|
#card_scale = 1
|
||||||
|
|
||||||
|
# Specify the scaler preset to use for this window. See the
|
||||||
|
# [[emulator.scaler_preset]] definitions defined below for reference.
|
||||||
|
scaler_preset = "default"
|
||||||
|
|
||||||
|
# Request that this window remain on top. Not recommended for main window.
|
||||||
|
always_on_top = false
|
||||||
|
|
||||||
|
# Second window, optional. Set 'enabled' to true to activate.
|
||||||
|
[[emulator.window]]
|
||||||
|
enabled = false
|
||||||
|
name = "Secondary Window"
|
||||||
|
size = { w = 800, h = 600 }
|
||||||
|
resizable = false
|
||||||
|
card_id = 0
|
||||||
|
card_scale = 1
|
||||||
|
scaler_preset = "Green CRT"
|
||||||
|
always_on_top = false
|
||||||
|
|
||||||
|
# Third window, optional
|
||||||
|
[[emulator.window]]
|
||||||
|
enabled = false
|
||||||
|
name = "Tertiary Window"
|
||||||
|
size = { w = 640, h = 480 }
|
||||||
|
resizable = false
|
||||||
|
card_id = 0
|
||||||
|
card_scale = 1
|
||||||
|
scaler_preset = "default"
|
||||||
|
always_on_top = false
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Emulator Scaler Presets
|
||||||
|
#
|
||||||
|
# Rather than define scaler settings for each possible window/display target,
|
||||||
|
# targets can reference a scaler preset defined here. Any number of
|
||||||
|
# [[emulator.scaler_preset]] sections can be defined, as long as the 'name'
|
||||||
|
# field is unique.
|
||||||
|
#
|
||||||
|
# At least one preset named "default" must be present.
|
||||||
|
#
|
||||||
|
# MartyPC's display pipeline for a video card has two stages - rendering
|
||||||
|
# and shading. Renderer options are listed under
|
||||||
|
# [emulator.scaler_preset.renderer] blocks. These must appear at the end
|
||||||
|
# of a scaler_preset definition.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[emulator.scaler_preset]]
|
||||||
|
# Provide a unique name for this preset. Reference this name in window
|
||||||
|
# definitions. A name is required.
|
||||||
|
name = "default" # Default preset must exist! Do not rename.
|
||||||
|
|
||||||
|
# Specify the scaler mode to use for this window when displaying a video card.
|
||||||
|
# The default value is "Integer". This has no effect if no card_id is provided.
|
||||||
|
#
|
||||||
|
# Valid options for Scaler mode are
|
||||||
|
# Fixed - Video and shader output will be displayed at native base resolution
|
||||||
|
# Integer - Video and shader output will be scaled to the largest integer
|
||||||
|
# multiple that will fit in the window. This generally produces the
|
||||||
|
# clearest results, but can leave large black borders.
|
||||||
|
# Fit - Video will be scaled proportionally to fit the window.
|
||||||
|
# Stretch - Video will be scaled to fit the window.
|
||||||
|
mode = "Fit"
|
||||||
|
|
||||||
|
# Valid options for filter are:
|
||||||
|
# Linear - Bilinear filtering. Best results but may introduce blur.
|
||||||
|
# Nearest - Nearest neighbor filtering. Crisp, but may introduce scanline
|
||||||
|
# artifacts at non-integer scale sizes. Looks terrible with crt
|
||||||
|
# effects.
|
||||||
|
filter = "Linear"
|
||||||
|
|
||||||
|
# RGBA color to use for the 'border' area around scaler output.
|
||||||
|
# This is also used for the background color of a window with no card
|
||||||
|
# attachment.
|
||||||
|
border_color = 0x323338 # Medium gray.
|
||||||
|
|
||||||
|
# Enable or disable CRT shader effects
|
||||||
|
crt_effect = false
|
||||||
|
|
||||||
|
# Degree to which the corners of the display should be rounded, from
|
||||||
|
# 0.0 (sharp corners) to 1.0 (maximum rounding)
|
||||||
|
crt_corner_radius = 0.0
|
||||||
|
|
||||||
|
# Amount of barrel distortion from 0 (no distortion) to 1.0
|
||||||
|
crt_barrel_distortion = 0.0
|
||||||
|
|
||||||
|
# Emulated phosphor type
|
||||||
|
# Valid values are:
|
||||||
|
# Color - (default) Normal color CRT
|
||||||
|
# White - White CRT phosphors
|
||||||
|
# Green - Green CRT phosphors
|
||||||
|
# Amber - Amber CRT phosphors
|
||||||
|
crt_phosphor_type = "Color"
|
||||||
|
|
||||||
|
# Emulate scanlines?
|
||||||
|
crt_scanlines = false
|
||||||
|
|
||||||
|
# Gamma correction value (only used when crt_phosphor_type != Color)
|
||||||
|
gamma = 1.0
|
||||||
|
|
||||||
|
# Renderer options. In MartyPC a renderer is responsible for presenting data
|
||||||
|
# to the scaler for display. These options are not technically part of the
|
||||||
|
# scaler, but included in scaler presets for convenience.
|
||||||
|
[emulator.scaler_preset.renderer]
|
||||||
|
#
|
||||||
|
# display_aperture: Valid options are:
|
||||||
|
# Cropped - Display the card in the "traditional" resolution for each graphics
|
||||||
|
# mode, with no overscan. Ie, 320x200 for low resolution CGA,
|
||||||
|
# 640x350 for high resolution EGA, 640x480 for high resolution VGA
|
||||||
|
# Accurate - Display the card with overscan extents as they would appear on a
|
||||||
|
# typical CRT monitor
|
||||||
|
# Full - Display the entire overscan area
|
||||||
|
# Debug - Display the entire video field, including horizontal and vertical
|
||||||
|
# blanking periods. Helpful for debugging video code.
|
||||||
|
display_aperture = "Accurate"
|
||||||
|
|
||||||
|
# Aspect-correct scaler output to 4:3. This will make the video output more
|
||||||
|
# visually accurate to what you would see on a real monitor, but will introduce
|
||||||
|
# vertical blur if using Integer or Fixed scaling modes. This can be toggled in
|
||||||
|
# the GUI.
|
||||||
|
aspect_correction = true
|
||||||
|
|
||||||
|
# Aspect ratio to use, representing a w:h ratio. Both fields should be
|
||||||
|
# integers.
|
||||||
|
aspect_ratio = { h = 4, v = 3 }
|
||||||
|
|
||||||
|
# Emulate a composite color signal (and produce artifact color)
|
||||||
|
# Has no effect unless card type is CGA.
|
||||||
|
composite = false
|
||||||
|
|
||||||
|
# Define additional scaler presets below...
|
||||||
|
[[emulator.scaler_preset]]
|
||||||
|
name = "IBM 5153"
|
||||||
|
filter = "Linear"
|
||||||
|
border_color = 0x323338 # Medium gray.
|
||||||
|
crt_effect = true
|
||||||
|
crt_barrel_distortion = 0.2
|
||||||
|
crt_corner_radius = 0.2
|
||||||
|
crt_phosphor_type = "Color"
|
||||||
|
crt_scanlines = true
|
||||||
|
gamma = 1.0
|
||||||
|
[emulator.scaler_preset.renderer]
|
||||||
|
display_aperture = "Accurate"
|
||||||
|
aspect_correction = true
|
||||||
|
aspect_ratio = { h = 4, v = 3 }
|
||||||
|
composite = false
|
||||||
|
|
||||||
|
[[emulator.scaler_preset]]
|
||||||
|
name = "Green CRT"
|
||||||
|
filter = "Linear"
|
||||||
|
border_color = 0x323338 # Medium gray.
|
||||||
|
crt_effect = true
|
||||||
|
crt_barrel_distortion = 0.2
|
||||||
|
crt_corner_radius = 0.2
|
||||||
|
crt_phosphor_type = "Green"
|
||||||
|
crt_scanlines = true
|
||||||
|
gamma = 1.0
|
||||||
|
[emulator.scaler_preset.renderer]
|
||||||
|
display_aperture = "Accurate"
|
||||||
|
aspect_correction = true
|
||||||
|
aspect_ratio = { h = 4, v = 3 }
|
||||||
|
composite = false
|
||||||
|
|
||||||
|
[[emulator.scaler_preset]]
|
||||||
|
name = "Amber CRT"
|
||||||
|
filter = "Linear"
|
||||||
|
border_color = 0x323338 # Medium gray.
|
||||||
|
crt_effect = true
|
||||||
|
crt_barrel_distortion = 0.2
|
||||||
|
crt_corner_radius = 0.2
|
||||||
|
crt_phosphor_type = "Amber"
|
||||||
|
crt_scanlines = true
|
||||||
|
gamma = 1.0
|
||||||
|
[emulator.scaler_preset.renderer]
|
||||||
|
display_aperture = "Accurate"
|
||||||
|
aspect_correction = true
|
||||||
|
composite = false
|
||||||
|
aspect_ratio = { h = 4, v = 3 }
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# General Input Options
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[emulator.input]
|
||||||
|
# Some platforms reverse the left and right mouse button id #'s.
|
||||||
|
# We try to detect this, but it can be overridden here.
|
||||||
|
reverse_mouse_buttons = false
|
||||||
|
|
||||||
|
# Define hotkeys.
|
||||||
|
# Each hotkey definition specifies an event enum and a list of keycodes. See
|
||||||
|
# one of the keyboard mapping files in /config/keyboards for a list of valid
|
||||||
|
# keycode names.
|
||||||
|
#
|
||||||
|
# scope: When is the hotkey recognized?
|
||||||
|
# "Any" - Hotkey triggers in any context
|
||||||
|
# "Gui" - Hotkey only triggers when GUI has focus
|
||||||
|
# "Machine" - Hotkey only triggers when emulated machine has focus
|
||||||
|
# "Captured" - Hotkey only triggers when emulated machine has captured input
|
||||||
|
#
|
||||||
|
# capture_disable: Disable this hotkey when input is captured. Setting this and
|
||||||
|
# the "Captured" scope will disable the hotkey
|
||||||
|
#
|
||||||
|
# Multiple events can be mapped to the same input sequence. They will all fire
|
||||||
|
# when that key sequence is pressed.
|
||||||
|
#
|
||||||
|
# Events are a bit limited at first. More hotkey events are coming in the future.
|
||||||
|
hotkeys = [
|
||||||
|
{ event = "CaptureMouse", keys = ["ControlLeft", "F10"], scope = "Any", capture_disable = false },
|
||||||
|
{ event = "CtrlAltDel", keys = ["ControlLeft", "F11"], scope = "Any", capture_disable = false },
|
||||||
|
{ event = "Reboot", keys = ["ControlLeft", "F12"], scope = "Any", capture_disable = false },
|
||||||
|
{ event = "Screenshot", keys = ["ControlLeft", "F5"], scope = "Any", capture_disable = false },
|
||||||
|
{ event = "ToggleGui", keys = ["ControlLeft", "F1"], scope = "Any", capture_disable = false },
|
||||||
|
{ event = "ToggleFullscreen", keys = ["ControlLeft", "Enter"], scope = "Any", capture_disable = false },
|
||||||
|
{ event = "DebugStepOver", keys = ["F10"], scope="Gui", capture_disable = false },
|
||||||
|
{ event = "DebugStep", keys = ["F11"], scope="Gui", capture_disable = false },
|
||||||
|
# Joystick hotkeys. Only enabled when joystick keyboard emulation is enabled.
|
||||||
|
{ event = "JoyToggle", keys = ["ControlLeft", "F9"], scope="Any", capture_disable = false },
|
||||||
|
]
|
||||||
|
|
||||||
|
# Enable keyboard -> joystick emulation. This can be toggled via the JoyToggle hotkey
|
||||||
|
# above, so it isn't necessary to set this to true unless you want it enabled by default.
|
||||||
|
keyboard_joystick = false
|
||||||
|
|
||||||
|
joystick_keys = [
|
||||||
|
{ input = "JoyButton1", key = "AltRight" },
|
||||||
|
{ input = "JoyButton2", key = "ControlRight" },
|
||||||
|
{ input = "JoyUp", key = "ArrowUp" },
|
||||||
|
{ input = "JoyLeft", key = "ArrowLeft"},
|
||||||
|
{ input = "JoyRight", key = "ArrowRight"},
|
||||||
|
{ input = "JoyDown", key = "ArrowDown" }
|
||||||
|
]
|
||||||
|
|
||||||
|
# Help the developer debug any keyboard issues you may be having. With this
|
||||||
|
# feature set to true, MartyPC will print information about every keystroke
|
||||||
|
# to the terminal.
|
||||||
|
debug_keyboard = false
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Benchmarking (not yet implemented - configs are placeholder)
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[emulator.benchmark]
|
||||||
|
# Machine configuration to benchmark
|
||||||
|
config_name = "ibm5160"
|
||||||
|
config_overlays = []
|
||||||
|
prefer_oem = true
|
||||||
|
|
||||||
|
# Valid options for benchmark_end_condition are:
|
||||||
|
# "Timeout" - Benchmark for 'timeout' seconds and exit
|
||||||
|
# "Trigger" - Terminate benchmark on signal from internal service interrupt
|
||||||
|
# "Cycles" - Terminate benchmark after 'cycles' CPU cycles
|
||||||
|
end_condition = "Timeout"
|
||||||
|
timeout = 60
|
||||||
|
cycles = 572400000 # 2 minutes
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# GUI options
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[gui]
|
||||||
|
|
||||||
|
# Select the color theme for the GUI.
|
||||||
|
# Valid values are:
|
||||||
|
# - DefaultLight : default EGUI Light theme
|
||||||
|
# - Lilac : light theme variant
|
||||||
|
# - Hal : light theme variant
|
||||||
|
# - DefaultDark : default EGUI Dark theme (recommended)
|
||||||
|
# - Purple : dark theme variant
|
||||||
|
# - Cobalt : dark theme variant
|
||||||
|
theme = "Purple"
|
||||||
|
|
||||||
|
# Theme for the top menu can be defined independently
|
||||||
|
menu_theme = "DefaultLight"
|
||||||
|
|
||||||
|
# Global zoom level for GUI. Smaller numbers will make all the GUI elements
|
||||||
|
# smaller. Default: 1.0 Max: 1.0 Min: 0.1
|
||||||
|
zoom = 1.0
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Options for the CPU Validator module.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# You must have an Arduino8088 connected via USB to utilize
|
||||||
|
# the validator. For more information, see
|
||||||
|
# https://github.com/dbalsom/arduino_8088
|
||||||
|
[validator]
|
||||||
|
type = "Arduino8088"
|
||||||
|
trigger_address = 0xFFFF0
|
||||||
|
trace_file = "./traces/validator_trace.log"
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Options for JSON test facilities
|
||||||
|
# MartyPC can create JSON tests or validate them.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Test generation requires a functioning CPU Validator module, see above
|
||||||
|
[tests]
|
||||||
|
|
||||||
|
# Valid values for test_mode are:
|
||||||
|
# None - Do not generate or validate tests (default - run emulator normally)
|
||||||
|
# Generate - generate tests based on supplied parameters
|
||||||
|
# Valdidate - validate tests
|
||||||
|
test_mode = "None"
|
||||||
|
|
||||||
|
# Random seed for testing. The same random seed should produce the same
|
||||||
|
# set of tests. If you want a different set of tests, change this to any
|
||||||
|
# other number.
|
||||||
|
test_seed = 1234
|
||||||
|
|
||||||
|
# Directory to look for / place tests
|
||||||
|
test_dir = "tests/v1"
|
||||||
|
|
||||||
|
# Opcode range to generate or validate. Provide start and end opcodes.
|
||||||
|
# If start == end, that single opcode will be generated or validated.
|
||||||
|
test_opcode_range = [0, 0]
|
||||||
|
|
||||||
|
# List of opcodes to exclude in generation or validation.
|
||||||
|
test_opcode_exclude_list = [0xF1]
|
||||||
|
|
||||||
|
# Number of tests to generate per opcode.
|
||||||
|
test_opcode_gen_count = 5000
|
||||||
|
|
||||||
|
# If true, append to existing test JSON if < test_opcode_gen_count.
|
||||||
|
# If false, generation will replace any existing JSON file.
|
||||||
|
test_opcode_gen_append = true
|
BIN
media/floppies/DATA/basic1.img
Normal file
BIN
media/floppies/DATA/basic1.img
Normal file
Binary file not shown.
BIN
media/floppies/DATA/pcdisk1.img
Normal file
BIN
media/floppies/DATA/pcdisk1.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS330/Disk1.img
Normal file
BIN
media/floppies/MSDOS330/Disk1.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS330/Disk2.img
Normal file
BIN
media/floppies/MSDOS330/Disk2.img
Normal file
Binary file not shown.
16
media/floppies/MSDOS330/winworldpc.com.txt
Normal file
16
media/floppies/MSDOS330/winworldpc.com.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has origniated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing abandonware -- providing
|
||||||
|
free, unrestricted access to a large collection of old operating systems
|
||||||
|
and applications. We believe old software which has fallen out of use
|
||||||
|
should be available for anyone to use for the purposes of learning and
|
||||||
|
experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello, you can do so easily
|
||||||
|
with no registration required!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
BIN
media/floppies/MSDOS331/Disk1.img
Normal file
BIN
media/floppies/MSDOS331/Disk1.img
Normal file
Binary file not shown.
16
media/floppies/MSDOS331/winworldpc.com.txt
Normal file
16
media/floppies/MSDOS331/winworldpc.com.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has origniated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing abandonware -- providing
|
||||||
|
free, unrestricted access to a large collection of old operating systems
|
||||||
|
and applications. We believe old software which has fallen out of use
|
||||||
|
should be available for anyone to use for the purposes of learning and
|
||||||
|
experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello, you can do so easily
|
||||||
|
with no registration required!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
BIN
media/floppies/MSDOS401/DOS Shell.img
Normal file
BIN
media/floppies/MSDOS401/DOS Shell.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS401/Operating.img
Normal file
BIN
media/floppies/MSDOS401/Operating.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS401/Setup.img
Normal file
BIN
media/floppies/MSDOS401/Setup.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS622+/Disk1.img
Normal file
BIN
media/floppies/MSDOS622+/Disk1.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS622+/Disk1.jpg
Normal file
BIN
media/floppies/MSDOS622+/Disk1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 105 KiB |
BIN
media/floppies/MSDOS622+/Disk2.img
Normal file
BIN
media/floppies/MSDOS622+/Disk2.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS622+/Disk2.jpg
Normal file
BIN
media/floppies/MSDOS622+/Disk2.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 104 KiB |
BIN
media/floppies/MSDOS622+/Disk3.img
Normal file
BIN
media/floppies/MSDOS622+/Disk3.img
Normal file
Binary file not shown.
BIN
media/floppies/MSDOS622+/Disk3.jpg
Normal file
BIN
media/floppies/MSDOS622+/Disk3.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
@ -0,0 +1,8 @@
|
|||||||
|
Microsoft MS-DOS 6.22 Plus Enhanced Tools
|
||||||
|
Released in 1994 by Microsoft
|
||||||
|
For IBM PCs and Compatibles.
|
||||||
|
3.5" 1.44mb floppy disk media
|
||||||
|
|
||||||
|
6.22 was the last standalone DOS product sold by Microsoft.
|
||||||
|
|
||||||
|
Verified from multiple sources.
|
BIN
media/floppies/MSDOS622+/Suppdisk.img
Normal file
BIN
media/floppies/MSDOS622+/Suppdisk.img
Normal file
Binary file not shown.
15
media/floppies/MSDOS622+/winworldpc.com.txt
Normal file
15
media/floppies/MSDOS622+/winworldpc.com.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has originated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing historic software --
|
||||||
|
providing free, unrestricted access to a large collection of vintage
|
||||||
|
operating systems and applications. We believe old software that has
|
||||||
|
fallen out of use should be available for anyone to use for the purposes
|
||||||
|
of learning and experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
BIN
media/floppies/MSDOS622s/Suppdisk.img
Normal file
BIN
media/floppies/MSDOS622s/Suppdisk.img
Normal file
Binary file not shown.
15
media/floppies/MSDOS622s/winworldpc.com.txt
Normal file
15
media/floppies/MSDOS622s/winworldpc.com.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has originated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing historic software --
|
||||||
|
providing free, unrestricted access to a large collection of vintage
|
||||||
|
operating systems and applications. We believe old software that has
|
||||||
|
fallen out of use should be available for anyone to use for the purposes
|
||||||
|
of learning and experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
BIN
media/floppies/PCDOS401/Install.img
Normal file
BIN
media/floppies/PCDOS401/Install.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS401/Operating.img
Normal file
BIN
media/floppies/PCDOS401/Operating.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS502/Disk1.img
Normal file
BIN
media/floppies/PCDOS502/Disk1.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS502/Disk2.img
Normal file
BIN
media/floppies/PCDOS502/Disk2.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS502/Disk3.img
Normal file
BIN
media/floppies/PCDOS502/Disk3.img
Normal file
Binary file not shown.
16
media/floppies/PCDOS502/winworldpc.com.txt
Normal file
16
media/floppies/PCDOS502/winworldpc.com.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has origniated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing abandonware -- providing
|
||||||
|
free, unrestricted access to a large collection of old operating systems
|
||||||
|
and applications. We believe old software which has fallen out of use
|
||||||
|
should be available for anyone to use for the purposes of learning and
|
||||||
|
experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello, you can do so easily
|
||||||
|
with no registration required!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
BIN
media/floppies/PCDOS630/Disk1.img
Normal file
BIN
media/floppies/PCDOS630/Disk1.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS630/Disk2.img
Normal file
BIN
media/floppies/PCDOS630/Disk2.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS630/Disk3.img
Normal file
BIN
media/floppies/PCDOS630/Disk3.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS630/Disk4.img
Normal file
BIN
media/floppies/PCDOS630/Disk4.img
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS630/Disk5.img
Normal file
BIN
media/floppies/PCDOS630/Disk5.img
Normal file
Binary file not shown.
16
media/floppies/PCDOS630/winworldpc.com.txt
Normal file
16
media/floppies/PCDOS630/winworldpc.com.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has origniated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing abandonware -- providing
|
||||||
|
free, unrestricted access to a large collection of old operating systems
|
||||||
|
and applications. We believe old software which has fallen out of use
|
||||||
|
should be available for anyone to use for the purposes of learning and
|
||||||
|
experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello, you can do so easily
|
||||||
|
with no registration required!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
14
media/floppies/PCDOS700_XDF/IBM PC-DOS 7.0.txt
Normal file
14
media/floppies/PCDOS700_XDF/IBM PC-DOS 7.0.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
IBM PC-DOS 7.0
|
||||||
|
Released in 1994 by IBM
|
||||||
|
For IBM PC compatibles
|
||||||
|
|
||||||
|
PC-DOS 7, AKA "IBM PC DOS 7.00, revision 0", adds the REXX
|
||||||
|
Programming language, XDF 1.86MB 3.5" floppy disk support, and
|
||||||
|
Stacker Disk compression.
|
||||||
|
|
||||||
|
This version was distributed on 3.5" media that used a special 1.8MB
|
||||||
|
"XDF" format. This format is not compatible with USB floppy drives or
|
||||||
|
most disk utilities.
|
||||||
|
|
||||||
|
To create working disks, you must run the Xdfcopy utility from DOS on
|
||||||
|
a 100% IBM PC compatible computer with a real 1.44mb floppy drive.
|
BIN
media/floppies/PCDOS700_XDF/Images/144US1.DSK
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/144US1.DSK
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS700_XDF/Images/144US2.XDF
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/144US2.XDF
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS700_XDF/Images/144US3.XDF
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/144US3.XDF
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS700_XDF/Images/144US4.XDF
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/144US4.XDF
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS700_XDF/Images/144US5.XDF
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/144US5.XDF
Normal file
Binary file not shown.
BIN
media/floppies/PCDOS700_XDF/Images/LOADDSKF.EXE
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/LOADDSKF.EXE
Normal file
Binary file not shown.
14
media/floppies/PCDOS700_XDF/Images/MAKE.BAT
Normal file
14
media/floppies/PCDOS700_XDF/Images/MAKE.BAT
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
pause 'insert diskette driver a: and press <ENTER>'
|
||||||
|
loaddskf.exe 144us1.dsk a:
|
||||||
|
|
||||||
|
pause 'insert diskette driver a: and press <ENTER>'
|
||||||
|
xdfcopy.exe 144us2.xdf a: /y /nv
|
||||||
|
|
||||||
|
pause 'insert diskette driver a: and press <ENTER>'
|
||||||
|
xdfcopy.exe 144us3.xdf a: /y /nv
|
||||||
|
|
||||||
|
pause 'insert diskette driver a: and press <ENTER>'
|
||||||
|
xdfcopy.exe 144us4.xdf a: /y /nv
|
||||||
|
|
||||||
|
pause 'insert diskette driver a: and press <ENTER>'
|
||||||
|
xdfcopy.exe 144us5.xdf a: /y /nv
|
BIN
media/floppies/PCDOS700_XDF/Images/XDFCOPY.EXE
Normal file
BIN
media/floppies/PCDOS700_XDF/Images/XDFCOPY.EXE
Normal file
Binary file not shown.
15
media/floppies/PCDOS700_XDF/winworldpc.com.txt
Normal file
15
media/floppies/PCDOS700_XDF/winworldpc.com.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
======================= http://www.winworldpc.com =======================
|
||||||
|
This archive has originated from WinWorld
|
||||||
|
|
||||||
|
WinWorld is a site devoted to saving and sharing historic software --
|
||||||
|
providing free, unrestricted access to a large collection of vintage
|
||||||
|
operating systems and applications. We believe old software that has
|
||||||
|
fallen out of use should be available for anyone to use for the purposes
|
||||||
|
of learning and experimentation.
|
||||||
|
|
||||||
|
Our downloads library can be accessed from our website
|
||||||
|
|
||||||
|
Stop by WinBoards, our small but long-standing community. Whether you're
|
||||||
|
looking for help or just dropping by to say hello!
|
||||||
|
|
||||||
|
Do visit us at http://www.WinWorldPC.com
|
30
media/floppies/readme.md
Normal file
30
media/floppies/readme.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
### Floppy Directory
|
||||||
|
|
||||||
|
Put floppy images in this directory. Valid image formats are flat sector images
|
||||||
|
of the type created by WinImage, dd or other such utilities, typically with \*.img
|
||||||
|
or \*.ima extensions. Compressed \*.imz images are not supported.
|
||||||
|
|
||||||
|
MartyPC will adjust the floppy drive size within the capabilities of the currently
|
||||||
|
emulated machine, based on the size of the image loaded. Thus if you load a 720KB
|
||||||
|
floppy image, the drive becomes a 720KB floppy drive. There is no need to configure
|
||||||
|
this setting.
|
||||||
|
|
||||||
|
However, if emulating a IBM PC or XT, note that certain floppy sizes will not work
|
||||||
|
as the machine/BIOS does not know how to handle a disk of that size.
|
||||||
|
|
||||||
|
Floppy images must be one of these exact file sizes:
|
||||||
|
|
||||||
|
|bytes|type| |
|
||||||
|
|----|----|-------|
|
||||||
|
|163,840 | 160KB floppy, single-sided | Rare, only used by the earliest PCs.|
|
||||||
|
|184,320 | 180KB floppy, single-sided | Rare, only used by the earliest PCs.|
|
||||||
|
|327,680 | 320KB floppy, double-sided | Somewhat rare. |
|
||||||
|
|368,640 | 360KB floppy, double-sided | Extremely common. |
|
||||||
|
|737,280 | 720KB floppy, double-sided | Extremely common. |
|
||||||
|
|1,228,800 | 1.2MB floppy, double-sided | Extremely common. |
|
||||||
|
|
||||||
|
The exception is anything smaller than 163,840 bytes will be loaded as that size,
|
||||||
|
padded with 0s.
|
||||||
|
This is a convenience feature for development of boot sector software or loading
|
||||||
|
of boot sector demos and games.
|
||||||
|
|
BIN
media/hdds/DRIVE_C.vhd
Normal file
BIN
media/hdds/DRIVE_C.vhd
Normal file
Binary file not shown.
BIN
media/hdds/DRIVE_D.vhd
Normal file
BIN
media/hdds/DRIVE_D.vhd
Normal file
Binary file not shown.
9
media/hdds/readme.md
Normal file
9
media/hdds/readme.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
### HDD Directory
|
||||||
|
|
||||||
|
This directory will store the VHDs created by the emulator.
|
||||||
|
|
||||||
|
VHDs in this directory will be selectable via a menu from within MartyPC.
|
||||||
|
|
||||||
|
Currently, only one type of VHD is supported, limited by the largest geometry
|
||||||
|
the IBM/Xebec drive controller was able to support. In the future as IDE
|
||||||
|
support is added larger drives will be available.
|
BIN
media/roms/AWARD/award-2.05.rom
Normal file
BIN
media/roms/AWARD/award-2.05.rom
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.5_8PC.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.5_8PC.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.5_8TC_PEN.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.5_8TC_PEN.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.5_8XC.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.5_8XC.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8P.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8P.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8PC.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8PC.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8T.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8T.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8TC.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8TC.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8X.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8X.ROM
Normal file
Binary file not shown.
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8XC.ROM
Normal file
BIN
media/roms/GLaBIOS/GLABIOS_0.2.6_8XC.ROM
Normal file
Binary file not shown.
BIN
media/roms/IBM/ibm-pc-1981-10-19.rom
Normal file
BIN
media/roms/IBM/ibm-pc-1981-10-19.rom
Normal file
Binary file not shown.
BIN
media/roms/IBM/ibm-pc-1982-10-27.rom
Normal file
BIN
media/roms/IBM/ibm-pc-1982-10-27.rom
Normal file
Binary file not shown.
BIN
media/roms/IBM/ibm-vga.rom
Normal file
BIN
media/roms/IBM/ibm-vga.rom
Normal file
Binary file not shown.
BIN
media/roms/IBM/ibm-xt-1986-05-09.rom
Normal file
BIN
media/roms/IBM/ibm-xt-1986-05-09.rom
Normal file
Binary file not shown.
BIN
media/roms/IBM/ibm_xebec_62x0822_1985.bin
Normal file
BIN
media/roms/IBM/ibm_xebec_62x0822_1985.bin
Normal file
Binary file not shown.
BIN
media/roms/PCEM/BIOS_5160_08NOV82_U18_1501512.BIN
Normal file
BIN
media/roms/PCEM/BIOS_5160_08NOV82_U18_1501512.BIN
Normal file
Binary file not shown.
BIN
media/roms/PCEM/BIOS_5160_08NOV82_U19_5000027.BIN
Normal file
BIN
media/roms/PCEM/BIOS_5160_08NOV82_U19_5000027.BIN
Normal file
Binary file not shown.
BIN
media/roms/ibm-xt-1982-11-08.rom
Normal file
BIN
media/roms/ibm-xt-1982-11-08.rom
Normal file
Binary file not shown.
BIN
media/roms/ide_at.bin
Normal file
BIN
media/roms/ide_at.bin
Normal file
Binary file not shown.
BIN
media/roms/ide_xt.bin
Normal file
BIN
media/roms/ide_xt.bin
Normal file
Binary file not shown.
BIN
media/roms/ide_xt_1_1_5.bin
Normal file
BIN
media/roms/ide_xt_1_1_5.bin
Normal file
Binary file not shown.
BIN
media/roms/pce-0.2.2-xt-pcdos-3.30.zip
Normal file
BIN
media/roms/pce-0.2.2-xt-pcdos-3.30.zip
Normal file
Binary file not shown.
35
media/roms/readme.md
Normal file
35
media/roms/readme.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# MartyPC ROM and ROM Definition Guide
|
||||||
|
|
||||||
|
## ROM Directory
|
||||||
|
|
||||||
|
If you're reading this, you've found the main ROM directory! Place your ROMs in this directory. If this is the default
|
||||||
|
ROM directory (`/media/roms` in a portable install) then this entire directory will be searched recursively for ROM
|
||||||
|
definition files, and subsequently any defined ROM files.
|
||||||
|
|
||||||
|
Most common sources of ROM images for the IBM PC 5150 or IBM XT 5160 should work, including MAME, PCem, 86Box and minuszerodegrees.
|
||||||
|
|
||||||
|
If multiple valid sets of ROMs are detected for a specified machine, MartyPC will use the 'best' set as decided by OEM flag and
|
||||||
|
release date.
|
||||||
|
|
||||||
|
Please see the MartyPC Wiki for more information on using ROMs with MartyPC:
|
||||||
|
|
||||||
|
https://github.com/dbalsom/martypc/wiki/ROMs
|
||||||
|
|
||||||
|
### Tips
|
||||||
|
* If you're not sure what ROMs to use, you can copy all the ROMs from the PCem or 86Box ROM distributions into the ROMs folder, and
|
||||||
|
MartyPC should find what it needs and ignore the rest.
|
||||||
|
* You can run MartyPC with the `--romscan` argument to see what ROMs MartyPC finds and detects. If you're having issues with ROM detection, including
|
||||||
|
this argument in your issue report would be very helpful.
|
||||||
|
* If you wish to omit certain directories from search, such as 'parking', you can add those directory names to the main
|
||||||
|
configuration's 'ignore_dirs'. This can be handy to control which ROMs are *not* used if you're otherwise struggling with the ROM priority logic.
|
||||||
|
|
||||||
|
## ROM Definition Files
|
||||||
|
MartyPC uses **ROM Definition Files** to define and identify ROMs to use. This provides a flexible and extensible system.
|
||||||
|
If you find new ROMs that aren't defined yet, you can add them (although please let me know about them!)
|
||||||
|
|
||||||
|
If you are a ROM developer, you can create your own ROM definition files, and reference them in custom machine configurations.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
172
media/roms/romdef.toml
Normal file
172
media/roms/romdef.toml
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
# romdef.toml
|
||||||
|
# Main ROM definition file for MartyPC.
|
||||||
|
#
|
||||||
|
# You can create your own ROM definition files. MartyPC will attempt to load
|
||||||
|
# all toml files found in the rom directory.
|
||||||
|
#
|
||||||
|
# If you find ROM variants that should be here, please let me know!
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Defining a ROM set
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Each [[romset]] entry defines a single ROM set.
|
||||||
|
# MartyPC resolves ROMs required to run a specific machine configuration based
|
||||||
|
# on the concept of "feature requests" and "feature providers".
|
||||||
|
# For example, if you wish to run an IBM 5160 (XT) with a Xebec hard disk
|
||||||
|
# controller and an IBM EGA card, that machine configuration will require the
|
||||||
|
# following feature strings:
|
||||||
|
# "ibm_5160"
|
||||||
|
# "ibm_basic"
|
||||||
|
# "expansion"
|
||||||
|
# "ibm_ega"
|
||||||
|
# "ibm_xebec"
|
||||||
|
#
|
||||||
|
# ROM sets advertise what features they provide in their "provides" field.
|
||||||
|
# MartyPC will load ROM sets that provide the requested features. If more than
|
||||||
|
# one ROM set provides the same feature, the set with the highest 'priority'
|
||||||
|
# value will be used.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# The following fiels are required for each ROM set:
|
||||||
|
# alias - Defines a name for this ROM set that may be referenced specifically
|
||||||
|
# (ie, in the rom_override config setting)
|
||||||
|
# desc - A human-readable string describing this ROM set.
|
||||||
|
# priority - Breaks ties between matching, complete ROM sets (higher is better)
|
||||||
|
# provides - An array of strings describing what features this ROM set provides
|
||||||
|
# oem - If true, marks the ROM set as OEM for all its features. (see below)
|
||||||
|
# oem_for - A list of features for which the ROM set will be marked as OEM.
|
||||||
|
#
|
||||||
|
# OEM selection:
|
||||||
|
# The 'oem' and 'oem_for' fields may be used to influence ROM set priority.
|
||||||
|
# Setting oem = true will set the ROM as OEM for all its features.
|
||||||
|
#
|
||||||
|
# Using oem_for = ["feature1", "feature2"] will mark the ROM as OEM for only
|
||||||
|
# the specified features.
|
||||||
|
#
|
||||||
|
# If the 'use_oem' option in main config is set, ROMs that are marked OEM are
|
||||||
|
# strongly preferred before any other ROM set. Currently, this is implemented
|
||||||
|
# by a +100 offset to ROM priority per feature.
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Other fields
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# checkpoints - These are a list of addresses, levels and strings. When the
|
||||||
|
# CPU executes an instruction at the given address, the string is
|
||||||
|
# logged to the console, or optionally, the notification system
|
||||||
|
# (depending on specified level)
|
||||||
|
# This can be useful to watch the POST process. Be careful that
|
||||||
|
# you don't create a checkpoint that is reached too often or you
|
||||||
|
# will flood the console and take a big performance hit.
|
||||||
|
# (you must have RUST_LOG=marty_core::cpu::debug set to see log
|
||||||
|
# messages)
|
||||||
|
# Checkpoints are implemented with memory flags so are fairly
|
||||||
|
# performant to set, although obviously hitting one has a
|
||||||
|
# performance hit if they are logged.
|
||||||
|
#
|
||||||
|
# There are five defined 'levels', roughly analagoys to Rust log
|
||||||
|
# levels:
|
||||||
|
# 0 - Error. Intended for checkpoints you should never reach.
|
||||||
|
# Will be logged as an Error.
|
||||||
|
# 1 - Warning Intended for checkpoints you with to alert on. Will
|
||||||
|
# be logged as a Warning.
|
||||||
|
# 2 - Debug Checkpoints you want to see normally but nothing
|
||||||
|
# special, just passing through. Will be logged as
|
||||||
|
# Debug.
|
||||||
|
# 3 - Info Checkpoints that are in normal control flow and
|
||||||
|
# would be noisy to display always. Logged as Info.
|
||||||
|
# 4 - Trace Checkpoints that are in normal control flow and
|
||||||
|
# would be very noisy. Logged as Trace.
|
||||||
|
#
|
||||||
|
# The default checkpoint level, if not provided, is Debug.
|
||||||
|
#
|
||||||
|
# patches - When the 'trigger' address is reached, the specified bytes will
|
||||||
|
# be written to the specified 'addr', even if it is ROM.
|
||||||
|
# 'addr' may be anywhere in memory.
|
||||||
|
#
|
||||||
|
# A 'reset' address can be specified, that when reached will
|
||||||
|
# restore the original bytes at 'addr'. This is useful for
|
||||||
|
# patching code that is verified by CRC or checksum later.
|
||||||
|
# (not yet implemented)
|
||||||
|
#
|
||||||
|
# ROM Patching must be enabled in the main configuration for
|
||||||
|
# this to have any effect.
|
||||||
|
#
|
||||||
|
# reload - Reload the ROM from disk and re-map into memory when
|
||||||
|
# the machine is restarted. Useful for ROM developers.
|
||||||
|
#
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Defining a ROM entry
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# 'rom' array:
|
||||||
|
#
|
||||||
|
# A ROM can be identified by either its md5 hash, in which case, filename is
|
||||||
|
# ignored, or by filename, in which case hash is ignored. If you specify both,
|
||||||
|
# hash takes precedence. Filename may be case-sensitive depending on operating
|
||||||
|
# system. It is generally recommended to specify ROMs by hash, unless you are
|
||||||
|
# a ROM developer and are replacing the same ROM filename often.
|
||||||
|
#
|
||||||
|
# addr - (REQUIRED) Specifies where the ROM should be mapped in the machine's
|
||||||
|
# address space.
|
||||||
|
#
|
||||||
|
# size - (OPTIONAL) Size of the ROM. If it is present, the ROM image will
|
||||||
|
# be truncated to this size before being mapped.
|
||||||
|
#
|
||||||
|
# org - (OPTIONAL) Default is "Normal". Specifies the ROM organization.
|
||||||
|
# Valid values are:
|
||||||
|
# Normal - just your standard, linear array of bytes.
|
||||||
|
# Reversed - bytes in the ROM image are reversed. (IBM EGA ROM)
|
||||||
|
# InterleavedEven - represents the even bytes in an interleaved set
|
||||||
|
# InterleavedOdd - represents the odd bytes in an interleaved set
|
||||||
|
#
|
||||||
|
# chip - (OPTIONAL) String identifying the chip. Variants of a ROM (different
|
||||||
|
# dumps, sizes, orgs, etc) may be specified by including multiple
|
||||||
|
# rom entries with the same "chip" string. MartyPC will use the first
|
||||||
|
# matching ROM of any duplicate "chip" definitions.
|
||||||
|
# If you don't know the official chip name you can just make up any
|
||||||
|
# valid string.
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Diagnostic ROMS - IBM 5150 & 5160
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "supersoft_diags"
|
||||||
|
desc = "SuperSoft Diagnostic ROM for PC/XT"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "ibm5150v64k", "ibm5150v256k", "ibm5160", "diag"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "3a0eacac07f1020b95ce06043982dfd1", addr = 0xFE000 }
|
||||||
|
]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Generic XT System ROMs
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "award_xt_4000"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem = false
|
||||||
|
rom = [
|
||||||
|
{ md5 = "a8a1027cfa97e42a42d95a883e1c30c6", filename = "Award_Turbo_4000.BIN", addr = 0xFE000, size = 8192 },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "award_xt_2.05"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem = false
|
||||||
|
rom = [
|
||||||
|
{ md5 = "688da86aec830ac09fcd436f28cf9bca", filename = "Award_XT_2.05_2764.bin", addr = 0xFE000, size = 8192 },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "skiselev_xt_1.00"
|
||||||
|
priority = 1
|
||||||
|
# 16k ROM is incompatible with BASIC ROM at FC000. We mark this set as providing basic so basic will not be loaded.
|
||||||
|
provides = ["bios", "ibm5160", "expansion", "ibm_basic"]
|
||||||
|
oem = false
|
||||||
|
rom = [
|
||||||
|
#{ filename = "bios-xi8088-noide.rom", addr = 0xF0000, size = 0x10000 },
|
||||||
|
{ filename = "bios-xt.bin", addr = 0xFC000, size = 0x4000 },
|
||||||
|
]
|
25
media/roms/romdef_compaq.toml
Normal file
25
media/roms/romdef_compaq.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# romdef_compaq.toml
|
||||||
|
# ROM definition file for MartyPC.
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# ROM definitions for Compaq
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "compaq_portable_revb"
|
||||||
|
desc = "Compaq Portable Rev B"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "ibm5160"]
|
||||||
|
oem_for = ["ibm5160"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "f92174c12a0ed95c1e29cd0a488a6080", addr = 0xFE000, size = 8192, chip = "100298" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "compaq_portable_revf"
|
||||||
|
desc = "Compaq Portable Rev F"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem_for = ["ibm5160"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "a830e37bb3df05687dd0884724110b99", addr = 0xFE000, size = 8192, chip = "100298" },
|
||||||
|
]
|
85
media/roms/romdef_glabios.toml
Normal file
85
media/roms/romdef_glabios.toml
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# romdef_glabios.toml
|
||||||
|
# ROM definition file for MartyPC.
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# ROM definitions for GLaBIOS
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_pc_0.2.5"
|
||||||
|
desc = "GLaBIOS for IBM 5150 (MartyPC)"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "ibm5150v64k", "ibm5150v256k", "expansion"]
|
||||||
|
oem_for = ["glabios_pc"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.5_8PC.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_xt_0.2.5"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
desc = "GLaBIOS for IBM 5160 (MartyPC)"
|
||||||
|
oem_for = ["glabios_xt"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.5_8XC.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_xt_0.2.5_lp"
|
||||||
|
desc = "GLaBIOS for IBM 5160 (MartyPC + Lightpen)"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "glabios_xt", "ibm5160", "expansion"]
|
||||||
|
oem_for = ["glabios_xt"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.5_8TC_PEN.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_pc_0.2.6"
|
||||||
|
desc = "GLaBIOS for IBM 5150"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "glabios_xt", "ibm5150v64k", "ibm5150v256k", "expansion"]
|
||||||
|
oem_for = ["glabios_pc"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.6_8P.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_xt_0.2.6"
|
||||||
|
desc = "GLaBIOS for IBM 5160"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "glabios_xt", "ibm5160", "expansion"]
|
||||||
|
oem_for = ["glabios_xt"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.6_8X.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_pc"
|
||||||
|
desc = "GLaBIOS 0.2.6 for IBM 5150 (MartyPC)"
|
||||||
|
priority = 4
|
||||||
|
provides = ["bios", "ibm5150v64k", "ibm5150v256k", "expansion"]
|
||||||
|
oem_for = ["glabios_pc"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.6_8PC.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_xt"
|
||||||
|
desc = "GLaBIOS 0.2.6 for IBM 5160 (MartyPC)"
|
||||||
|
priority = 4
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem_for = ["glabios_xt"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.6_8XC.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "glabios_xt_turbo"
|
||||||
|
desc = "GLaBIOS 0.2.6 for Generic Turbo XT (MartyPC)"
|
||||||
|
priority = 15
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem_for = ["glabios_xt"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "GLABIOS_0.2.6_8TC.ROM", addr = 0xFE000, size = 8192, chip = "glabios" }
|
||||||
|
]
|
432
media/roms/romdef_ibm.toml
Normal file
432
media/roms/romdef_ibm.toml
Normal file
@ -0,0 +1,432 @@
|
|||||||
|
# romdef_ibm.toml
|
||||||
|
# Main ROM definition file for MartyPC.
|
||||||
|
#
|
||||||
|
# You can create your own ROM definition files. MartyPC will attempt to load
|
||||||
|
# all toml files found in the rom directory.
|
||||||
|
#
|
||||||
|
# If you find ROM variants that should be here, please let me know!
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Defining a ROM set
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Each [[romset]] entry defines a single ROM set.
|
||||||
|
# MartyPC resolves ROMs required to run a specific machine configuration based
|
||||||
|
# on the concept of "feature requests" and "feature providers".
|
||||||
|
# For example, if you wish to run an IBM 5160 (XT) with a Xebec hard disk
|
||||||
|
# controller and an IBM EGA card, that machine configuration will require the
|
||||||
|
# following feature strings:
|
||||||
|
# "ibm_5160"
|
||||||
|
# "ibm_basic"
|
||||||
|
# "expansion"
|
||||||
|
# "ibm_ega"
|
||||||
|
# "ibm_xebec"
|
||||||
|
#
|
||||||
|
# ROM sets advertise what features they provide in their "provides" field.
|
||||||
|
# MartyPC will load ROM sets that provide the requested features. If more than
|
||||||
|
# one ROM set provides the same feature, the set with the highest 'priority'
|
||||||
|
# value will be used.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# The following fiels are required for each ROM set:
|
||||||
|
# alias - Defines a name for this ROM set that may be referenced specifically
|
||||||
|
# (ie, in the rom_override config setting)
|
||||||
|
# desc - A human-readable string describing this ROM set.
|
||||||
|
# priority - Breaks ties between matching, complete ROM sets (higher is better)
|
||||||
|
# provides - An array of strings describing what features this ROM set provides
|
||||||
|
# oem - If true, marks the ROM set as OEM for all its features. (see below)
|
||||||
|
# oem_for - A list of features for which the ROM set will be marked as OEM.
|
||||||
|
#
|
||||||
|
# OEM selection:
|
||||||
|
# The 'oem' and 'oem_for' fields may be used to influence ROM set priority.
|
||||||
|
# Setting oem = true will set the ROM as OEM for all its features.
|
||||||
|
#
|
||||||
|
# Using oem_for = ["feature1", "feature2"] will mark the ROM as OEM for only
|
||||||
|
# the specified features.
|
||||||
|
#
|
||||||
|
# If the 'use_oem' option in main config is set, ROMs that are marked OEM are
|
||||||
|
# strongly preferred before any other ROM set. Currently, this is implemented
|
||||||
|
# by a +100 offset to ROM priority per feature.
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Other fields
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# checkpoints - These are a list of addresses, levels and strings. When the
|
||||||
|
# CPU executes an instruction at the given address, the string is
|
||||||
|
# logged to the console, or optionally, the notification system
|
||||||
|
# (depending on specified level)
|
||||||
|
# This can be useful to watch the POST process. Be careful that
|
||||||
|
# you don't create a checkpoint that is reached too often or you
|
||||||
|
# will flood the console and take a big performance hit.
|
||||||
|
# (you must have RUST_LOG=marty_core::cpu::debug set to see log
|
||||||
|
# messages)
|
||||||
|
# Checkpoints are implemented with memory flags so are fairly
|
||||||
|
# performant to set, although obviously hitting one has a
|
||||||
|
# performance hit if they are logged.
|
||||||
|
#
|
||||||
|
# There are five defined 'levels', roughly analagoys to Rust log
|
||||||
|
# levels:
|
||||||
|
# 0 - Error. Intended for checkpoints you should never reach.
|
||||||
|
# Will be logged as an Error.
|
||||||
|
# 1 - Warning Intended for checkpoints you with to alert on. Will
|
||||||
|
# be logged as a Warning.
|
||||||
|
# 2 - Debug Checkpoints you want to see normally but nothing
|
||||||
|
# special, just passing through. Will be logged as
|
||||||
|
# Debug.
|
||||||
|
# 3 - Info Checkpoints that are in normal control flow and
|
||||||
|
# would be noisy to display always. Logged as Info.
|
||||||
|
# 4 - Trace Checkpoints that are in normal control flow and
|
||||||
|
# would be very noisy. Logged as Trace.
|
||||||
|
#
|
||||||
|
# The default checkpoint level, if not provided, is Debug.
|
||||||
|
#
|
||||||
|
# patches - When the 'trigger' address is reached, the specified bytes will
|
||||||
|
# be written to the specified 'addr', even if it is ROM.
|
||||||
|
# 'addr' may be anywhere in memory.
|
||||||
|
#
|
||||||
|
# A 'reset' address can be specified, that when reached will
|
||||||
|
# restore the original bytes at 'addr'. This is useful for
|
||||||
|
# patching code that is verified by CRC or checksum later.
|
||||||
|
# (not yet implemented)
|
||||||
|
#
|
||||||
|
# ROM Patching must be enabled in the main configuration for
|
||||||
|
# this to have any effect.
|
||||||
|
#
|
||||||
|
# reload - Reload the ROM from disk and re-map into memory when
|
||||||
|
# the machine is restarted. Useful for ROM developers.
|
||||||
|
#
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Defining a ROM entry
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# 'rom' array:
|
||||||
|
#
|
||||||
|
# A ROM can be identified by either its md5 hash, in which case, filename is
|
||||||
|
# ignored, or by filename, in which case hash is ignored. If you specify both,
|
||||||
|
# hash takes precedence. Filename may be case-sensitive depending on operating
|
||||||
|
# system. It is generally recommended to specify ROMs by hash, unless you are
|
||||||
|
# a ROM developer and are replacing the same ROM filename often.
|
||||||
|
#
|
||||||
|
# addr - (REQUIRED) Specifies where the ROM should be mapped in the machine's
|
||||||
|
# address space.
|
||||||
|
#
|
||||||
|
# size - (OPTIONAL) Size of the ROM. If it is present, the ROM image will
|
||||||
|
# be truncated to this size before being mapped.
|
||||||
|
#
|
||||||
|
# org - (OPTIONAL) Default is "Normal". Specifies the ROM organization.
|
||||||
|
# Valid values are:
|
||||||
|
# Normal - just your standard, linear array of bytes.
|
||||||
|
# Reversed - bytes in the ROM image are reversed. (IBM EGA ROM)
|
||||||
|
# InterleavedEven - represents the even bytes in an interleaved set
|
||||||
|
# InterleavedOdd - represents the odd bytes in an interleaved set
|
||||||
|
#
|
||||||
|
# chip - (OPTIONAL) String identifying the chip. Variants of a ROM (different
|
||||||
|
# dumps, sizes, orgs, etc) may be specified by including multiple
|
||||||
|
# rom entries with the same "chip" string. MartyPC will use the first
|
||||||
|
# matching ROM of any duplicate "chip" definitions.
|
||||||
|
# If you don't know the official chip name you can just make up any
|
||||||
|
# valid string.
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# System ROMS - IBM 5150 (PC)
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5150_81_v1"
|
||||||
|
desc = "IBM 5150 BIOS v1 04/24/81"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "ibm5150v64k"]
|
||||||
|
oem = true
|
||||||
|
datestr = "04/24/81"
|
||||||
|
rom = [
|
||||||
|
{ md5 = "6338a9808445de12109a2389b71ee2eb", addr = 0xFE000, size = 8192, chip = "u33" }
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xfe01a, lvl = 2, desc = "RAM Check Routine" },
|
||||||
|
{ addr = 0xfe05b, lvl = 2, desc = "8088 Processor Test" },
|
||||||
|
{ addr = 0xfe0b0, lvl = 2, desc = "ROS Checksum" },
|
||||||
|
{ addr = 0xfe0da, lvl = 2, desc = "8237 DMA Initialization Test" },
|
||||||
|
{ addr = 0xfe117, lvl = 2, desc = "DMA Controller test"},
|
||||||
|
{ addr = 0xfe158, lvl = 2, desc = "Base 16K Read/Write Test"},
|
||||||
|
{ addr = 0xfe235, lvl = 2, desc = "8249 Interrupt Controller Test"},
|
||||||
|
{ addr = 0xfe285, lvl = 2, desc = "8253 Timer Checkout"},
|
||||||
|
{ addr = 0xfe33b, lvl = 2, desc = "ROS Checksum II"},
|
||||||
|
{ addr = 0xfe352, lvl = 2, desc = "Initialize CRTC Controller"},
|
||||||
|
{ addr = 0xfe3af, lvl = 2, desc = "Video Line Test"},
|
||||||
|
{ addr = 0xfe3c0, lvl = 2, desc = "CRT Interface Lines Test"},
|
||||||
|
{ addr = 0xfe3f8, lvl = 2, desc = "Additional R/W Storage Test"},
|
||||||
|
{ addr = 0xfe630, lvl = 0, desc = "Error Beep"},
|
||||||
|
{ addr = 0xfe666, lvl = 3, desc = "Beep"},
|
||||||
|
{ addr = 0xfe688, lvl = 2, desc = "Keyboard Reset"},
|
||||||
|
{ addr = 0xfe6b2, lvl = 3, desc = "Blink LED Interrupt"},
|
||||||
|
{ addr = 0xfe6ca, lvl = 3, desc = "Print Message"},
|
||||||
|
{ addr = 0xfe6f2, lvl = 2, desc = "Bootstrap Loader"},
|
||||||
|
{ addr = 0xFEF33, lvl = 3, desc = "FDC Wait for Interrupt"},
|
||||||
|
{ addr = 0xFEF47, lvl = 3, desc = "FDC Interrupt Timeout"},
|
||||||
|
{ addr = 0xf6000, lvl = 2, desc = "ROM BASIC"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5150_81_v2"
|
||||||
|
priority = 2
|
||||||
|
provides = ["bios", "ibm5150v64k"]
|
||||||
|
oem = true
|
||||||
|
desc = "IBM 5150 BIOS v2 10/19/81"
|
||||||
|
datestr = "10/19/81"
|
||||||
|
rom = [
|
||||||
|
{ md5 = "6a1ed4e3f500d785a01ff4d3e000d79c", addr = 0xFE000, size = 8192, chip = "u33" }
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5150_82_v3"
|
||||||
|
priority = 3
|
||||||
|
provides = ["bios", "ibm5150v64k", "ibm5150v256k", "expansion"]
|
||||||
|
oem = true
|
||||||
|
desc = "IBM 5150 BIOS v3 10/27/82"
|
||||||
|
datestr = "10/27/82"
|
||||||
|
rom = [
|
||||||
|
{ md5 = "f453eb2df6daf21ec644d33663d85434", addr = 0xFE000, size = 8192, chip = "u33" }
|
||||||
|
]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# System ROMS - IBM 5160 (XT)
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5160_82_v1_wbasic"
|
||||||
|
datestr = "11/08/82"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "ibm5160", "ibm_basic", "expansion"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "e816a89768a1bf4b8d52b454d5c9d1e1", addr = 0xF0000, size = 32768, chip = "basic+u19" },
|
||||||
|
{ md5 = "1a2ac1ae0fe0f7783197e78da8b3126c", addr = 0xF8000, size = 32768, chip = "u18" },
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xFE01A, lvl = 3, desc = "RAM Check Routine" },
|
||||||
|
{ addr = 0xFE05B, lvl = 3, desc = "8088 Processor Test" },
|
||||||
|
{ addr = 0xFE0AE, lvl = 3, desc = "ROS Checksum Test I" },
|
||||||
|
{ addr = 0xFE0D9, lvl = 3, desc = "8237 DMA Initialization Test" },
|
||||||
|
{ addr = 0xFE135, lvl = 3, desc = "Start DRAM Refresh" },
|
||||||
|
{ addr = 0xFE166, lvl = 3, desc = "Base 16K RAM Test" },
|
||||||
|
{ addr = 0xFE242, lvl = 3, desc = "Initialize CRTC Controller" },
|
||||||
|
{ addr = 0xFE329, lvl = 3, desc = "8259 Interrupt Controller Test" },
|
||||||
|
{ addr = 0xFE35D, lvl = 3, desc = "8253 Timer Checkout" },
|
||||||
|
{ addr = 0xFE3A2, lvl = 3, desc = "Keyboard Test" },
|
||||||
|
{ addr = 0xFE3DE, lvl = 3, desc = "Setup Interrupt Vector Table" },
|
||||||
|
{ addr = 0xFE418, lvl = 3, desc = "Expansion I/O Box Test" },
|
||||||
|
{ addr = 0xFE46A, lvl = 3, desc = "Additional R/W Storage Test" },
|
||||||
|
]
|
||||||
|
[[romset.patch]]
|
||||||
|
desc = "Patch ROS checksum routine"
|
||||||
|
trigger = 0xFE0AE
|
||||||
|
addr = 0xFE0D7
|
||||||
|
bytes = [ 0xEB, 0x00 ]
|
||||||
|
|
||||||
|
[[romset.patch]]
|
||||||
|
desc = "Patch RAM Check Routine for faster boot"
|
||||||
|
trigger = 0xFE46A
|
||||||
|
addr = 0xFE49D
|
||||||
|
bytes = [0x90, 0x90, 0x90, 0x90, 0x90]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5160_82_v1"
|
||||||
|
datestr = "11/08/82"
|
||||||
|
priority = 2
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "69e2bd1d08c893cbf841607c8749d5bd", addr = 0xFE000, size = 8192, chip = "u19" },
|
||||||
|
{ md5 = "1a2ac1ae0fe0f7783197e78da8b3126c", addr = 0xF8000, size = 32768, chip = "u18" },
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xFE01A, lvl = 3, desc = "RAM Check Routine" },
|
||||||
|
{ addr = 0xFE05B, lvl = 3, desc = "8088 Processor Test" },
|
||||||
|
{ addr = 0xFE0AE, lvl = 3, desc = "ROS Checksum Test I" },
|
||||||
|
{ addr = 0xFE0D9, lvl = 3, desc = "8237 DMA Initialization Test" },
|
||||||
|
{ addr = 0xFE135, lvl = 3, desc = "Start DRAM Refresh" },
|
||||||
|
{ addr = 0xFE166, lvl = 3, desc = "Base 16K RAM Test" },
|
||||||
|
{ addr = 0xFE242, lvl = 3, desc = "Initialize CRTC Controller" },
|
||||||
|
{ addr = 0xFE329, lvl = 3, desc = "8259 Interrupt Controller Test" },
|
||||||
|
{ addr = 0xFE35D, lvl = 3, desc = "8253 Timer Checkout" },
|
||||||
|
{ addr = 0xFE3A2, lvl = 3, desc = "Keyboard Test" },
|
||||||
|
{ addr = 0xFE3DE, lvl = 3, desc = "Setup Interrupt Vector Table" },
|
||||||
|
{ addr = 0xFE418, lvl = 3, desc = "Expansion I/O Box Test" },
|
||||||
|
{ addr = 0xFE46A, lvl = 3, desc = "Additional R/W Storage Test" },
|
||||||
|
]
|
||||||
|
[[romset.patch]]
|
||||||
|
desc = "Patch ROS checksum routine"
|
||||||
|
trigger = 0xFE0AE
|
||||||
|
addr = 0xFE0D7
|
||||||
|
bytes = [ 0xEB, 0x00 ]
|
||||||
|
|
||||||
|
[[romset.patch]]
|
||||||
|
desc = "Patch RAM Check Routine for faster boot"
|
||||||
|
trigger = 0xFE46A
|
||||||
|
addr = 0xFE49D
|
||||||
|
bytes = [0x90, 0x90, 0x90, 0x90, 0x90]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5160_86_v1_wbasic"
|
||||||
|
datestr = "01/10/86"
|
||||||
|
priority = 3
|
||||||
|
provides = ["bios", "ibm5160", "expansion", "ibm_basic"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "f051b4bbc3b60c3a14df94a0e4ee720f", addr = 0xF0000, chip = "basic+u19" },
|
||||||
|
{ md5 = "fd9ff9cbe0a8f154746ccb0a33f6d3e7", addr = 0xF8000, chip = "u18" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm5160_86_v2_wbasic"
|
||||||
|
datestr = "05/09/86"
|
||||||
|
priority = 4
|
||||||
|
provides = ["bios", "ibm5160", "expansion", "ibm_basic"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "df9f29de490d7f269a6405df1fed69b7", addr = 0xF0000, chip = "basic+u19" },
|
||||||
|
{ md5 = "9696472098999c02217bf922786c1f4a", addr = 0xF8000, chip = "u18" },
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xfe01a, lvl = 3, desc = "RAM Check Routine" },
|
||||||
|
{ addr = 0xfe05b, lvl = 3, desc = "8088 Processor Test" },
|
||||||
|
{ addr = 0xFE0AC, lvl = 3, desc = "ROS Checksum Test I" },
|
||||||
|
{ addr = 0xFE0D7, lvl = 3, desc = "8237 DMA Initialization Test" },
|
||||||
|
{ addr = 0xFE136, lvl = 3, desc = "Start DRAM Refresh" },
|
||||||
|
{ addr = 0xFE166, lvl = 3, desc = "Base 16K RAM Test" },
|
||||||
|
{ addr = 0xFE1DA, lvl = 3, desc = "Initialize 8259 PIC" },
|
||||||
|
{ addr = 0xFE20B, lvl = 3, desc = "Determine Configuration and Mfg Mode" },
|
||||||
|
{ addr = 0xFE261, lvl = 3, desc = "Initialize CRTC Controller" },
|
||||||
|
{ addr = 0xFE2EE, lvl = 3, desc = "Video Line Test" },
|
||||||
|
{ addr = 0xFE35C, lvl = 3, desc = "8259 Interrupt Controller Test" },
|
||||||
|
{ addr = 0xFE38F, lvl = 3, desc = "8253 Timer Checkout" },
|
||||||
|
{ addr = 0xFE3D4, lvl = 3, desc = "Keyboard Test" },
|
||||||
|
{ addr = 0xFE40F, lvl = 3, desc = "Setup Interrupt Vector Table" },
|
||||||
|
{ addr = 0xFE448, lvl = 3, desc = "Expansion I/O Box Test" },
|
||||||
|
{ addr = 0xFE499, lvl = 3, desc = "Additional R/W Storage Test" },
|
||||||
|
{ addr = 0xFE53C, lvl = 3, desc = "Optional ROM Scan" },
|
||||||
|
{ addr = 0xFE55B, lvl = 3, desc = "Diskette Attachment Test" },
|
||||||
|
]
|
||||||
|
[[romset.patch]]
|
||||||
|
desc = "Patch ROS checksum routine"
|
||||||
|
trigger = 0xFE0AC
|
||||||
|
addr = 0xFE0D5
|
||||||
|
bytes = [0xEB, 0x00]
|
||||||
|
|
||||||
|
[[romset.patch]]
|
||||||
|
desc = "Patch RAM Check Routine for faster boot"
|
||||||
|
trigger = 0xFE499
|
||||||
|
addr = 0xFE4EA
|
||||||
|
bytes = [ 0x90, 0x90, 0x90, 0x90, 0x90]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Device ROMS
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm_xebec"
|
||||||
|
priority = 1
|
||||||
|
provides = ["ibm_xebec"]
|
||||||
|
oem = true
|
||||||
|
requires = ["expansion"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "66631d1a095d8d0d54cc917fbdece684", addr = 0xC8000, size = 4096 }
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xC8003, lvl = 3, desc = "HDC Expansion Init" },
|
||||||
|
{ addr = 0xC8117, lvl = 3, desc = "HDC Disk Reset" },
|
||||||
|
{ addr = 0xC8596, lvl = 3, desc = "HDC Status Timeout" },
|
||||||
|
{ addr = 0xC8192, lvl = 3, desc = "HDC Bootstrap Loader" },
|
||||||
|
{ addr = 0xC81FF, lvl = 3, desc = "HDC Boot From Fixed Disk" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm_ega"
|
||||||
|
priority = 1
|
||||||
|
provides = ["ibm_ega"]
|
||||||
|
oem = true
|
||||||
|
requires = ["expansion"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "528455ed0b701722c166c6536ba4ff46", addr = 0xC0000, size = 16384, chip = "1", org = "Normal" },
|
||||||
|
{ md5 = "0636f46316f3e15cb287ce3da6ba43a1", addr = 0xC0000, size = 16384, chip = "1", org = "Reversed" }
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xC0003, lvl = 3, desc = "EGA Expansion Init" },
|
||||||
|
{ addr = 0xC009B, lvl = 3, desc = "EGA DIP Switch Sense" },
|
||||||
|
{ addr = 0xC0205, lvl = 3, desc = "EGA CD Presence Test" },
|
||||||
|
{ addr = 0xC037C, lvl = 3, desc = "EGA VBlank Bit Test" },
|
||||||
|
{ addr = 0xC0D20, lvl = 3, desc = "EGA Error Beep" },
|
||||||
|
{ addr = 0xC03F6, lvl = 3, desc = "EGA Diagnostic Dot Test" },
|
||||||
|
{ addr = 0xC0480, lvl = 3, desc = "EGA Mem Test" },
|
||||||
|
{ addr = 0xC068F, lvl = 3, desc = "EGA How Big Test" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm_vga"
|
||||||
|
priority = 1
|
||||||
|
provides = ["ibm_vga"]
|
||||||
|
oem = true
|
||||||
|
requires = ["expansion"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "2057a38cb472300205132fb9c01d9d85", addr = 0xC0000, offset = 0x2000, size = 32768, chip = "1" },
|
||||||
|
{ md5 = "2c8a4e1db93d2cbe148b66122747e4f2", addr = 0xC0000, offset = 0, size = 24576, chip = "1" }
|
||||||
|
]
|
||||||
|
checkpoints = [
|
||||||
|
{ addr = 0xC203B, lvl = 3, desc = "VGA Expansion Init" },
|
||||||
|
{ addr = 0xC21F9, lvl = 3, desc = "VGA Vblank Test" },
|
||||||
|
]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# BASIC ROMS - IBM 5150 & 5160
|
||||||
|
# BASIC can be loaded seperately if you aren't using system ROMS that have it
|
||||||
|
# built in.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibmbasic_v1_32k"
|
||||||
|
desc = "IBM Cassette Basic C1.0"
|
||||||
|
priority = 2
|
||||||
|
provides = ["ibm_basic"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "2ad31da203a49b504fad3a34af0c719f", addr = 0xF6000, size = 32768 },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibmbasic_v1_8k"
|
||||||
|
desc = "IBM Cassette Basic C1.0"
|
||||||
|
priority = 1
|
||||||
|
provides = ["ibm_basic"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "2ac2e97eddb3f344641cdd9dc3747f8e", addr = 0xF6000, size = 8192 },
|
||||||
|
{ md5 = "8b2a0f2ea97d0adb9c1c834387aad5d9", addr = 0xF8000, size = 8192 },
|
||||||
|
{ md5 = "9a3253ad9f1d8213d33e04476e3ed482", addr = 0xFA000, size = 8192 },
|
||||||
|
{ md5 = "2686dbc7f261f10d54553c4c5f93a3d5", addr = 0xFC000, size = 8192 },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibmbasic_v11_32k"
|
||||||
|
desc = "IBM Cassette Basic C1.10"
|
||||||
|
priority = 2
|
||||||
|
provides = ["ibm_basic"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "2ad31da203a49b504fad3a34af0c719f", addr = 0xF6000, size = 32768, chip = "c" },
|
||||||
|
{ md5 = "eb28f0e8d3f641f2b58a3677b3b998cc", addr = 0xF6000, size = 32768, chip = "c" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibmbasic_v11_8k"
|
||||||
|
desc = "IBM Cassette Basic C1.10"
|
||||||
|
priority = 1
|
||||||
|
provides = ["ibm_basic"]
|
||||||
|
oem = true
|
||||||
|
rom = [
|
||||||
|
{ md5 = "69e2bd1d08c893cbf841607c8749d5bd", addr = 0xF6000, size = 8192 },
|
||||||
|
{ md5 = "5f85ff5ea352c1ec11b084043fbb549e", addr = 0xF8000, size = 8192 },
|
||||||
|
{ md5 = "04a285d5dc8d86c60679e8f3c779dcc4", addr = 0xFA000, size = 8192 },
|
||||||
|
{ md5 = "b086a6980fc5736098269e62b59726ef", addr = 0xFC000, size = 8192 },
|
||||||
|
]
|
257
media/roms/romdef_ibm_pcjr.toml
Normal file
257
media/roms/romdef_ibm_pcjr.toml
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
# romdef_ibm.toml
|
||||||
|
# Main ROM definition file for MartyPC.
|
||||||
|
#
|
||||||
|
# You can create your own ROM definition files. MartyPC will attempt to load
|
||||||
|
# all toml files found in the rom directory.
|
||||||
|
#
|
||||||
|
# If you find ROM variants that should be here, please let me know!
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Defining a ROM set
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Each [[romset]] entry defines a single ROM set.
|
||||||
|
# MartyPC resolves ROMs required to run a specific machine configuration based
|
||||||
|
# on the concept of "feature requests" and "feature providers".
|
||||||
|
# For example, if you wish to run an IBM 5160 (XT) with a Xebec hard disk
|
||||||
|
# controller and an IBM EGA card, that machine configuration will require the
|
||||||
|
# following feature strings:
|
||||||
|
# "ibm_5160"
|
||||||
|
# "ibm_basic"
|
||||||
|
# "expansion"
|
||||||
|
# "ibm_ega"
|
||||||
|
# "ibm_xebec"
|
||||||
|
#
|
||||||
|
# ROM sets advertise what features they provide in their "provides" field.
|
||||||
|
# MartyPC will load ROM sets that provide the requested features. If more than
|
||||||
|
# one ROM set provides the same feature, the set with the highest 'priority'
|
||||||
|
# value will be used.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# The following fiels are required for each ROM set:
|
||||||
|
# alias - Defines a name for this ROM set that may be referenced specifically
|
||||||
|
# (ie, in the rom_override config setting)
|
||||||
|
# desc - A human-readable string describing this ROM set.
|
||||||
|
# priority - Breaks ties between matching, complete ROM sets (higher is better)
|
||||||
|
# provides - An array of strings describing what features this ROM set provides
|
||||||
|
# oem - If true, marks the ROM set as OEM for all its features. (see below)
|
||||||
|
# oem_for - A list of features for which the ROM set will be marked as OEM.
|
||||||
|
#
|
||||||
|
# OEM selection:
|
||||||
|
# The 'oem' and 'oem_for' fields may be used to influence ROM set priority.
|
||||||
|
# Setting oem = true will set the ROM as OEM for all its features.
|
||||||
|
#
|
||||||
|
# Using oem_for = ["feature1", "feature2"] will mark the ROM as OEM for only
|
||||||
|
# the specified features.
|
||||||
|
#
|
||||||
|
# If the 'use_oem' option in main config is set, ROMs that are marked OEM are
|
||||||
|
# strongly preferred before any other ROM set. Currently, this is implemented
|
||||||
|
# by a +100 offset to ROM priority per feature.
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Other fields
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# checkpoints - These are a list of addresses, levels and strings. When the
|
||||||
|
# CPU executes an instruction at the given address, the string is
|
||||||
|
# logged to the console, or optionally, the notification system
|
||||||
|
# (depending on specified level)
|
||||||
|
# This can be useful to watch the POST process. Be careful that
|
||||||
|
# you don't create a checkpoint that is reached too often or you
|
||||||
|
# will flood the console and take a big performance hit.
|
||||||
|
# (you must have RUST_LOG=marty_core::cpu::debug set to see log
|
||||||
|
# messages)
|
||||||
|
# Checkpoints are implemented with memory flags so are fairly
|
||||||
|
# performant to set, although obviously hitting one has a
|
||||||
|
# performance hit if they are logged.
|
||||||
|
#
|
||||||
|
# There are five defined 'levels', roughly analagoys to Rust log
|
||||||
|
# levels:
|
||||||
|
# 0 - Error. Intended for checkpoints you should never reach.
|
||||||
|
# Will be logged as an Error.
|
||||||
|
# 1 - Warning Intended for checkpoints you with to alert on. Will
|
||||||
|
# be logged as a Warning.
|
||||||
|
# 2 - Debug Checkpoints you want to see normally but nothing
|
||||||
|
# special, just passing through. Will be logged as
|
||||||
|
# Debug.
|
||||||
|
# 3 - Info Checkpoints that are in normal control flow and
|
||||||
|
# would be noisy to display always. Logged as Info.
|
||||||
|
# 4 - Trace Checkpoints that are in normal control flow and
|
||||||
|
# would be very noisy. Logged as Trace.
|
||||||
|
#
|
||||||
|
# The default checkpoint level, if not provided, is Debug.
|
||||||
|
#
|
||||||
|
# patches - When the 'trigger' address is reached, the specified bytes will
|
||||||
|
# be written to the specified 'addr', even if it is ROM.
|
||||||
|
# 'addr' may be anywhere in memory.
|
||||||
|
#
|
||||||
|
# A 'reset' address can be specified, that when reached will
|
||||||
|
# restore the original bytes at 'addr'. This is useful for
|
||||||
|
# patching code that is verified by CRC or checksum later.
|
||||||
|
# (not yet implemented)
|
||||||
|
#
|
||||||
|
# ROM Patching must be enabled in the main configuration for
|
||||||
|
# this to have any effect.
|
||||||
|
#
|
||||||
|
# reload - Reload the ROM from disk and re-map into memory when
|
||||||
|
# the machine is restarted. Useful for ROM developers.
|
||||||
|
#
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Defining a ROM entry
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# 'rom' array:
|
||||||
|
#
|
||||||
|
# A ROM can be identified by either its md5 hash, in which case, filename is
|
||||||
|
# ignored, or by filename, in which case hash is ignored. If you specify both,
|
||||||
|
# hash takes precedence. Filename may be case-sensitive depending on operating
|
||||||
|
# system. It is generally recommended to specify ROMs by hash, unless you are
|
||||||
|
# a ROM developer and are replacing the same ROM filename often.
|
||||||
|
#
|
||||||
|
# addr - (REQUIRED) Specifies where the ROM should be mapped in the machine's
|
||||||
|
# address space.
|
||||||
|
#
|
||||||
|
# size - (OPTIONAL) Size of the ROM. If it is present, the ROM image will
|
||||||
|
# be truncated to this size before being mapped.
|
||||||
|
#
|
||||||
|
# org - (OPTIONAL) Default is "Normal". Specifies the ROM organization.
|
||||||
|
# Valid values are:
|
||||||
|
# Normal - just your standard, linear array of bytes.
|
||||||
|
# Reversed - bytes in the ROM image are reversed. (IBM EGA ROM)
|
||||||
|
# InterleavedEven - represents the even bytes in an interleaved set
|
||||||
|
# InterleavedOdd - represents the odd bytes in an interleaved set
|
||||||
|
#
|
||||||
|
# chip - (OPTIONAL) String identifying the chip. Variants of a ROM (different
|
||||||
|
# dumps, sizes, orgs, etc) may be specified by including multiple
|
||||||
|
# rom entries with the same "chip" string. MartyPC will use the first
|
||||||
|
# matching ROM of any duplicate "chip" definitions.
|
||||||
|
# If you don't know the official chip name you can just make up any
|
||||||
|
# valid string.
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# System BIOS for IBM PCJr
|
||||||
|
# There was only one revision of the BIOS for IBM PCJr, not counting 3rd party
|
||||||
|
# BIOS replacement cartridges.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "ibm_pcjr"
|
||||||
|
desc = "IBM 4860 PCJr"
|
||||||
|
priority = 0
|
||||||
|
provides = ["bios", "ibm_pcjr", "ibm_basic"]
|
||||||
|
oem_for = ["ibm_pcjr"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "e698e58445afa5add5ba92d7f9761c04", addr = 0xF0000, size = 0x8000, chip = "XX1" },
|
||||||
|
{ md5 = "1c7fa6e55d24487b5e4eb02d3c733ec8", addr = 0xF8000, size = 0x8000, chip = "ZM63" },
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xF09BC, lvl = 0, desc = "Error Message" },
|
||||||
|
{ addr = 0xF006D, lvl = 3, desc = "8088 Processor Test" },
|
||||||
|
{ addr = 0xF00CA, lvl = 3, desc = "8255 Initialization Test" },
|
||||||
|
{ addr = 0xF00E8, lvl = 1, desc = "8255 Register Failure" },
|
||||||
|
{ addr = 0xF0103, lvl = 3, desc = "Video Gate Array Setup" },
|
||||||
|
{ addr = 0xF0134, lvl = 3, desc = "ROS Checksum Test" },
|
||||||
|
{ addr = 0xF015F, lvl = 3, desc = "Base 2K R/W Storage Test" },
|
||||||
|
{ addr = 0xF01E8, lvl = 3, desc = "Interrupt Setup" },
|
||||||
|
{ addr = 0xF0260, lvl = 3, desc = "8259 PIC Checkout" },
|
||||||
|
{ addr = 0xF02A0, lvl = 3, desc = "8253 Timer Checkout" },
|
||||||
|
{ addr = 0xF0362, lvl = 0, desc = "Timer Error" },
|
||||||
|
{ addr = 0xF03B7, lvl = 3, desc = "CRT Attachment Test" },
|
||||||
|
{ addr = 0xF044C, lvl = 3, desc = "VSYNC Interrupt Test" },
|
||||||
|
{ addr = 0xF044C, lvl = 3, desc = "Video Mux Status Test" },
|
||||||
|
{ addr = 0xF0503, lvl = 3, desc = "Memory Size Test" },
|
||||||
|
{ addr = 0xF0603, lvl = 0, desc = "Memory Test Error" },
|
||||||
|
{ addr = 0xF0E40, lvl = 3, desc = "Keyboard Test" },
|
||||||
|
{ addr = 0xF0703, lvl = 3, desc = "Cassette Interface Test" },
|
||||||
|
{ addr = 0xF0785, lvl = 3, desc = "Serial Diagnostics" },
|
||||||
|
{ addr = 0xF07AD, lvl = 3, desc = "Hardware Interrupt Setup" },
|
||||||
|
{ addr = 0xF07E0, lvl = 3, desc = "Expansion ROM Scan" },
|
||||||
|
{ addr = 0xF0806, lvl = 3, desc = "Diskette Attachment Test" },
|
||||||
|
{ addr = 0xF08E0, lvl = 3, desc = "Printer and Serial Check" },
|
||||||
|
{ addr = 0xF1004, lvl = 1, desc = "Keyboard Read Error" },
|
||||||
|
{ addr = 0xF0854, lvl = 3, desc = "Disk Bootstrap" },
|
||||||
|
]
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Cartridge ROMs
|
||||||
|
# Cartridges in raw, headerless format can be loaded here, somewhere in the
|
||||||
|
# PCJr's cartridge ROM window from 0xD0000-0xEFFFF. Multiple carts can be
|
||||||
|
# loaded, but you'll need to adjust the ROM addresses.
|
||||||
|
#
|
||||||
|
# Typically, you will want to load cartridge rips (*.JRC files) using
|
||||||
|
# MartyPC's built in file browser. This allows dual loading of carts, as well
|
||||||
|
# as hot swapping. Carts loaded via ROM definition are static and cannot be
|
||||||
|
# removed.
|
||||||
|
#
|
||||||
|
# The functionality here is intended for testing.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_basic"
|
||||||
|
desc = "Microsoft Cartridge Basic"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "f928ac5db13d1663c0b29d2e94697ca7", addr = 0xD0000, size = 0x8000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_crossfire"
|
||||||
|
desc = "Crossfire"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "8cc51ba8346841148492c7d719322673", addr = 0xE0000, size = 0x4000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_riverraid"
|
||||||
|
desc = "River Raid, Activision 1982"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "c605b7d220a6f3f8c99951fc5145e538", addr = 0xE0000, size = 0x4000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_pitfall2"
|
||||||
|
desc = "Pitfall II"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "5cc9cb02bd3fe987a82cbd63b94dd1a7", addr = 0xE0000, size = 0x4000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_mouser"
|
||||||
|
desc = "Mouser"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "54e1d6d8c3f24996a2620a2cfac3ff9e", addr = 0xD0000, size = 0x2000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_mineshaft"
|
||||||
|
desc = "Mineshaft, Sierra On-Line, 1983"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "490e72bdb338feca64c42c5c17a31fdd", addr = 0xE6000, size = 0x2000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_scubaventure"
|
||||||
|
desc = "ScubaVenture"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "dee669072031f7fc1c319c7357ec3dcf", addr = 0xE6000, size = 0x2000, chip = "cart1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "pcjr_demonsattack"
|
||||||
|
desc = "Demon Attack"
|
||||||
|
priority = 0
|
||||||
|
provides = ["pcjr_cartridge"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "6d4f8c3a149ba5d5b160dc81ef4a46c2", addr = 0xE0000, size = 0x10000, chip = "cart1" },
|
||||||
|
]
|
15
media/roms/romdef_megabios.toml
Normal file
15
media/roms/romdef_megabios.toml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# romdef_megabios.toml
|
||||||
|
# ROM definition file for MartyPC.
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# ROM definitions for MEGABIOS
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "megabios_v1"
|
||||||
|
desc = "DTC MegaBIOS Reassembly"
|
||||||
|
priority = 5
|
||||||
|
provides = ["bios", "ibm5160", "expansion"]
|
||||||
|
oem_for = ["megabios_pc"]
|
||||||
|
rom = [
|
||||||
|
{ filename = "MEGABIOS.ROM", addr = 0xFE000, size = 8192, chip = "megabios" }
|
||||||
|
]
|
39
media/roms/romdef_tandy.toml
Normal file
39
media/roms/romdef_tandy.toml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# romdef_tandy.toml
|
||||||
|
# ROM definition file for MartyPC.
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# ROM definitions for Tandy 1000
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
[[romset]]
|
||||||
|
alias = "tandy1000_v1"
|
||||||
|
desc = "Tandy 1000 v1"
|
||||||
|
priority = 5
|
||||||
|
provides = ["bios", "tandy1000", "expansion"]
|
||||||
|
oem_for = ["tandy1000"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "ebf7922d471c3eae9d3d1b22c92445e5", addr = 0xF0000, size = 0x10000, chip = "1" },
|
||||||
|
]
|
||||||
|
checkpoint = [
|
||||||
|
{ addr = 0xFC476, lvl = 0, desc = "Setup TGA Parameters" },
|
||||||
|
{ addr = 0xFC4C7, lvl = 0, desc = "TGA Palette Setup" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "tandy1000_v2"
|
||||||
|
desc = "Tandy 1000 v2"
|
||||||
|
priority = 1
|
||||||
|
provides = ["bios", "tandy1000", "expansion"]
|
||||||
|
oem_for = ["tandy1000"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "7844c637dc246ec5f0e760ea33475073", addr = 0xF0000, size = 0x10000, chip = "1" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[[romset]]
|
||||||
|
alias = "tandy1000_v3"
|
||||||
|
desc = "Tandy 1000 v3"
|
||||||
|
priority = 2
|
||||||
|
provides = ["bios", "tandy1000", "expansion"]
|
||||||
|
oem_for = ["tandy1000"]
|
||||||
|
rom = [
|
||||||
|
{ md5 = "1c25e4d439be8e8488467d466a28091f", addr = 0xF0000, size = 0x10000, chip = "1" },
|
||||||
|
]
|
45
output.txt
Normal file
45
output.txt
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
Resolved resource path: "/opt/martypc/media/cassettes"
|
||||||
|
Resolved resource path: "/opt/martypc/media/cartridges"
|
||||||
|
Resolved resource path: "/opt/martypc/media/hdds"
|
||||||
|
Resolved resource path: "/opt/martypc/media/roms"
|
||||||
|
Resolved resource path: "/opt/martypc/media/floppies"
|
||||||
|
Resolved resource path: "/opt/martypc/configs/keyboard_layouts"
|
||||||
|
Resolved resource path: "/opt/martypc/output/dumps"
|
||||||
|
Resolved resource path: "/opt/martypc/output/traces"
|
||||||
|
Resolved resource path: "/opt/martypc/configs/machines"
|
||||||
|
Resolved resource path: "/opt/martypc/output/screenshots"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/ibm_pcjr.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/compaq_portable.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/ibm5150.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/config_overlays.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/ibm5160.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/generic_xt.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/tandy1000.toml"
|
||||||
|
Found 18 Machine Configurations:
|
||||||
|
compaq_portable
|
||||||
|
generic_award_xt_hdd
|
||||||
|
generic_skiselev_xt
|
||||||
|
generic_xt
|
||||||
|
generic_xt_base
|
||||||
|
generic_xt_hdd
|
||||||
|
generic_xt_hdd_ega
|
||||||
|
ibm5150_16k
|
||||||
|
ibm5150_256k
|
||||||
|
ibm5150_256k_hdd
|
||||||
|
ibm5150_64k
|
||||||
|
ibm5150_64k_hdd
|
||||||
|
ibm5160
|
||||||
|
ibm5160_diags
|
||||||
|
ibm5160_hdd
|
||||||
|
ibm5160_hdd_ega
|
||||||
|
ibm_pcjr
|
||||||
|
tandy1000
|
||||||
|
ROM scan found 25 unique ROMs.
|
||||||
|
Selected machine config ibm5160 requires the following ROM features:
|
||||||
|
ibm5160
|
||||||
|
Selected machine config ibm5160 optionally requests the following ROM features:
|
||||||
|
ibm_basic
|
||||||
|
Selected machine config ibm5160 has resolved the following ROM sets:
|
||||||
|
ibm5160_82_v1
|
||||||
|
ibmbasic_v11_32k
|
||||||
|
Error loading ROM set: ROM eb28f0e8d3f641f2b58a3677b3b998cc overlaps with existing ROM in manifest.
|
1
output/traces/cycle_trace.log
Normal file
1
output/traces/cycle_trace.log
Normal file
@ -0,0 +1 @@
|
|||||||
|
Time(s),addr,clk,ready,qs,s,clk0,intr,dr0,holda,vs,hs,den,brd
|
368
romscan.txt
Normal file
368
romscan.txt
Normal file
@ -0,0 +1,368 @@
|
|||||||
|
Resolved resource path: "/opt/martypc/configs/keyboard_layouts"
|
||||||
|
Resolved resource path: "/opt/martypc/configs/machines"
|
||||||
|
Resolved resource path: "/opt/martypc/media/hdds"
|
||||||
|
Resolved resource path: "/opt/martypc/media/cassettes"
|
||||||
|
Resolved resource path: "/opt/martypc/media/roms"
|
||||||
|
Resolved resource path: "/opt/martypc/media/cartridges"
|
||||||
|
Resolved resource path: "/opt/martypc/output/dumps"
|
||||||
|
Resolved resource path: "/opt/martypc/output/screenshots"
|
||||||
|
Resolved resource path: "/opt/martypc/media/floppies"
|
||||||
|
Resolved resource path: "/opt/martypc/output/traces"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/ibm_pcjr.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/compaq_portable.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/ibm5150.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/config_overlays.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/ibm5160.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/generic_xt.toml"
|
||||||
|
Reading machine configuration file: "/opt/martypc/configs/machines/tandy1000.toml"
|
||||||
|
Found 18 Machine Configurations:
|
||||||
|
compaq_portable
|
||||||
|
generic_award_xt_hdd
|
||||||
|
generic_skiselev_xt
|
||||||
|
generic_xt
|
||||||
|
generic_xt_base
|
||||||
|
generic_xt_hdd
|
||||||
|
generic_xt_hdd_ega
|
||||||
|
ibm5150_16k
|
||||||
|
ibm5150_256k
|
||||||
|
ibm5150_256k_hdd
|
||||||
|
ibm5150_64k
|
||||||
|
ibm5150_64k_hdd
|
||||||
|
ibm5160
|
||||||
|
ibm5160_diags
|
||||||
|
ibm5160_hdd
|
||||||
|
ibm5160_hdd_ega
|
||||||
|
ibm_pcjr
|
||||||
|
tandy1000
|
||||||
|
Machine: compaq_portable
|
||||||
|
Requires: Ok((["ibm5160", "expansion", "ibm_xebec"], ["ibm_basic"]))
|
||||||
|
Machine: generic_award_xt_hdd
|
||||||
|
Requires: Ok((["ibm5160", "expansion", "ibm_xebec"], ["ibm_basic"]))
|
||||||
|
Machine: generic_skiselev_xt
|
||||||
|
Requires: Ok((["ibm5160"], ["ibm_basic"]))
|
||||||
|
Machine: generic_xt
|
||||||
|
Requires: Ok((["ibm5160"], ["ibm_basic"]))
|
||||||
|
Machine: generic_xt_base
|
||||||
|
Requires: Ok((["ibm5160"], ["ibm_basic"]))
|
||||||
|
Machine: generic_xt_hdd
|
||||||
|
Requires: Ok((["ibm5160", "expansion", "ibm_xebec"], ["ibm_basic"]))
|
||||||
|
Machine: generic_xt_hdd_ega
|
||||||
|
Requires: Ok((["ibm5160", "expansion", "ibm_xebec", "ibm_ega"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5150_16k
|
||||||
|
Requires: Ok((["ibm5150v64k"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5150_256k
|
||||||
|
Requires: Ok((["ibm5150v256k"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5150_256k_hdd
|
||||||
|
Requires: Ok((["ibm5150v256k", "expansion", "ibm_xebec"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5150_64k
|
||||||
|
Requires: Ok((["ibm5150v64k"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5150_64k_hdd
|
||||||
|
Requires: Ok((["ibm5150v64k", "expansion", "ibm_xebec"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5160
|
||||||
|
Requires: Ok((["ibm5160"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5160_diags
|
||||||
|
Requires: Ok((["ibm5160"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5160_hdd
|
||||||
|
Requires: Ok((["ibm5160", "expansion", "ibm_xebec"], ["ibm_basic"]))
|
||||||
|
Machine: ibm5160_hdd_ega
|
||||||
|
Requires: Ok((["ibm5160", "expansion", "ibm_xebec", "ibm_ega"], ["ibm_basic"]))
|
||||||
|
Machine: ibm_pcjr
|
||||||
|
Requires: Ok((["ibm_pcjr"], ["pcjr_cartridge"]))
|
||||||
|
Machine: tandy1000
|
||||||
|
Requires: Ok((["tandy1000", "expansion", "ibm_xebec"], []))
|
||||||
|
ROM scan found 25 unique ROMs.
|
||||||
|
Have 25 ROM candidates:
|
||||||
|
Filename: GLABIOS_0.2.6_8T.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.6_8T.ROM
|
||||||
|
MD5: cb1cc6e9b163d0a00c9a5c9d70d67eea
|
||||||
|
Size: 8192
|
||||||
|
Filename: GLABIOS_0.2.5_8TC_PEN.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.5_8TC_PEN.ROM
|
||||||
|
MD5: aa1c5b75c37f17f7cfd4f0cc74131843
|
||||||
|
Size: 8192
|
||||||
|
Filename: romdef_tandy.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef_tandy.toml
|
||||||
|
MD5: 9d130b61840f1736898bea1c094dd5e2
|
||||||
|
Size: 1122
|
||||||
|
Filename: romdef_compaq.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef_compaq.toml
|
||||||
|
MD5: 412cbd0820d07c483211569e07d79e77
|
||||||
|
Size: 748
|
||||||
|
Filename: GLABIOS_0.2.6_8TC.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.6_8TC.ROM
|
||||||
|
MD5: 94697def88326a30033a6c60809b9566
|
||||||
|
Size: 8192
|
||||||
|
Filename: ibm-xt-1986-05-09.rom
|
||||||
|
Path: /opt/martypc/media/roms/IBM/ibm-xt-1986-05-09.rom
|
||||||
|
MD5: 67c61798428dc44c0e1d33fd00351e5d
|
||||||
|
Size: 65536
|
||||||
|
Filename: readme.md
|
||||||
|
Path: /opt/martypc/media/roms/readme.md
|
||||||
|
MD5: 9cbdd6d274c0eae3f3c3c7bebff80224
|
||||||
|
Size: 1816
|
||||||
|
Filename: ibm-pc-1982-10-27.rom
|
||||||
|
Path: /opt/martypc/media/roms/IBM/ibm-pc-1982-10-27.rom
|
||||||
|
MD5: 0b2373ff8ce894ba638c05445262a503
|
||||||
|
Size: 8192
|
||||||
|
Filename: GLABIOS_0.2.6_8P.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.6_8P.ROM
|
||||||
|
MD5: fea8f2d3a073d1ab4113d027ecbe57c3
|
||||||
|
Size: 8192
|
||||||
|
Filename: award-2.05.rom
|
||||||
|
Path: /opt/martypc/media/roms/AWARD/award-2.05.rom
|
||||||
|
MD5: 688da86aec830ac09fcd436f28cf9bca
|
||||||
|
Size: 8192
|
||||||
|
Filename: ibm-basic-1.10.rom
|
||||||
|
Path: /opt/martypc/media/roms/IBM/ibm-basic-1.10.rom
|
||||||
|
MD5: eb28f0e8d3f641f2b58a3677b3b998cc
|
||||||
|
Size: 32768
|
||||||
|
Filename: GLABIOS_0.2.6_8XC.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.6_8XC.ROM
|
||||||
|
MD5: b92b0fbcc4d620018bb5247ab166618a
|
||||||
|
Size: 8192
|
||||||
|
Filename: GLABIOS_0.2.5_8PC.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.5_8PC.ROM
|
||||||
|
MD5: d2fbadfecb1bd5509ddeaf40acf143ec
|
||||||
|
Size: 8192
|
||||||
|
Filename: romdef_glabios.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef_glabios.toml
|
||||||
|
MD5: 78fc06a4521998fe5c1d3c5b11e862a1
|
||||||
|
Size: 2446
|
||||||
|
Filename: ibm-vga.rom
|
||||||
|
Path: /opt/martypc/media/roms/IBM/ibm-vga.rom
|
||||||
|
MD5: 2c8a4e1db93d2cbe148b66122747e4f2
|
||||||
|
Size: 24576
|
||||||
|
Filename: romdef_ibm_pcjr.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef_ibm_pcjr.toml
|
||||||
|
MD5: 227f43c3c1fb85e088f2ba5b10674441
|
||||||
|
Size: 11047
|
||||||
|
Filename: GLABIOS_0.2.6_8PC.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.6_8PC.ROM
|
||||||
|
MD5: 1d178837576b47014f3d0e827577f6b5
|
||||||
|
Size: 8192
|
||||||
|
Filename: GLABIOS_0.2.5_8XC.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.5_8XC.ROM
|
||||||
|
MD5: f36c2dd29344eff6f55135f8b3014b81
|
||||||
|
Size: 8192
|
||||||
|
Filename: romdef_megabios.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef_megabios.toml
|
||||||
|
MD5: 312eb921a1f059bbb63c92dc1983cd6f
|
||||||
|
Size: 489
|
||||||
|
Filename: BIOS_5160_08NOV82_U18_1501512.BIN
|
||||||
|
Path: /opt/martypc/media/roms/PCEM/BIOS_5160_08NOV82_U18_1501512.BIN
|
||||||
|
MD5: 1a2ac1ae0fe0f7783197e78da8b3126c
|
||||||
|
Size: 32768
|
||||||
|
Filename: romdef.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef.toml
|
||||||
|
MD5: 3acdc0dafed81e78baa29e26fcebc64c
|
||||||
|
Size: 7911
|
||||||
|
Filename: romdef_ibm.toml
|
||||||
|
Path: /opt/martypc/media/roms/romdef_ibm.toml
|
||||||
|
MD5: 74a4e867fc1648985b9da9c87658890c
|
||||||
|
Size: 17970
|
||||||
|
Filename: BIOS_5160_08NOV82_U19_5000027.BIN
|
||||||
|
Path: /opt/martypc/media/roms/PCEM/BIOS_5160_08NOV82_U19_5000027.BIN
|
||||||
|
MD5: 69e2bd1d08c893cbf841607c8749d5bd
|
||||||
|
Size: 8192
|
||||||
|
Filename: GLABIOS_0.2.6_8X.ROM
|
||||||
|
Path: /opt/martypc/media/roms/GLaBIOS/GLABIOS_0.2.6_8X.ROM
|
||||||
|
MD5: 3c4118ef67355ee9f7b81ddbf6341eab
|
||||||
|
Size: 8192
|
||||||
|
Filename: ibm-pc-1981-10-19.rom
|
||||||
|
Path: /opt/martypc/media/roms/IBM/ibm-pc-1981-10-19.rom
|
||||||
|
MD5: 6a1ed4e3f500d785a01ff4d3e000d79c
|
||||||
|
Size: 8192
|
||||||
|
Have 41 ROM set definitions:
|
||||||
|
glabios_pc_0.2.5
|
||||||
|
rom 0: hash: d2fbadfecb1bd5509ddeaf40acf143ec file: GLABIOS_0.2.5_8PC.ROM
|
||||||
|
glabios_xt_0.2.5
|
||||||
|
rom 0: hash: f36c2dd29344eff6f55135f8b3014b81 file: GLABIOS_0.2.5_8XC.ROM
|
||||||
|
glabios_xt_0.2.5_lp
|
||||||
|
rom 0: hash: aa1c5b75c37f17f7cfd4f0cc74131843 file: GLABIOS_0.2.5_8TC_PEN.ROM
|
||||||
|
glabios_pc_0.2.6
|
||||||
|
rom 0: hash: fea8f2d3a073d1ab4113d027ecbe57c3 file: GLABIOS_0.2.6_8P.ROM
|
||||||
|
glabios_xt_0.2.6
|
||||||
|
rom 0: hash: 3c4118ef67355ee9f7b81ddbf6341eab file: GLABIOS_0.2.6_8X.ROM
|
||||||
|
glabios_pc
|
||||||
|
rom 0: hash: 1d178837576b47014f3d0e827577f6b5 file: GLABIOS_0.2.6_8PC.ROM
|
||||||
|
glabios_xt
|
||||||
|
rom 0: hash: b92b0fbcc4d620018bb5247ab166618a file: GLABIOS_0.2.6_8XC.ROM
|
||||||
|
glabios_xt_turbo
|
||||||
|
rom 0: hash: 94697def88326a30033a6c60809b9566 file: GLABIOS_0.2.6_8TC.ROM
|
||||||
|
tandy1000_v1
|
||||||
|
tandy1000_v2
|
||||||
|
tandy1000_v3
|
||||||
|
ibm_pcjr
|
||||||
|
pcjr_basic
|
||||||
|
pcjr_crossfire
|
||||||
|
pcjr_riverraid
|
||||||
|
pcjr_pitfall2
|
||||||
|
pcjr_mouser
|
||||||
|
pcjr_mineshaft
|
||||||
|
pcjr_scubaventure
|
||||||
|
pcjr_demonsattack
|
||||||
|
supersoft_diags
|
||||||
|
award_xt_4000
|
||||||
|
award_xt_2.05
|
||||||
|
rom 0: hash: 688da86aec830ac09fcd436f28cf9bca file: Award_XT_2.05_2764.bin
|
||||||
|
skiselev_xt_1.00
|
||||||
|
rom 0: hash: file: bios-xt.bin
|
||||||
|
compaq_portable_revb
|
||||||
|
compaq_portable_revf
|
||||||
|
ibm5150_81_v1
|
||||||
|
ibm5150_81_v2
|
||||||
|
rom 0: hash: 6a1ed4e3f500d785a01ff4d3e000d79c file:
|
||||||
|
ibm5150_82_v3
|
||||||
|
ibm5160_82_v1_wbasic
|
||||||
|
rom 0: hash: 1a2ac1ae0fe0f7783197e78da8b3126c file:
|
||||||
|
ibm5160_82_v1
|
||||||
|
rom 0: hash: 69e2bd1d08c893cbf841607c8749d5bd file:
|
||||||
|
rom 1: hash: 1a2ac1ae0fe0f7783197e78da8b3126c file:
|
||||||
|
ibm5160_86_v1_wbasic
|
||||||
|
ibm5160_86_v2_wbasic
|
||||||
|
ibm_xebec
|
||||||
|
ibm_ega
|
||||||
|
ibm_vga
|
||||||
|
rom 0: hash: 2c8a4e1db93d2cbe148b66122747e4f2 file:
|
||||||
|
ibmbasic_v1_32k
|
||||||
|
ibmbasic_v1_8k
|
||||||
|
ibmbasic_v11_32k
|
||||||
|
rom 0: hash: eb28f0e8d3f641f2b58a3677b3b998cc file:
|
||||||
|
ibmbasic_v11_8k
|
||||||
|
rom 0: hash: 69e2bd1d08c893cbf841607c8749d5bd file:
|
||||||
|
megabios_v1
|
||||||
|
rom 0: hash: file: MEGABIOS.ROM
|
||||||
|
Have 15 complete ROM sets:
|
||||||
|
glabios_xt_0.2.5
|
||||||
|
glabios_xt_0.2.5_lp
|
||||||
|
glabios_xt_turbo
|
||||||
|
glabios_xt
|
||||||
|
glabios_pc_0.2.6
|
||||||
|
ibm5150_81_v2
|
||||||
|
glabios_pc
|
||||||
|
ibm_vga
|
||||||
|
ibmbasic_v11_32k
|
||||||
|
glabios_pc_0.2.5
|
||||||
|
ibmbasic_v11_8k
|
||||||
|
ibm5160_82_v1
|
||||||
|
award_xt_2.05
|
||||||
|
glabios_xt_0.2.6
|
||||||
|
ibm5160_82_v1_wbasic
|
||||||
|
Complete sets support the following features:
|
||||||
|
pcjr_cartridge
|
||||||
|
pcjr_basic (12:0), priority: 0
|
||||||
|
pcjr_crossfire (13:1), priority: 0
|
||||||
|
pcjr_riverraid (14:2), priority: 0
|
||||||
|
pcjr_pitfall2 (15:3), priority: 0
|
||||||
|
pcjr_mouser (16:4), priority: 0
|
||||||
|
pcjr_mineshaft (17:5), priority: 0
|
||||||
|
pcjr_scubaventure (18:6), priority: 0
|
||||||
|
pcjr_demonsattack (19:7), priority: 0
|
||||||
|
bios
|
||||||
|
ibm5160_86_v2_wbasic (32:0), priority: 4
|
||||||
|
ibm5150_82_v3 (28:1), priority: 3
|
||||||
|
ibm5150_81_v2 (27:2), priority: 2
|
||||||
|
ibm5160_82_v1 (30:3), priority: 2
|
||||||
|
ibm5150_81_v1 (26:4), priority: 1
|
||||||
|
ibm5160_82_v1_wbasic (29:5), priority: 1
|
||||||
|
glabios_xt_turbo (7:6), priority: 15
|
||||||
|
tandy1000_v1 (8:7), priority: 5
|
||||||
|
megabios_v1 (40:8), priority: 5
|
||||||
|
glabios_pc (5:9), priority: 4
|
||||||
|
glabios_xt (6:10), priority: 4
|
||||||
|
ibm5160_86_v1_wbasic (31:11), priority: 3
|
||||||
|
tandy1000_v3 (10:12), priority: 2
|
||||||
|
glabios_pc_0.2.6 (3:13), priority: 1
|
||||||
|
glabios_xt_0.2.6 (4:14), priority: 1
|
||||||
|
tandy1000_v2 (9:15), priority: 1
|
||||||
|
award_xt_4000 (21:16), priority: 1
|
||||||
|
award_xt_2.05 (22:17), priority: 1
|
||||||
|
skiselev_xt_1.00 (23:18), priority: 1
|
||||||
|
glabios_pc_0.2.5 (0:19), priority: 0
|
||||||
|
glabios_xt_0.2.5 (1:20), priority: 0
|
||||||
|
glabios_xt_0.2.5_lp (2:21), priority: 0
|
||||||
|
ibm_pcjr (11:22), priority: 0
|
||||||
|
supersoft_diags (20:23), priority: 0
|
||||||
|
compaq_portable_revb (24:24), priority: 0
|
||||||
|
compaq_portable_revf (25:25), priority: 0
|
||||||
|
expansion
|
||||||
|
ibm5160_86_v2_wbasic (32:0), priority: 4
|
||||||
|
ibm5150_82_v3 (28:1), priority: 3
|
||||||
|
ibm5160_82_v1 (30:2), priority: 2
|
||||||
|
ibm5160_82_v1_wbasic (29:3), priority: 1
|
||||||
|
glabios_xt_turbo (7:4), priority: 15
|
||||||
|
tandy1000_v1 (8:5), priority: 5
|
||||||
|
megabios_v1 (40:6), priority: 5
|
||||||
|
glabios_pc (5:7), priority: 4
|
||||||
|
glabios_xt (6:8), priority: 4
|
||||||
|
ibm5160_86_v1_wbasic (31:9), priority: 3
|
||||||
|
tandy1000_v3 (10:10), priority: 2
|
||||||
|
glabios_pc_0.2.6 (3:11), priority: 1
|
||||||
|
glabios_xt_0.2.6 (4:12), priority: 1
|
||||||
|
tandy1000_v2 (9:13), priority: 1
|
||||||
|
award_xt_4000 (21:14), priority: 1
|
||||||
|
award_xt_2.05 (22:15), priority: 1
|
||||||
|
skiselev_xt_1.00 (23:16), priority: 1
|
||||||
|
glabios_pc_0.2.5 (0:17), priority: 0
|
||||||
|
glabios_xt_0.2.5 (1:18), priority: 0
|
||||||
|
glabios_xt_0.2.5_lp (2:19), priority: 0
|
||||||
|
compaq_portable_revf (25:20), priority: 0
|
||||||
|
ibm5160
|
||||||
|
ibm5160_86_v2_wbasic (32:0), priority: 4
|
||||||
|
ibm5160_82_v1 (30:1), priority: 2
|
||||||
|
ibm5160_82_v1_wbasic (29:2), priority: 1
|
||||||
|
compaq_portable_revb (24:3), priority: 0
|
||||||
|
compaq_portable_revf (25:4), priority: 0
|
||||||
|
glabios_xt_turbo (7:5), priority: 15
|
||||||
|
megabios_v1 (40:6), priority: 5
|
||||||
|
glabios_xt (6:7), priority: 4
|
||||||
|
ibm5160_86_v1_wbasic (31:8), priority: 3
|
||||||
|
glabios_xt_0.2.6 (4:9), priority: 1
|
||||||
|
award_xt_4000 (21:10), priority: 1
|
||||||
|
award_xt_2.05 (22:11), priority: 1
|
||||||
|
skiselev_xt_1.00 (23:12), priority: 1
|
||||||
|
glabios_xt_0.2.5 (1:13), priority: 0
|
||||||
|
glabios_xt_0.2.5_lp (2:14), priority: 0
|
||||||
|
supersoft_diags (20:15), priority: 0
|
||||||
|
glabios_xt
|
||||||
|
glabios_xt_0.2.6 (4:0), priority: 1
|
||||||
|
glabios_xt_0.2.5_lp (2:1), priority: 0
|
||||||
|
glabios_pc_0.2.6 (3:2), priority: 1
|
||||||
|
tandy1000
|
||||||
|
tandy1000_v1 (8:0), priority: 5
|
||||||
|
tandy1000_v3 (10:1), priority: 2
|
||||||
|
tandy1000_v2 (9:2), priority: 1
|
||||||
|
ibm_xebec
|
||||||
|
ibm_xebec (33:0), priority: 1
|
||||||
|
ibm_ega
|
||||||
|
ibm_ega (34:0), priority: 1
|
||||||
|
ibm_basic
|
||||||
|
ibm5160_86_v2_wbasic (32:0), priority: 4
|
||||||
|
ibmbasic_v1_32k (36:1), priority: 2
|
||||||
|
ibmbasic_v11_32k (38:2), priority: 2
|
||||||
|
ibm5160_82_v1_wbasic (29:3), priority: 1
|
||||||
|
ibmbasic_v1_8k (37:4), priority: 1
|
||||||
|
ibmbasic_v11_8k (39:5), priority: 1
|
||||||
|
ibm5160_86_v1_wbasic (31:6), priority: 3
|
||||||
|
skiselev_xt_1.00 (23:7), priority: 1
|
||||||
|
ibm_pcjr (11:8), priority: 0
|
||||||
|
ibm_pcjr
|
||||||
|
ibm_pcjr (11:0), priority: 0
|
||||||
|
ibm5150v256k
|
||||||
|
ibm5150_82_v3 (28:0), priority: 3
|
||||||
|
glabios_pc (5:1), priority: 4
|
||||||
|
glabios_pc_0.2.6 (3:2), priority: 1
|
||||||
|
glabios_pc_0.2.5 (0:3), priority: 0
|
||||||
|
supersoft_diags (20:4), priority: 0
|
||||||
|
ibm5150v64k
|
||||||
|
ibm5150_82_v3 (28:0), priority: 3
|
||||||
|
ibm5150_81_v2 (27:1), priority: 2
|
||||||
|
ibm5150_81_v1 (26:2), priority: 1
|
||||||
|
glabios_pc (5:3), priority: 4
|
||||||
|
glabios_pc_0.2.6 (3:4), priority: 1
|
||||||
|
glabios_pc_0.2.5 (0:5), priority: 0
|
||||||
|
supersoft_diags (20:6), priority: 0
|
||||||
|
diag
|
||||||
|
supersoft_diags (20:0), priority: 0
|
||||||
|
ibm_vga
|
||||||
|
ibm_vga (35:0), priority: 1
|
Loading…
Reference in New Issue
Block a user