bbc disk drive controller

This commit is contained in:
Kelvin Sherlock 2023-11-25 10:13:20 -05:00
parent 21365c4b83
commit 45fe975cff
17 changed files with 1386 additions and 1 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2869,6 +2869,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2892,6 +2897,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2915,6 +2925,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2938,6 +2953,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4950,6 +4970,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4973,6 +4998,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5975,6 +6005,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5998,6 +6033,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -7019,6 +7059,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -2869,6 +2869,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2892,6 +2897,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2915,6 +2925,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2938,6 +2953,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4950,6 +4970,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4973,6 +4998,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5975,6 +6005,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5998,6 +6033,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -7019,6 +7059,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -2869,6 +2869,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2892,6 +2897,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2915,6 +2925,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2938,6 +2953,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4950,6 +4970,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4973,6 +4998,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5975,6 +6005,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5998,6 +6033,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -7019,6 +7059,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -2703,6 +2703,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2726,6 +2731,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2749,6 +2759,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2772,6 +2787,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4784,6 +4804,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4807,6 +4832,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5809,6 +5839,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5832,6 +5867,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -6853,6 +6893,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -2703,6 +2703,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2726,6 +2731,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2749,6 +2759,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -2772,6 +2787,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4784,6 +4804,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4807,6 +4832,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5809,6 +5839,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5832,6 +5867,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -6853,6 +6893,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -4574,6 +4574,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4597,6 +4602,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4627,6 +4637,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4650,6 +4665,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5721,6 +5741,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5744,6 +5769,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -6765,6 +6795,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -4422,6 +4422,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4445,6 +4450,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5447,6 +5457,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5470,6 +5485,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -6491,6 +6511,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -4574,6 +4574,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4597,6 +4602,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4627,6 +4637,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -4650,6 +4665,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5721,6 +5741,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -5744,6 +5769,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
@ -6765,6 +6795,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -1984,6 +1984,11 @@
<string>5.25" quad density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>

View File

@ -274,6 +274,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
@ -331,6 +336,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>

View File

@ -274,6 +274,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
@ -331,6 +336,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>

View File

@ -602,6 +602,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
@ -659,6 +664,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>

View File

@ -602,6 +602,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
@ -659,6 +664,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>

View File

@ -602,6 +602,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
@ -659,6 +664,11 @@
<string>5.25" double density floppy drive</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>

View File

@ -82,6 +82,7 @@ MACHINES_EXTRA = MACHINES + (
SLOTS = (
"fdc", # bbc fdc
"sl0", "sl1", "sl2", "sl3",
"sl4", "sl5", "sl6", "sl7",
"exp", "aux",
@ -195,4 +196,5 @@ SLOT_NAMES = {
"userport": "User Port",
"internal": "Internal",
"1mhzbus": "1MHz Bus",
"fdc": "Disk Drives",
}

View File

@ -323,6 +323,14 @@ DEVICE_MEDIA = {
# 'null_modem': 'bitbanger',
# 'rs232_sync_io': 'bitbanger',
'a2romusr': 'rom',
# bbc
"525qd": "floppy_5_25",
"525dd": "floppy_5_25",
"525sd": "floppy_5_25",
"525ssdd": "floppy_5_25",
"525sssd": "floppy_5_25",
}
DEVICE_EXCLUDE = set([
@ -350,7 +358,6 @@ def make_device_options(slot):
# apple 2 scsi slot 1 is a default cd rom device.
# Macintosh scsi slot 3 is a default cd rom device.
# THIS IS NOT REFLECTED IN THE XML SINCE IT'S SET AT RUN TIME.
# IN FACT, THE :scsi
options = []
has_default = False
@ -418,6 +425,7 @@ def make_device_slots(machine):
slotname = slot.get("name")
options = make_device_options(slot)
if not options: continue
slots.append({
"name": slotname,
"options": options