1 #ifndef EMUL_EMULREGS_H
    2 #define EMUL_EMULREGS_H
    3 
    4 #ifndef EMUL_EMULINTERFACE_H
    5 #include <emul/emulinterface.h>
    6 #endif
    7 
    8 #ifdef __VBCC__
    9 __regsused("r2") __varsused("") __varsmodified("") __alwaysreturn __nosidefx
   10   __reg("r2") struct EmulHandle *__getEmulHandle(void) = "";
   11 #define MyEmulHandle __getEmulHandle()
   12 
   13 #ifdef EMUL_QUICKMODE
   14 #error EMUL_QUICKMODE is not supported with VBCC!
   15 #endif
   16 #else   /* __VBCC__ */
   17 register struct EmulHandle *MyEmulHandle __asm("r2");
   18 #endif
   19 
   20 #ifdef EMUL_QUICKMODE
   21 register ULONG *REG_PC __asm("r13");
   22 register UWORD  REG_SR __asm("r14");
   23 register void (**OPCODETABLE)(void)     __asm("r15");
   24 
   25 register ULONG  REG_D0 __asm("r16");
   26 register ULONG  REG_D1 __asm("r17");
   27 register ULONG  REG_D2 __asm("r18");
   28 register ULONG  REG_D3 __asm("r19");
   29 register ULONG  REG_D4 __asm("r20");
   30 register ULONG  REG_D5 __asm("r21");
   31 register ULONG  REG_D6 __asm("r22");
   32 register ULONG  REG_D7 __asm("r23");
   33 register ULONG  REG_A0 __asm("r24");
   34 register ULONG  REG_A1 __asm("r25");
   35 register ULONG  REG_A2 __asm("r26");
   36 register ULONG  REG_A3 __asm("r27");
   37 register ULONG  REG_A4 __asm("r28");
   38 register ULONG  REG_A5 __asm("r29");
   39 register ULONG  REG_A6 __asm("r30");
   40 register ULONG  REG_A7 __asm("r31");
   41 #else
   42 
   43 #define REG_PC  (MyEmulHandle->PC)
   44 #define REG_SR  (MyEmulHandle->SR)
   45 
   46 #define REG_D0  (MyEmulHandle->Dn[0])
   47 #define REG_D1  (MyEmulHandle->Dn[1])
   48 #define REG_D2  (MyEmulHandle->Dn[2])
   49 #define REG_D3  (MyEmulHandle->Dn[3])
   50 #define REG_D4  (MyEmulHandle->Dn[4])
   51 #define REG_D5  (MyEmulHandle->Dn[5])
   52 #define REG_D6  (MyEmulHandle->Dn[6])
   53 #define REG_D7  (MyEmulHandle->Dn[7])
   54 #define REG_A0  (MyEmulHandle->An[0])
   55 #define REG_A1  (MyEmulHandle->An[1])
   56 #define REG_A2  (MyEmulHandle->An[2])
   57 #define REG_A3  (MyEmulHandle->An[3])
   58 #define REG_A4  (MyEmulHandle->An[4])
   59 #define REG_A5  (MyEmulHandle->An[5])
   60 #define REG_A6  (MyEmulHandle->An[6])
   61 #define REG_A7  (MyEmulHandle->An[7])
   62 
   63 #endif
   64 
   65 #endif