root/include/exec.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef YACASL2_EXEC_H_INCLUDED
   2 #define YACASL2_EXEC_H_INCLUDED
   3 
   4 #include <stdbool.h>
   5 #include <stdio.h>
   6 #include <assert.h>
   7 #include <time.h>
   8 #include "struct.h"
   9 #include "word.h"
  10 #include "cmem.h"
  11 #include "cerr.h"
  12 #include "monitor.h"
  13 #include "disassemble.h"
  14 
  15 enum {
  16     INSIZE = 256    /**<IN命令の、入力領域 */
  17 };
  18 
  19 /**
  20  * @brief 実行エラーをエラーリストに追加する
  21  */
  22 void addcerrlist_exec();
  23 
  24 /**
  25  * @class Exec
  26  * @brief execから関数ポインタで呼び出される関数
  27  * @relatesalso exec
  28  **/
  29 
  30 /**
  31  * @brief COMET II仮想マシンを実行する
  32  *
  33  * @relatesalso Exec
  34  *
  35  * @return なし
  36  */
  37 void exec();
  38 
  39 /**
  40  * @brief NOP命令。語長1(OPのみ)
  41  * @relatesalso Exec
  42  *
  43  * @return なし
  44  */
  45 void nop();
  46 
  47 /**
  48  * @brief LD命令 - オペランドr,adr,x。語長2
  49  * @relatesalso Exec
  50  *
  51  * @return なし
  52  */
  53 void ld_r_adr_x();
  54 
  55 /**
  56  * @brief LD命令 - オペランドr1,r2。語長1
  57  * @relatesalso Exec
  58  *
  59  * @return なし
  60  */
  61 void ld_r1_r2();
  62 
  63 /**
  64  * @brief ST命令。語長2
  65  * @relatesalso Exec
  66  *
  67  * @return なし
  68  */
  69 void st();
  70 
  71 /**
  72  * @brief LAD命令。語長2
  73  * @relatesalso Exec
  74  *
  75  * @return なし
  76  */
  77 void lad();
  78 
  79 /**
  80  * @brief ADDA命令 - オペランドr,adr,x。語長2
  81  * @relatesalso Exec
  82  *
  83  * @return なし
  84  */
  85 void adda_r_adr_x();
  86 
  87 /**
  88  * @brief ADDA命令 - オペランドr1,r2。語長1
  89  * @relatesalso Exec
  90  *
  91  * @return なし
  92  */
  93 void adda_r1_r2();
  94 
  95 /**
  96  * @brief SUBA命令 - オペランドr,adr,x。語長2
  97  * @relatesalso Exec
  98  *
  99  * @return なし
 100  */
 101 void suba_r_adr_x();
 102 
 103 /**
 104  * @brief SUBA命令 - オペランドr1,r2。語長1
 105  * @relatesalso Exec
 106  *
 107  * @return なし
 108  */
 109 void suba_r1_r2();
 110 
 111 /**
 112  * @brief ADDL命令 - オペランドr,adr,x。語長2
 113  * @relatesalso Exec
 114  *
 115  * @return なし
 116  */
 117 void addl_r_adr_x();
 118 
 119 /**
 120  * @brief ADDL命令 - オペランドr1,r2。語長1
 121  * @relatesalso Exec
 122  *
 123  * @return なし
 124  */
 125 void addl_r1_r2();
 126 
 127 /**
 128  * @brief SUBL命令 - オペランドr,adr,x。語長2
 129  * @relatesalso Exec
 130  *
 131  * @return なし
 132  */
 133 void subl_r_adr_x();
 134 
 135 /**
 136  * @brief SUBL命令 - オペランドr1,r2。語長1
 137  * @relatesalso Exec
 138  *
 139  * @return なし
 140  */
 141 void subl_r1_r2();
 142 
 143 /**
 144  * @brief AND命令 - オペランドr,adr,x。語長2
 145  * @relatesalso Exec
 146  *
 147  * @return なし
 148  */
 149 void and_r_adr_x();
 150 
 151 /**
 152  * @brief AND命令 - オペランドr1,r2。語長1
 153  * @relatesalso Exec
 154  *
 155  * @return なし
 156  */
 157 void and_r1_r2();
 158 
 159 /**
 160  * @brief OR命令 - オペランドr,adr,x。語長2
 161  * @relatesalso Exec
 162  *
 163  * @return なし
 164  */
 165 void or_r_adr_x();
 166 
 167 /**
 168  * @brief OR命令 - オペランドr1,r2。語長1
 169  * @relatesalso Exec
 170  *
 171  * @return なし
 172  */
 173 void or_r1_r2();
 174 
 175 /**
 176  * @brief XOR命令 - オペランドr,adr,x。語長2
 177  * @relatesalso Exec
 178  *
 179  * @return なし
 180  */
 181 void xor_r_adr_x();
 182 
 183 /**
 184  * @brief XOR命令 - オペランドr1,r2。語長1
 185  * @relatesalso Exec
 186  *
 187  * @return なし
 188  */
 189 void xor_r1_r2();
 190 
 191 /**
 192  * @brief CPA命令 - オペランドr,adr,x。語長2
 193  * @relatesalso Exec
 194  *
 195  * @return なし
 196  */
 197 void cpa_r_adr_x();
 198 
 199 /**
 200  * @brief CPA命令 - オペランドr1,r2。語長1
 201  * @relatesalso Exec
 202  *
 203  * @return なし
 204  */
 205 void cpa_r1_r2();
 206 
 207 /**
 208  * @brief CPL命令 - オペランドr,adr,x。語長2
 209  * @relatesalso Exec
 210  *
 211  * @return なし
 212  */
 213 void cpl_r_adr_x();
 214 
 215 /**
 216  * @brief CPL命令 - オペランドr1,r2。語長1
 217  * @relatesalso Exec
 218  *
 219  * @return なし
 220  */
 221 void cpl_r1_r2();
 222 
 223 /**
 224  * @brief SLA命令 - オペランドr,adr,x。語長2
 225  *
 226  * 算術演算なので、第15ビットは送り出されない
 227  * @relatesalso Exec
 228  *
 229  * @return なし
 230  */
 231 void sla();
 232 
 233 /**
 234  * @brief SRA命令 - オペランドr,adr,x。語長2
 235  *
 236  * 算術演算なので、第15ビットは送り出されない
 237  * 空いたビット位置には符号と同じものが入る
 238  * @relatesalso Exec
 239  *
 240  * @return なし
 241  */
 242 void sra();
 243 
 244 /**
 245  * @brief SLL命令 - オペランドr,adr,x。語長2
 246  * @relatesalso Exec
 247  *
 248  * @return なし
 249  */
 250 void sll();
 251 
 252 /**
 253  * @brief SRL命令 - オペランドr,adr,x。語長2
 254  * @relatesalso Exec
 255  *
 256  * @return なし
 257  */
 258 void srl();
 259 
 260 /**
 261  * @brief JPL命令。語長2
 262  * @relatesalso Exec
 263  *
 264  * @return なし
 265  */
 266 void jpl();
 267 
 268 /**
 269  * @brief JMI命令。語長2
 270  * @relatesalso Exec
 271  *
 272  * @return なし
 273  */
 274 void jmi();
 275 
 276 /**
 277  * @brief JNZ命令。語長2
 278  * @relatesalso Exec
 279  *
 280  * @return なし
 281  */
 282 void jnz();
 283 
 284 /**
 285  * @brief JZE命令。語長2
 286  * @relatesalso Exec
 287  *
 288  * @return なし
 289  */
 290 void jze();
 291 
 292 /**
 293  * @brief JOV命令。語長2
 294  * @relatesalso Exec
 295  *
 296  * @return なし
 297  */
 298 void jov();
 299 
 300 /**
 301  * @brief JUMP命令。語長2
 302  * @relatesalso Exec
 303  *
 304  * @return なし
 305  */
 306 void jump();
 307 
 308 /**
 309  * @brief PUSH命令。語長2
 310  * @relatesalso Exec
 311  *
 312  * @return なし
 313  */
 314 void push();
 315 
 316 /**
 317  * @brief POP命令。語長1
 318  * @relatesalso Exec
 319  *
 320  * @return なし
 321  */
 322 void pop();
 323 
 324 /**
 325  * @brief CALL命令。語長2
 326  * @relatesalso Exec
 327  *
 328  * @return なし
 329  */
 330 void call();
 331 
 332 /**
 333  * @brief RET命令。語長1(OPのみ)
 334  * @relatesalso Exec
 335  *
 336  * @return なし
 337  */
 338 void ret();
 339 
 340 /**
 341  * @brief SVC命令。語長2
 342  * @relatesalso Exec
 343  *
 344  * @return なし
 345  */
 346 void svc();
 347 
 348 /**
 349  * @brief COMET IIのメモリを表示する
 350  *
 351  * @return なし
 352  *
 353  * @param start 表示の開始アドレス
 354  * @param end 表示の終了アドレス
 355  */
 356 void dumpmemory(WORD start, WORD end);
 357 
 358 /**
 359  * @brief COMET IIのレジスタを表示する
 360  *
 361  * @return なし
 362  */
 363 void dspregister();
 364 
 365 #endif

/* [<][>][^][v][top][bottom][index][help] */