1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-12-01 22:50:35 +00:00
6502bench/SourceGen/RuntimeData/SystemDefs.json
Andy McFadden 9aaa37a23c Add Cxxx I/O locations in bank $e0 for Apple IIgs
On an Apple IIgs, the memory-mapped I/O locations are actually in
bank $e0, shadow-copied to bank $00.  This adds a copy of the
relevant definitions from Cxxx-IO.sym65, with the addresses in bank
$e0 and "_GS" appended to the labels.

This is now included by default for the Apple IIgs system defintions.

(I thought about just adding them to Cxxx-IO.sym65, but then they
pollute the namespace for 8-bit systems.  Stripping them out at run
time got a little complicated because the platform symbols are only
loaded once, and we'd have to reload them every time the CPU definition
changed.  Further, there are a few aliases provided as constants, and
constants are allowed to be 32 bits on all systems, so those can't be
stripped.  Rather than defining a new definition I figured it was
just easier to have a second file.  Maintenance shouldn't be too taxing,
as definitions for 40-year-old machines don't change all that often.)

(I also thought about trying to make the address mirroring stuff work
for me here, but that would result in accesses being made to the
canonical address with an offset of +$e00000, which looks awful.)
2020-07-11 14:01:02 -07:00

325 lines
7.7 KiB
JSON

{
"_copyright" : "Copyright 2018 faddenSoft. All rights reserved.",
"_license" : "Apache 2.0; see LICENSE.txt for details",
"Contents" : "6502bench SourceGen sysdef v1",
"Defs" : [
{
"Name" : "Apple //e",
"GroupName" : "Apple",
"Cpu" : "65C02",
"Speed" : "1.023",
"Description" : "Deluxe 8-bit Apple II system, configured for ProDOS.",
"SymbolFiles" : [
"RT:Apple/F8-ROM.sym65",
"RT:Apple/Cxxx-IO.sym65",
"RT:Apple/C08x-DiskII.sym65",
"RT:Apple/ProDOS8.sym65"
],
"ExtensionScripts" : [
"RT:Apple/ProDOS8.cs",
"RT:Apple/VisHiRes.cs"
],
"Parameters" : {
"load-address":"0x2000"
}
},
{
"Name" : "Apple ][+",
"GroupName" : "Apple",
"Cpu" : "6502",
"Speed" : "1.023",
"Description" : "Early 8-bit Apple II system, configured for DOS 3.3.",
"SymbolFiles" : [
"RT:Apple/F8-ROM.sym65",
"RT:Apple/Cxxx-IO.sym65",
"RT:Apple/C08x-DiskII.sym65",
"RT:Apple/DOS33.sym65"
],
"ExtensionScripts" : [
"RT:Apple/VisHiRes.cs"
],
"Parameters" : {
"load-address":"0x2000"
}
},
{
"Name" : "Apple IIgs (P8)",
"GroupName" : "Apple",
"Cpu" : "65816",
"Speed" : "2.8",
"Description" : "Apple IIgs, configured for ProDOS 8.",
"SymbolFiles" : [
"RT:Apple/F8-ROM.sym65",
"RT:Apple/Cxxx-IO.sym65",
"RT:Apple/C08x-DiskII.sym65",
"RT:Apple/E0Cxxx-IO.sym65",
"RT:Apple/ProDOS8.sym65",
"RT:Apple/IIgs-ROM.sym65"
],
"ExtensionScripts" : [
"RT:Apple/ProDOS8.cs",
"RT:Apple/VisHiRes.cs"
],
"Parameters" : {
"load-address":"0x2000",
"entry-flags":"emulation"
}
},
{
"Name" : "Apple IIgs (GS/OS)",
"GroupName" : "Apple",
"Cpu" : "65816",
"Speed" : "2.8",
"Description" : "Apple IIgs, configured for GS/OS.",
"SymbolFiles" : [
"RT:Apple/Cxxx-IO.sym65",
"RT:Apple/C08x-DiskII.sym65",
"RT:Apple/E0Cxxx-IO.sym65",
"RT:Apple/IIgs-ROM.sym65",
"RT:Apple/GSOS.sym65"
],
"ExtensionScripts" : [
"RT:Apple/GSOS.cs",
"RT:Apple/IIgs-Toolbox.cs"
],
"Parameters" : {
"load-address":"0x2000",
"entry-flags":"native-long"
}
},
{
"Name" : "Apple ///",
"GroupName" : "Apple",
"Cpu" : "6502",
"Speed" : "2",
"Description" : "Apple /// system, configured for SOS.",
"SymbolFiles" : [
"RT:Apple/A3-ROM.sym65",
"RT:Apple/A3-IO.sym65",
"RT:Apple/SOS.sym65"
],
"ExtensionScripts" : [
"RT:Apple/SOS.cs"
],
"Parameters" : {
"load-address":"0x2000",
"two-byte-brk":"true"
}
},
{
"Name" : "Apple-1",
"GroupName" : "Apple",
"Cpu" : "6502",
"Speed" : "1",
"Description" : "Apple-1 system.",
"SymbolFiles" : [
"RT:Apple/Apple1.sym65"
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Atari 800",
"GroupName" : "Atari",
"Cpu" : "6502B",
"Speed" : "1.79",
"Description" : "Atari 800 [placeholder].",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Atari 2600",
"GroupName" : "Atari",
"Cpu" : "6507",
"Speed" : "1.19",
"Description" : "Atari 2600 video game system.",
"SymbolFiles" : [
"RT:Atari/2600.sym65"
],
"ExtensionScripts" : [
"RT:Atari/Vis2600.cs"
],
"Parameters" : {
"load-address":"0xf000"
}
},
{
"Name" : "Atari 5200",
"GroupName" : "Atari",
"Cpu" : "6502C",
"Speed" : "1.79",
"Description" : "Atari 5200 [placeholder].",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Atari Lynx",
"GroupName" : "Atari",
"Cpu" : "65SC02",
"Speed" : "4",
"Description" : "Atari Lynx handheld game console.",
"SymbolFiles" : [
"RT:Atari/Lynx.sym65"
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Commodore 64 (PRG)",
"GroupName" : "Commodore",
"Cpu" : "6510",
"Speed" : "1.023",
"Description" : "Commodore 64 home computer. The first two bytes hold the load address.",
"SymbolFiles" : [
"RT:Commodore/C64-Kernal.sym65"
],
"ExtensionScripts" : [
"RT:Commodore/VisC64.cs"
],
"Parameters" : {
"first-word-is-load-addr":"true",
"default-text-encoding":"c64-petscii"
}
},
{
"Name" : "Commodore 64 (BIN)",
"GroupName" : "Commodore",
"Cpu" : "6510",
"Speed" : "1.023",
"Description" : "Commodore 64 home computer. General binary file.",
"SymbolFiles" : [
"RT:Commodore/C64-Kernal.sym65"
],
"ExtensionScripts" : [
"RT:Commodore/VisC64.cs"
],
"Parameters" : {
"default-text-encoding":"c64-petscii"
}
},
{
"Name" : "Commodore 128",
"GroupName" : "Commodore",
"Cpu" : "8502",
"Speed" : "2",
"Description" : "Commodore 128 home computer.",
"SymbolFiles" : [
"RT:Commodore/C64-Kernal.sym65",
"RT:Commodore/C128-Kernal.sym65"
],
"ExtensionScripts" : [
"RT:Commodore/VisC64.cs"
],
"Parameters" : {
"default-text-encoding":"c64-petscii"
}
},
{
"Name" : "Commodore Pet 2001",
"GroupName" : "Commodore",
"Cpu" : "6502",
"Speed" : "1",
"Description" : "Commodore Pet [placeholder].",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
"default-text-encoding":"c64-petscii"
}
},
{
"Name" : "NES",
"GroupName" : "Nintendo",
"Cpu" : "2A03",
"Speed" : "1.79",
"Description" : "Nintendo Entertainment System.",
"SymbolFiles" : [
"RT:Nintendo/NES.sym65"
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Super NES",
"GroupName" : "Nintendo",
"Cpu" : "5A22",
"Speed" : "3.58",
"Description" : "Super Nintendo Entertainment System [placeholder].",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Generic 6502",
"GroupName" : "Generic",
"Cpu" : "6502",
"Speed" : "1",
"Description" : "Generic 6502-based system.",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Generic 6502 + Undoc",
"GroupName" : "Generic",
"Cpu" : "6502",
"Speed" : "1",
"Description" : "Generic 6502-based system, with undocumented opcodes enabled.",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
"undocumented-opcodes":"true"
}
},
{
"Name" : "Generic 65C02",
"GroupName" : "Generic",
"Cpu" : "65C02",
"Speed" : "1",
"Description" : "Generic 65C02-based system.",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
}
},
{
"Name" : "Generic 65816",
"GroupName" : "Generic",
"Cpu" : "65816",
"Speed" : "1",
"Description" : "Generic 65816-based system.",
"SymbolFiles" : [
],
"ExtensionScripts" : [
],
"Parameters" : {
}
}
]
}