macintosh lc support

This commit is contained in:
Kelvin Sherlock
2021-01-17 00:56:42 -05:00
parent 2046eed6f4
commit bfa371ec0c
8 changed files with 139 additions and 2 deletions

View File

@@ -21,6 +21,9 @@ MACHINES = (
"zijini",
# China Education Computer
"cec2000", "cece", "cecg", "ceci", "cecm",
# macintosh...
"maclc"
)
@@ -32,5 +35,9 @@ SLOTS = (
"rs232",
"gameio",
"printer",
"modem"
"modem",
# mac nubus
"nb1", "nb2", "nb3", "nb4", "nb5", "nb6", "nb7",
"nb8", "nb9", "nba", "nbb", "nbc", "nbd", "nbe",
)

View File

@@ -7,6 +7,18 @@ import xml.etree.ElementTree as ET
from machines import MACHINES, SLOTS
# macintosh errata:
# maclc has scsi:1 - scsi:7 and lcpds slots, but none are currently configurable.
# maciifx has scsi:1 - scsi:7 (not configurable)
# maciifx has "nb9", "nba" - "nbe" as configurable nubus slots
#
# w/ nubus, can specify video card which may have different resolution.
#
# Inside Macintosh: Devices chapter 2 explains the Nubus slot name scheme
# (essentially $01-$0e; $0 and $f are reserved)
#
# don't allow these for now. generally because they add floppy/hard drives
# but don't work with normal disk images
DISABLED = set((
@@ -43,6 +55,9 @@ def find_machine_media(parent):
"apple2_cass": "cass",
"floppy_5_25": "flop_5_25",
"floppy_3_5": "flop_3_5",
# mac
"scsi_hdd": "hard",
"cdrom": "cdrm",
}
media = {}
for x in parent.findall("./device"):
@@ -68,6 +83,9 @@ def find_machine_media(parent):
if mname == "apple2c" and slot == "sl6": slot = None
# hack for now - these are scsi:1-7 slots but slot option isn't adjustable.
if mname == "maclc" and slot == "scsi": slot = None
if slot: continue
# skip slot devices -- they'll be handled as part of the device.
#if ":" in tag and tag[0] not in "0123456789": continue
@@ -196,7 +214,9 @@ for m in machines:
# node = machine.find('display[@tag="screen"]')
node = machine.find('./display')
data["resolution"] = [int(node.get("width")), int(node.get("height")) * 2]
hscale = 2
if m in ("maclc"): hscale = 1
data["resolution"] = [int(node.get("width")), int(node.get("height")) * hscale]
mm = {}
for x in root.findall("machine[@isdevice='yes']"):

View File

@@ -24,6 +24,8 @@ iie_clones_children = ["mprof3", "prav8c", "spectred", "zijini"]
cec_children = ["cec2000", "cece", "cecg", "ceci", "cecm"]
agat_children = ["agat7", "agat9"]
mac_nubus_children = ["maclc"]
tree = [
("Apple I", "apple1", apple1_children),
("Apple ][", "apple2", apple2_children),
@@ -36,6 +38,7 @@ tree = [
("Laser", "laser128", laser_children),
("Agat", "agat7", agat_children),
("China Education Computer", None, cec_children),
("Macintosh (NuBus)", "maclc", mac_nubus_children)
]
env = {'DYLD_FALLBACK_FRAMEWORK_PATH': '../embedded'}

View File

@@ -62,12 +62,18 @@ ym2608
a2grapplerplus
a2pic
# .227
a2parprn
a2suprterm
a2uniprint
ccs7710
#.228
aprissi
# macintosh
maclc
egret
""".splitlines()
#
@@ -79,6 +85,7 @@ aprissi
#
ROMS = [x for x in ROMS if x != ""]
ROMS = [x for x in ROMS if x[0] != "#"]
ROMS.sort()
data = {}