home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / CROSSASM / 68ASMSIM.ZIP / simsrc / def.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-04-09  |  2.7 KB  |  131 lines

  1.  
  2. /***************************** 68000 SIMULATOR ****************************
  3.  
  4. File Name: DEF.H
  5. Version: 1.0
  6.  
  7. This file contains definitions used in the simulator source files.
  8.  
  9. ***************************************************************************/
  10.  
  11.  
  12. /* version numbers */
  13.  
  14. #define    MAJOR_VERSION    1
  15. #define    MINOR_VERSION    0
  16.  
  17.  
  18. /* status register bitmasks */
  19.  
  20. #define bit_1        0x0001
  21. #define bit_2        0x0002
  22. #define bit_3        0x0004
  23. #define bit_4        0x0008
  24. #define bit_5        0x0010
  25. #define bit_6        0x0020
  26. #define bit_7        0x0040
  27. #define bit_8        0x0080
  28. #define bit_9        0x0100
  29. #define bit_10        0x0200
  30. #define bit_11        0x0400
  31. #define bit_12        0x0800
  32.  
  33.  
  34. #define    cbit        0x0001
  35. #define    vbit        0x0002
  36. #define    zbit        0x0004
  37. #define    nbit        0x0008
  38. #define    xbit        0x0010
  39. #define    intmsk    0x0700         /* three bits */
  40. #define    sbit        0x2000
  41. #define    tbit        0x8000
  42.  
  43.  
  44. /* miscallaneous */
  45.  
  46. #define MEMSIZE 0x10000
  47. #define ADDRMASK 0xffff
  48.  
  49. #define    TRUE        -1
  50. #define    FALSE        0
  51. #define    BYTE        0xff              /* byte mask */
  52. #define    WORD        0xffff                /* word mask */
  53. #define    LONG        0xffffffff            /* long mask */
  54.  
  55. #define    D_REGS    8                  /* number of D registers */
  56. #define    A_REGS    9                  /* number of A registers */
  57.  
  58. #define DATA_ADDR             0x0ffd
  59. #define MEMORY_ADDR            0x0ffc
  60. #define CONTROL_ADDR            0x07e4
  61. #define ALTERABLE_ADDR        0x01ff
  62. #define ALL_ADDR                0x0fff
  63. #define DATA_ALT_ADDR        (DATA_ADDR & ALTERABLE_ADDR)
  64. #define MEM_ALT_ADDR            (MEMORY_ADDR & ALTERABLE_ADDR)
  65. #define CONT_ALT_ADDR        (CONTROL_ADDR & ALTERABLE_ADDR)
  66.  
  67.  
  68. /* these are the instruction return codes */
  69.  
  70. #define SUCCESS            0x0000
  71. #define BAD_INST            0x0001
  72. #define NO_PRIVILEGE        0x0002
  73. #define CHK_EXCEPTION    0x0003
  74. #define ILLEGAL_TRAP        0x0004
  75. #define STOP_TRAP            0x0005
  76. #define TRAPV_TRAP        0x0006
  77. #define TRAP_TRAP            0x0007
  78. #define DIV_BY_ZERO        0x0008
  79.  
  80. #define USER_BREAK        0x0009
  81. #define FAILURE            0x1111    /* general failure */
  82.  
  83.  
  84. /* these are the cases for condition code setting */
  85.  
  86. #define    N_A            0
  87. #define    GEN            1
  88. #define    ZER            2
  89. #define    UND            3
  90. #define    CASE_1        4
  91. #define    CASE_2        5
  92. #define    CASE_3        6
  93. #define    CASE_4        7
  94. #define    CASE_5        8
  95. #define    CASE_6        9
  96. #define    CASE_7        10
  97. #define    CASE_8        11
  98. #define    CASE_9        12
  99.  
  100.  
  101. /* these are used in run.c */
  102.  
  103. #define        MODE_MASK          0x0038
  104. #define        REG_MASK           0x0007
  105. #define        FIRST_FOUR         0xf000
  106.  
  107. #define        READ                0xffff
  108. #define        WRITE                0x0000
  109.  
  110.  
  111. /* conditions for BCC, DBCC, and SCC */
  112.  
  113. #define        T                0x00
  114. #define        F                0x01
  115. #define        HI                0x02
  116. #define        LS                0x03
  117. #define        CC                0x04
  118. #define        CS                0x05
  119. #define        NE                0x06
  120. #define        EQ                0x07
  121. #define        VC                0x08
  122. #define        VS                0x09
  123. #define        PL                0x0a
  124. #define        MI                0x0b
  125. #define        GE                0x0c
  126. #define        LT                0x0d
  127. #define        GT                0x0e
  128. #define        LE                0x0f
  129.  
  130.  
  131.