* as/hc08/clean.mk,
[fw/sdcc] / sim / ucsim / xa.src / regsxa.h
index 215315985c0b5196d32a67031fd30893a2096d20..363d16db63fb50912c70d7bacac9c342af4e51d2 100644 (file)
@@ -28,8 +28,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA. */
 /*@1@*/
 
-#define REGS_OFFSET 0
-//#define REGS_OFFSET 0x400
+#define REGS_OFFSET 0x800
 
 #ifndef REGSAVR_HEADER
 #define REGSAVR_HEADER
@@ -55,14 +54,23 @@ struct t_regs
 #define get_byte_direct(addr) sfr->get((t_addr) (addr))
 #define get_word_direct(addr) (sfr->get((t_addr) (addr)) | (sfr->get((t_addr) (addr+1)) << 8) )
 
-/* store to ram */
-#define store2(addr, val) { ram->set((t_addr) (addr), (val) & 0xff); \
+/* store to idata(onchip) ram */
+#define set_idata2(addr, val) { iram->set((t_addr) (addr), (val) & 0xff); \
+                            iram->set((t_addr) (addr+1), ((val) >> 8) & 0xff); }
+#define set_idata1(addr, val) iram->set((t_addr) (addr), (val) )
+
+/* get from idata(onchip) ram */
+#define get_idata1(addr) iram->get((t_addr) (addr))
+#define get_idata2(addr) (iram->get((t_addr) (addr)) | (iram->get((t_addr) (addr+1)) << 8) )
+
+/* store to xdata(external) ram */
+#define set_xdata2(addr, val) { ram->set((t_addr) (addr), (val) & 0xff); \
                             ram->set((t_addr) (addr+1), ((val) >> 8) & 0xff); }
-#define store1(addr, val) ram->set((t_addr) (addr), val)
+#define set_xdata1(addr, val) ram->set((t_addr) (addr), val)
 
-/* get from ram */
-#define get1(addr) ram->get((t_addr) (addr))
-#define get2(addr) (ram->get((t_addr) (addr)) | (ram->get((t_addr) (addr+1)) << 8) )
+/* get from xdata(external) ram */
+#define get_xdata1(addr) ram->get((t_addr) (addr))
+#define get_xdata2(addr) (ram->get((t_addr) (addr)) | (ram->get((t_addr) (addr+1)) << 8) )
 
 /* get from code */
 #define getcode1(addr) rom->get((t_addr) (addr))
@@ -73,11 +81,11 @@ struct t_regs
 #define fetch1() fetch()
 
 /* get a 1 or 2 byte register */
-#define reg2(_index) get_reg(1, (_index<<1)) /* function in inst.cc */
-#define reg1(_index) (unsigned char)get_reg(0, (_index))
+#define reg2(_index) get_reg(1, REGS_OFFSET + (_index<<1)) /* function in inst.cc */
+#define reg1(_index) (unsigned char)get_reg(0, REGS_OFFSET + (_index))
 
 #define set_reg1(_index, _value) { \
-  set_byte_direct((REGS_OFFSET+(_index<<1)), _value); \
+  set_byte_direct((REGS_OFFSET+(_index)), _value); \
 }
 
 #define set_reg2(_index, _value) { \