toscr_1(32 - out_nbits, fm);
}
- for (int j = 0; j < (fmode == 2 ? 3 : 1); j++) {
+ for (int j = 0; j < (fm == 2 ? 3 : 1); j++) {
if (out_offs >= MAX_WORDS_PER_LINE / 4 - 1)
break;
i += 32;
#define CARD_FLAG_CAN_Z3 1
#define CARD_FLAG_CHILD 8
+#define CARD_FLAG_UAEROM 16
// More information in first revision HRM Appendix_G
#define BOARD_PROTOAUTOCONFIG 1
#ifdef FILESYS
if (do_mount && p->uaeboard >= 0 && p->uaeboard < 2) {
- cards_set[cardno].flags = 0;
+ cards_set[cardno].flags = CARD_FLAG_UAEROM;
cards_set[cardno].name = _T("UAEFS");
cards_set[cardno].zorro = 2;
cards_set[cardno].initnum = expamem_init_filesys;
cards_set[cardno++].map = expamem_map_filesys;
}
if (p->uaeboard > 0) {
- cards_set[cardno].flags = 0;
+ cards_set[cardno].flags = CARD_FLAG_UAEROM;
cards_set[cardno].name = _T("UAEBOARD");
cards_set[cardno].zorro = 2;
cards_set[cardno].initnum = expamem_init_uaeboard;
cards_set[cardno++].map = expamem_map_uaeboard;
}
if (do_mount && p->uaeboard < 2) {
- cards_set[cardno].flags = 0;
+ cards_set[cardno].flags = CARD_FLAG_UAEROM;
cards_set[cardno].name = _T("UAEBOOTROM");
cards_set[cardno].zorro = BOARD_NONAUTOCONFIG_BEFORE;
cards_set[cardno].initnum = expamem_rtarea_init;
{
if (!src) {
restore_cardno = 0;
+#if 0
+ currprefs.uaeboard = changed_prefs.uaeboard = -1;
+#endif
return NULL;
}
TCHAR *s;
for (int j = 0; j < 16; j++) {
ec->aci.autoconfig_bytes[j] = restore_u8();
}
-
+#if 0
+ if (ec->flags & CARD_FLAG_UAEROM) {
+ if (ec->base >= 0xe90000 && ec->base < 0xf00000) {
+ if (ec->size > 65536) {
+ currprefs.uaeboard = changed_prefs.uaeboard = 2;
+ } else {
+ if (currprefs.uaeboard < 0) {
+ currprefs.uaeboard = changed_prefs.uaeboard = 0;
+ } else {
+ currprefs.uaeboard = changed_prefs.uaeboard = 1;
+ }
+ }
+ } else {
+ currprefs.uaeboard = changed_prefs.uaeboard = 0;
+ }
+ }
+#endif
uae_u32 dev_num = 0;
uae_u32 romtype = restore_u32();
if (romtype != 0xffffffff) {
struct card_data *ec = &cards_set[i];
cards[i] = ec;
struct romconfig *rc = ec->rc;
+ expamem_board_pointer = ec->base;
// Handle only IO boards, RAM boards are handled differently
+ ec->aci.doinit = false;
+ ec->aci.start = ec->base;
+ ec->aci.size = ec->size;
+ ec->aci.prefs = &currprefs;
+ ec->aci.ert = ec->ert;
+ ec->aci.rc = rc;
if (rc && ec->ert) {
- ec->aci.doinit = false;
- ec->aci.start = ec->base;
- ec->aci.size = ec->size;
- ec->aci.prefs = &currprefs;
_tcscpy(ec->aci.name, ec->ert->friendlyname);
if (ec->ert->init) {
if (ec->ert->init(&ec->aci)) {
{
_T("Piccolo SD64 Zorro III"), _T("Ingenieurbüro Helfrich"), _T("PiccoloSD64_Z3"),
BOARD_MANUFACTURER_PICCOLO, BOARD_MODEL_MEMORY_PICCOLO64, BOARD_MODEL_REGISTERS_PICCOLO64,
- 0x00000000, 0x00200000, 0x00400000, 0x04000000, CIRRUS_ID_CLGD5434, 3, 6, true
+ 0x00000000, 0x00200000, 0x00400000, 0x01000000, CIRRUS_ID_CLGD5434, 3, 6, true
},
{
_T("Spectrum 28/24 Zorro II"), _T("Great Valley Products"), _T("Spectrum28/24_Z2"),
// REG:00600000 IO:00200000 VRAM:01000000
_T("Picasso IV Zorro III"), _T("Village Tronic"), _T("PicassoIV_Z3"),
BOARD_MANUFACTURER_PICASSO, BOARD_MODEL_MEMORY_PICASSOIV, 0,
- 0x00000000, 0x00400000, 0x00400000, 0x04000000, CIRRUS_ID_CLGD5446, 3, 2, false,
+ 0x00000000, 0x00400000, 0x00400000, 0x02000000, CIRRUS_ID_CLGD5446, 3, 2, false,
ROMTYPE_PICASSOIV
},
{
if (savestate_state == STATE_RESTORE) {
if (bootrom_filepos) {
+ if (currprefs.uaeboard <= 0)
+ currprefs.uaeboard = 1;
protect_roms (false);
restore_ram (bootrom_filepos, rtarea_bank.baseaddr);
protect_roms (true);
size = sizeof (version) / sizeof (TCHAR);
if (regquerystr (NULL, _T("Version"), version, &size)) {
int ver = 0;
- if (checkversion (version, &ver))
- regsetstr (NULL, _T("Version"), VersionStr);
- // Reset GUI setting if pre-4.3.0
- if (ver > 0x030000 && ver < 0x040300) {
- regdelete(NULL, _T("GUISizeX"));
- regdelete(NULL, _T("GUISizeY"));
- regdelete(NULL, _T("GUISizeFWX"));
- regdelete(NULL, _T("GUISizeFWY"));
- regdelete(NULL, _T("GUISizeFSX"));
- regdelete(NULL, _T("GUISizeFSY"));
+ if (checkversion(version, &ver)) {
+ regsetstr(NULL, _T("Version"), VersionStr);
+ // Reset GUI setting if pre-4.3.0
+ if (ver > 0x030000 && ver < 0x040300) {
+ regdelete(NULL, _T("GUISizeX"));
+ regdelete(NULL, _T("GUISizeY"));
+ regdelete(NULL, _T("GUISizeFWX"));
+ regdelete(NULL, _T("GUISizeFWY"));
+ regdelete(NULL, _T("GUISizeFSX"));
+ regdelete(NULL, _T("GUISizeFSY"));
+ regdelete(NULL, _T("GUIFont"));
+ regdelete(NULL, _T("GUIListFont"));
+ }
}
} else {
regsetstr (NULL, _T("Version"), VersionStr);
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("5")
+#define WINUAEBETA _T("6")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2019, 11, 16)
+#define WINUAEDATE MAKEBD(2019, 12, 2)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
static void getstoredguisize(void)
{
if (full_property_sheet || isfullscreen () == 0) {
- regqueryint (NULL, _T("GUISizeX"), &gui_width);
- regqueryint (NULL, _T("GUISizeY"), &gui_height);
+ regqueryint(NULL, _T("GUISizeX"), &gui_width);
+ regqueryint(NULL, _T("GUISizeY"), &gui_height);
scaleresource_init(gui_fullscreen ? _T("GFS") : _T(""), gui_fullscreen);
} else if (isfullscreen () < 0) {
- regqueryint (NULL, _T("GUISizeFWX"), &gui_width);
- regqueryint (NULL, _T("GUISizeFWY"), &gui_height);
+ regqueryint(NULL, _T("GUISizeFWX"), &gui_width);
+ regqueryint(NULL, _T("GUISizeFWY"), &gui_height);
scaleresource_init(gui_fullscreen ? _T("FW_GFS") : _T("FW"), gui_fullscreen);
} else if (isfullscreen () > 0) {
- regqueryint (NULL, _T("GUISizeFSX"), &gui_width);
- regqueryint (NULL, _T("GUISizeFSY"), &gui_height);
+ regqueryint(NULL, _T("GUISizeFSX"), &gui_width);
+ regqueryint(NULL, _T("GUISizeFSY"), &gui_height);
scaleresource_init(gui_fullscreen ? _T("FS_GFS") : _T("FS"), gui_fullscreen);
}
}