a56.key 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. .code #include "a56.h"
  2. .code #include "gram.h"
  3. X: {return XMEM;}
  4. Y: {return YMEM;}
  5. L: {return LMEM;}
  6. P: {return PMEM;}
  7. A10 {return A10;}
  8. A {return AAAA;}
  9. B10 {return B10;}
  10. B {return BBBB;}
  11. AB {return AABB;}
  12. BA {return BBAA;}
  13. X {return XXXX;}
  14. Y {return YYYY;}
  15. SR {return SR;}
  16. MR {return MR;}
  17. CCR {return CCR;}
  18. OMR {return OMR;}
  19. SP {return SP;}
  20. SSH {return SSH;}
  21. SSL {return SSL;}
  22. LA {return LA;}
  23. LC {return LC;}
  24. A0 {yylval.ival = 0; return AREG;}
  25. A1 {yylval.ival = 1; return AREG;}
  26. A2 {yylval.ival = 2; return AREG;}
  27. B0 {yylval.ival = 0; return BREG;}
  28. B1 {yylval.ival = 1; return BREG;}
  29. B2 {yylval.ival = 2; return BREG;}
  30. M0 {yylval.ival = 0; return MREG;}
  31. M1 {yylval.ival = 1; return MREG;}
  32. M2 {yylval.ival = 2; return MREG;}
  33. M3 {yylval.ival = 3; return MREG;}
  34. M4 {yylval.ival = 4; return MREG;}
  35. M5 {yylval.ival = 5; return MREG;}
  36. M6 {yylval.ival = 6; return MREG;}
  37. M7 {yylval.ival = 7; return MREG;}
  38. N0 {yylval.ival = 0; return NREG;}
  39. N1 {yylval.ival = 1; return NREG;}
  40. N2 {yylval.ival = 2; return NREG;}
  41. N3 {yylval.ival = 3; return NREG;}
  42. N4 {yylval.ival = 4; return NREG;}
  43. N5 {yylval.ival = 5; return NREG;}
  44. N6 {yylval.ival = 6; return NREG;}
  45. N7 {yylval.ival = 7; return NREG;}
  46. R0 {yylval.ival = 0; return RREG;}
  47. R1 {yylval.ival = 1; return RREG;}
  48. R2 {yylval.ival = 2; return RREG;}
  49. R3 {yylval.ival = 3; return RREG;}
  50. R4 {yylval.ival = 4; return RREG;}
  51. R5 {yylval.ival = 5; return RREG;}
  52. R6 {yylval.ival = 6; return RREG;}
  53. R7 {yylval.ival = 7; return RREG;}
  54. X0 {yylval.ival = 0; return XREG;}
  55. X1 {yylval.ival = 1; return XREG;}
  56. Y0 {yylval.ival = 0; return YREG;}
  57. Y1 {yylval.ival = 1; return YREG;}
  58. ABS {return OP_ABS;}
  59. ADC {return OP_ADC;}
  60. ADD {return OP_ADD;}
  61. ADDL {return OP_ADDL;}
  62. ADDR {return OP_ADDR;}
  63. ASL {return OP_ASL;}
  64. ASR {return OP_ASR;}
  65. CLR {return OP_CLR;}
  66. CMP {return OP_CMP;}
  67. CMPM {return OP_CMPM;}
  68. DIV {return OP_DIV;}
  69. MAC {return OP_MAC;}
  70. MACR {return OP_MACR;}
  71. MPY {return OP_MPY;}
  72. MPYR {return OP_MPYR;}
  73. NEG {return OP_NEG;}
  74. NORM {return OP_NORM;}
  75. RND {return OP_RND;}
  76. SBC {return OP_SBC;}
  77. SUB {return OP_SUB;}
  78. SUBL {return OP_SUBL;}
  79. SUBR {return OP_SUBR;}
  80. TCC {yylval.cond = 0x0; return OP_TCC;}
  81. THS {yylval.cond = 0x0; return OP_TCC;}
  82. TGE {yylval.cond = 0x1; return OP_TCC;}
  83. TNE {yylval.cond = 0x2; return OP_TCC;}
  84. TPL {yylval.cond = 0x3; return OP_TCC;}
  85. TNN {yylval.cond = 0x4; return OP_TCC;}
  86. TEC {yylval.cond = 0x5; return OP_TCC;}
  87. TLC {yylval.cond = 0x6; return OP_TCC;}
  88. TGT {yylval.cond = 0x7; return OP_TCC;}
  89. TCS {yylval.cond = 0x8; return OP_TCC;}
  90. TLO {yylval.cond = 0x8; return OP_TCC;}
  91. TLT {yylval.cond = 0x9; return OP_TCC;}
  92. TEQ {yylval.cond = 0xA; return OP_TCC;}
  93. TMI {yylval.cond = 0xB; return OP_TCC;}
  94. TNR {yylval.cond = 0xC; return OP_TCC;}
  95. TES {yylval.cond = 0xD; return OP_TCC;}
  96. TLS {yylval.cond = 0xE; return OP_TCC;}
  97. TLE {yylval.cond = 0xF; return OP_TCC;}
  98. TFR {return OP_TFR;}
  99. TST {return OP_TST;}
  100. AND {return OP_AND;}
  101. ANDI {return OP_ANDI;}
  102. EOR {return OP_EOR;}
  103. LSL {return OP_LSL;}
  104. LSR {return OP_LSR;}
  105. NOT {return OP_NOT;}
  106. OR {return OP_OR;}
  107. ORI {return OP_ORI;}
  108. ROL {return OP_ROL;}
  109. ROR {return OP_ROR;}
  110. BCLR {return OP_BCLR;}
  111. BSET {return OP_BSET;}
  112. BCHG {return OP_BCHG;}
  113. BTST {return OP_BTST;}
  114. DO {return OP_DO;}
  115. ENDDO {return OP_ENDDO;}
  116. LUA {return OP_LUA;}
  117. MOVE {return OP_MOVE;}
  118. MOVEC {return OP_MOVEC;}
  119. MOVEM {return OP_MOVEM;}
  120. MOVEP {return OP_MOVEP;}
  121. INCLUDE {return OP_INCLUDE;}
  122. ILLEGAL {return OP_ILLEGAL;}
  123. JCC {yylval.cond = 0x0; return OP_JCC;}
  124. JHS {yylval.cond = 0x0; return OP_JCC;}
  125. JGE {yylval.cond = 0x1; return OP_JCC;}
  126. JNE {yylval.cond = 0x2; return OP_JCC;}
  127. JPL {yylval.cond = 0x3; return OP_JCC;}
  128. JNN {yylval.cond = 0x4; return OP_JCC;}
  129. JEC {yylval.cond = 0x5; return OP_JCC;}
  130. JLC {yylval.cond = 0x6; return OP_JCC;}
  131. JGT {yylval.cond = 0x7; return OP_JCC;}
  132. JCS {yylval.cond = 0x8; return OP_JCC;}
  133. JLO {yylval.cond = 0x8; return OP_JCC;}
  134. JLT {yylval.cond = 0x9; return OP_JCC;}
  135. JEQ {yylval.cond = 0xA; return OP_JCC;}
  136. JMI {yylval.cond = 0xB; return OP_JCC;}
  137. JNR {yylval.cond = 0xC; return OP_JCC;}
  138. JES {yylval.cond = 0xD; return OP_JCC;}
  139. JLS {yylval.cond = 0xE; return OP_JCC;}
  140. JLE {yylval.cond = 0xF; return OP_JCC;}
  141. JMP {return OP_JMP;}
  142. JCLR {return OP_JCLR;}
  143. JSET {return OP_JSET;}
  144. JSCC {yylval.cond = 0x0; return OP_JSCC;}
  145. JSHS {yylval.cond = 0x0; return OP_JSCC;}
  146. JSGE {yylval.cond = 0x1; return OP_JSCC;}
  147. JSNE {yylval.cond = 0x2; return OP_JSCC;}
  148. JSPL {yylval.cond = 0x3; return OP_JSCC;}
  149. JSNN {yylval.cond = 0x4; return OP_JSCC;}
  150. JSEC {yylval.cond = 0x5; return OP_JSCC;}
  151. JSLC {yylval.cond = 0x6; return OP_JSCC;}
  152. JSGT {yylval.cond = 0x7; return OP_JSCC;}
  153. JSCS {yylval.cond = 0x8; return OP_JSCC;}
  154. JSLO {yylval.cond = 0x8; return OP_JSCC;}
  155. JSLT {yylval.cond = 0x9; return OP_JSCC;}
  156. JSEQ {yylval.cond = 0xA; return OP_JSCC;}
  157. JSMI {yylval.cond = 0xB; return OP_JSCC;}
  158. JSNR {yylval.cond = 0xC; return OP_JSCC;}
  159. JSES {yylval.cond = 0xD; return OP_JSCC;}
  160. JSLS {yylval.cond = 0xE; return OP_JSCC;}
  161. JSLE {yylval.cond = 0xF; return OP_JSCC;}
  162. JSR {return OP_JSR;}
  163. JSCLR {return OP_JSCLR;}
  164. JSSET {return OP_JSSET;}
  165. NOP {return OP_NOP;}
  166. REP {return OP_REP;}
  167. RESET {return OP_RESET;}
  168. RTI {return OP_RTI;}
  169. RTS {return OP_RTS;}
  170. STOP {return OP_STOP;}
  171. SWI {return OP_SWI;}
  172. WAIT {return OP_WAIT;}
  173. EQU {return OP_EQU;}
  174. ORG {return OP_ORG;}
  175. DC {return OP_DC;}
  176. DS {return OP_DS;}
  177. DSM {return OP_DSM;}
  178. INT {return OP_INT;}
  179. END {return OP_END;}
  180. PAGE {return OP_PAGE;}
  181. PSECT {return OP_PSECT;}
  182. ALIGN {return OP_ALIGN;}
  183. PI {return OP_PI;}
  184. SIN {return OP_SIN;}
  185. COS {return OP_COS;}
  186. TAN {return OP_TAN;}
  187. ATAN {return OP_ATAN;}
  188. ASIN {return OP_ASIN;}
  189. ACOS {return OP_ACOS;}
  190. EXP {return OP_EXP;}
  191. LN {return OP_LN;}
  192. LOG {return OP_LOG;}
  193. POW {return OP_POW;}