28
* The GeoRAM is a banked memory system. It uses the registers at
29
* $dffe and $dfff to determine what part of the GeoRAM memory should
30
* be mapped to $de00-$deff.
32
* The BBG (Battery Backed GeoRAM) is a version that retains the
33
* RAM contents after power-off.
35
* The register at $dfff selects which 16k block to map, and $dffe
36
* selects a 256-byte page in that block. Since there are only 64
37
* 256-byte pages inside of 16k, the value in $dffe ranges from 0 to
44
* x = unused, not connected.
47
* The number of 16k blocks that is available depends on the
48
* size of the GeoRAM/BBG:
60
* The unused bits in both registers are ignore and using them in
61
* software will cause a wrap-around.
63
* The two registers are write-only. Attempting to read them will
64
* only return random values.
66
* Currently both the BBG and GeoRAM are emulated, BBG mode is
67
* used when selecting a save-file.
69
* The current emulation has the two registers mirrorred through the
70
* range of $df80-$dffd
72
* There is also a user-made clone of the GeoRAM called the NeoRAM,
73
* it works in the same way as the GeoRAM but seems to have extra
74
* RAM sizes currently not supported by this emulation (like 1536k).
186
235
/* ------------------------------------------------------------------------- */
188
#ifdef HAS_TRANSLATION
189
static const cmdline_option_t cmdline_options[] =
191
{ "-georam", SET_RESOURCE, 0, NULL, NULL, "GEORAM", (resource_value_t)1,
192
0, IDCLS_ENABLE_GEORAM },
193
{ "+georam", SET_RESOURCE, 0, NULL, NULL, "GEORAM", (resource_value_t)0,
194
0, IDCLS_DISABLE_GEORAM },
195
{ "-georamimage", SET_RESOURCE, 1, NULL, NULL, "GEORAMfilename", NULL,
196
IDCLS_P_NAME, IDCLS_SPECIFY_GEORAM_NAME },
197
{ "-georamsize", SET_RESOURCE, 1, NULL, NULL, "GEORAMsize", NULL,
198
IDCLS_P_SIZE_IN_KB, IDCLS_GEORAM_SIZE },
202
static const cmdline_option_t cmdline_options[] =
204
{ "-georam", SET_RESOURCE, 0, NULL, NULL, "GEORAM", (resource_value_t)1,
205
NULL, N_("Enable the GEORAM expansion unit") },
206
{ "+georam", SET_RESOURCE, 0, NULL, NULL, "GEORAM", (resource_value_t)0,
207
NULL, N_("Disable the GEORAM expansion unit") },
208
{ "-georamimage", SET_RESOURCE, 1, NULL, NULL, "GEORAMfilename", NULL,
209
N_("<name>"), N_("Specify name of GEORAM image") },
210
{ "-georamsize", SET_RESOURCE, 1, NULL, NULL, "GEORAMsize", NULL,
211
N_("<size in KB>"), N_("Size of the GEORAM expansion unit") },
237
static const cmdline_option_t cmdline_options[] =
239
{ "-georam", SET_RESOURCE, 0,
240
NULL, NULL, "GEORAM", (resource_value_t)1,
241
USE_PARAM_STRING, USE_DESCRIPTION_ID,
242
IDCLS_UNUSED, IDCLS_ENABLE_GEORAM,
244
{ "+georam", SET_RESOURCE, 0,
245
NULL, NULL, "GEORAM", (resource_value_t)0,
246
USE_PARAM_STRING, USE_DESCRIPTION_ID,
247
IDCLS_UNUSED, IDCLS_DISABLE_GEORAM,
249
{ "-georamimage", SET_RESOURCE, 1,
250
NULL, NULL, "GEORAMfilename", NULL,
251
USE_PARAM_ID, USE_DESCRIPTION_ID,
252
IDCLS_P_NAME, IDCLS_SPECIFY_GEORAM_NAME,
254
{ "-georamsize", SET_RESOURCE, 1,
255
NULL, NULL, "GEORAMsize", NULL,
256
USE_PARAM_ID, USE_DESCRIPTION_ID,
257
IDCLS_P_SIZE_IN_KB, IDCLS_GEORAM_SIZE,
216
262
int georam_cmdline_options_init(void)