#include "interrupts.h"
#include <setjmp.h>
+/* Specifies the level of mapping for the IO, EEprom, nvram and external
+ RAM. IO registers are mapped over everything and the external RAM
+ is last (ie, it can be hidden by everything above it in the list). */
+enum m68hc11_map_level
+{
+ M6811_IO_LEVEL,
+ M6811_EEPROM_LEVEL,
+ M6811_NVRAM_LEVEL,
+ M6811_RAM_LEVEL
+};
+
+
#define X_REGNUM 0
#define D_REGNUM 1
#define Y_REGNUM 2
#define B_REGNUM 6
#define PSW_REGNUM 7
#define Z_REGNUM 8
-#define FP_REGNUM 9
-#define TMP_REGNUM 10
-#define ZS_REGNUM 11
-#define XY_REGNUM 12
-#define ZD1_REGNUM 13
-#define ZD32_REGNUM (ZD1_REGNUM+31)
-
-#define FIRST_SOFT_REGNUM (Z_REGNUM)
-#define MAX_SOFT_REG (ZD32_REGNUM - Z_REGNUM + 1)
typedef struct m6811_regs {
unsigned short d;
int cpu_elf_start;
uint16 cpu_insn_pc;
- unsigned short cpu_nb_pseudo_regs;
- uint16 cpu_page0_reg[MAX_SOFT_REG];
/* CPU frequency. This is the quartz frequency. It is divided by 4 to
get the cycle time. This is used for the timer rate and for the baud
extern void sim_set_profile_size (int n);
extern void sim_board_reset (SIM_DESC sd);
+extern const char *cycle_to_string (sim_cpu *cpu, signed64 t);
+
#endif