1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
// license:BSD-3-Clause
// copyright-holders:Fabio Priuli, Angelo Salese
#include "emu.h"
#include "a800_carts.h"
// (#num) denotes the canonical number from .car specs for unemulated/undumped variants
void a800_left(device_slot_interface &device)
{
device.option_add_internal("a800_8k", A800_ROM);
device.option_add_internal("a800_8k_right", A800_ROM_RIGHT);
device.option_add_internal("a800_16k", A800_ROM_16KB);
device.option_add_internal("a800_phoenix", A800_ROM_PHOENIX);
device.option_add_internal("a800_blizzard", A800_ROM_BLIZZARD_16KB);
device.option_add_internal("a800_phoenix_ast2k", A800_ROM_PHOENIX_AST2K);
device.option_add_internal("a800_bbsb", A800_ROM_BBSB);
device.option_add_internal("a800_oss8k", A800_ROM_OSS8K);
device.option_add_internal("a800_oss034m", A800_ROM_OSS34);
device.option_add_internal("a800_oss043m", A800_ROM_OSS43);
device.option_add_internal("a800_ossm091", A800_ROM_OSS91);
// OSS cart with subslot
// device.option_add_internal("a800_mddos", A800_ROM_MDDOS);
device.option_add_internal("a800_williams", A800_ROM_WILLIAMS);
device.option_add_internal("a800_diamond", A800_ROM_DIAMOND);
device.option_add_internal("a800_express", A800_ROM_EXPRESS);
device.option_add_internal("a800_turbo", A800_ROM_TURBO);
device.option_add_internal("a800_tlink2", A800_ROM_TELELINK2);
device.option_add_internal("a800_ultracart", A800_ROM_ULTRACART);
device.option_add_internal("a800_blizzard_32kb", A800_ROM_BLIZZARD_32KB);
device.option_add_internal("a800_adawliah", A800_ROM_ADAWLIAH);
device.option_add_internal("a800_atrax", A800_ROM_ATRAX);
device.option_add_internal("a800_sparta", A800_ROM_SPARTADOS);
device.option_add_internal("a800_sparta_128kb", A800_ROM_SPARTADOS_128KB);
// (#48-#49 / #68) SDX 64KB/128KB variants
// device.option_add_internal("a800_sdx_atrax_64kb", A800_ROM_SDX_ATRAX_64KB);
// device.option_add_internal("a800_sdx_atrax_128kb", A800_ROM_SDX_ATRAX_128KB);
// (#5) DB "Dave Bennett" homebrew cartridge, vaporware? cfr. https://forums.atariage.com/topic/307663-32k-db-cart/
// device.option_add_internal("a800_db", A800_ROM_DB);
// (#47) "Atari Super Turbo" 32 KB Polish cart with exotic banking scheme (256 bytes at a time) that maps to CCTL
// device.option_add_internal("a800_ast", A800_ROM_AST);
// TOOLBOX III / RAMBOX 2 Polish carts with additional 256KB RAM
// device.option_add_internal("a800_jrc", A800_ROM_JRC);
// Czech cart, some kind of toolkit with bankswitch that rolls back after set time
// device.option_add_internal("a800_cos32", A800_ROM_COS32);
// XEGS carts
device.option_add_internal("xegs", XEGS_ROM);
// "XEGS demo cartridge", 4 games in 1 with binary counter applied at reset for each reboot
// device.option_add_internal("xegs_demo", XEGS_ROM_DEMO);
// (#33-#38) Carts sold by Nir Dary in the '90s, has fixed last bank to RD5 and selectable RD4 bank. 32KB to 1MB ROM size options
// device.option_add_internal("xegs_switch", XEGS_ROM_SWITCHABLE);
// flash carts
device.option_add_internal("a800_corina", A800_ROM_CORINA);
device.option_add_internal("a800_corina_sram", A800_ROM_CORINA_SRAM);
device.option_add( "maxflash_128kb", A800_MAXFLASH_128KB);
device.option_add( "maxflash_1mb", A800_MAXFLASH_1MB);
// (#61) MegaMax, has switch that toggles between Atarimax 1MB mode and 2MB
// device.option_add( "megamax", A800_MEGAMAX);
device.option_add( "sic_128kb", A800_SIC_128KB);
device.option_add( "sic_256kb", A800_SIC_256KB);
device.option_add( "sic_512kb", A800_SIC_512KB);
// (#26-#32 / #63-#64) MegaCart 16KB up to 4MB variant too
// device.option_add( "megacart", A800_MEGACART);
// Atarimax MyIDE-II, 512 KB flash ROM + 512 KB RAM + CompactFlash i/f, requires DIY MyBIOS ROM installation into main system
// device.option_add( "myideii", A800_MYIDE_II);
// 512KB flash + CompactFlash, emulates a Sparta DOS X, has DS1305 RTC hooked up thru SPI bus, SIDE 2 is an upgraded variant with slightly different CCTL mapping
// device.option_add( "side1", A800_SIDE1);
// device.option_add( "side2", A800_SIDE2);
// Upgrades SIDE 2 with SD card instead of CF, MX29LV640ET NOR flash chip, 2MB RAM, DMA with various OPs, ROM bank emulation modes with relocatable CCTL ...
// device.option_add( "side3", A800_SIDE3);
// STM32 coprocessor with SD card, cfr. https://github.com/robinhedwards/UnoCart
// device.option_add( "unocart", A800_UNOCART);
// earlier variant of above running on FPGA, cfr. https://github.com/robinhedwards/UltimateCart
// device.option_add( "ultimatecart", A800_ULTIMATECART);
// (#62 / #65) The!Cart, 32/64/128MB + 512KB RAM, emulation modes
// device.option_add( "thecart", A800_THECART);
// non-ROM types
device.option_add( "rtime8", A800_RTIME8);
// adds extra 65C816 coprocessor. No firmware, runs on code uploaded by main CPU, also two rev variants (V1 and V2)
// NB: SDX documentation calls this Weronika, which just seems a Polish alias
// device.option_add( "veronica", A800_VERONICA);
// 128 or 256 KB additional RAM, schematics available at atarimax
// device.option_add( "ramcart", A800_RAM_CART);
// converts analog mono sound to digital by reading $d500 low 4 bitset
// device.option_add( "ad_converter", A800_AD_CONVERTER);
device.option_add( "supercharger", A800_SUPER_CHARGER);
// The PILL! / Super PILL! / Super Cart with RD4/RD5 held high and that's about it (lolwut)
// device.option_add( "pill", A800_PILL);
// Thompson Proburner, EPROM burner
// device.option_add( "proburner", A800_PROBURNER);
// The Multiplexer! (MUX!), PBI bus between 1 master and 8 slaves
// cfr. https://sdx.atari8.info/sdx_files/muxsdx.txt & http://realdos.net/mux.html
// device.option_add( "mux", A800_MUX);
}
void a800_right(device_slot_interface &device)
{
device.option_add_internal("a800_8k_right", A800_ROM_RIGHT);
}
void a5200_carts(device_slot_interface &device)
{
device.option_add_internal("a5200_rom", A5200_ROM);
device.option_add_internal("a5200_2chips", A5200_ROM_2CHIPS);
device.option_add_internal("a5200_bbsb", A5200_ROM_BBSB);
device.option_add_internal("a5200_supercart", A5200_ROM_SUPERCART);
}
|