3 /* These define the size of main memory for the simulator.
5 Note the size of main memory for the H8/300H is only 256k. Keeping it
6 small makes the simulator run much faster and consume less memory.
8 The linker knows about the limited size of the simulator's main memory
9 on the H8/300H (via the h8300h.sc linker script). So if you change
10 H8300H_MSIZE, be sure to fix the linker script too.
12 Also note that there's a separate "eightbit" area aside from main
13 memory. For simplicity, the simulator assumes any data memory reference
14 outside of main memory refers to the eightbit area (in theory, this
15 can only happen when simulating H8/300H programs). We make no attempt
16 to catch overlapping addresses, wrapped addresses, etc etc. */
17 #define H8300_MSIZE (1 << 16)
20 Next 2 macros are ugly for any workstation, but while they're work.
21 Memory size MUST be configurable. */
22 #define H8300H_MSIZE (1 << 18)
23 #define H8300S_MSIZE (1 << 24)
27 /* Local register names */
30 R0
, R1
, R2
, R3
, R4
, R5
, R6
, R7
,
40 /* Structure used to describe addressing */
65 enum h8300_sim_state
{
66 SIM_STATE_RUNNING
, SIM_STATE_EXITED
, SIM_STATE_SIGNALLED
, SIM_STATE_STOPPED
69 /* For Command Line. */
70 char **ptr_command_line
; /* Pointer to Command Line Arguments. */
74 enum h8300_sim_state state
;
81 unsigned char *memory
;
82 unsigned char *eightbit
;
83 unsigned short *cache_idx
;