void rtarea_reset(void)
{
- memset(rtarea_bank.baseaddr + RTAREA_TRAP_DATA, 0, RTAREA_TRAP_DATA_SLOT_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM));
- memset(rtarea_bank.baseaddr + RTAREA_TRAP_STATUS, 0, RTAREA_TRAP_STATUS_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM));
+ uae_u8 *p = rtarea_bank.baseaddr;
+ if (p) {
+ memset(p + RTAREA_TRAP_DATA, 0, RTAREA_TRAP_DATA_SLOT_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM));
+ memset(p + RTAREA_TRAP_STATUS, 0, RTAREA_TRAP_STATUS_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM));
+ memset(p + RTAREA_HEARTBEAT, 0, 0x10000 - RTAREA_HEARTBEAT);
+ memset(p + RTAREA_VARIABLES, 0, RTAREA_VARIABLES_SIZE);
+ }
trap_reset();
}
#define RTAREA_TRAP_STATUS_SIZE 8
#define RTAREA_TRAP_STATUS_SECOND 4
+#define RTAREA_VARIABLES 0x3F00
+#define RTAREA_VARIABLES_SIZE 0x100
#define RTAREA_SYSBASE 0x3FFC
#define RTAREA_GFXBASE 0x3FF8
#define RTAREA_INTBASE 0x3FF4