X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fexec.h;h=2f4118f1efad1f39150d1ffc41df0a11aa824c3b;hp=83ce07f18e7c863867cf69724c939f9de9b28815;hb=93f3bbbc043d2883610bd979556e0bae42e5c8b2;hpb=de18494f8acd2f8ca87b86c54bfee1c2094c0d83 diff --git a/include/exec.h b/include/exec.h index 83ce07f..2f4118f 100644 --- a/include/exec.h +++ b/include/exec.h @@ -26,20 +26,220 @@ extern EXECMODE execmode; /** * 実行エラーをエラーリストに追加 */ -bool addcerrlist_exec(); +void addcerrlist_exec(); + +/** + * アセンブル結果読み込みエラーをエラーリストに追加 + */ +void addcerrlist_load(); /** * 指定されたファイルからアセンブル結果を読み込む */ -bool loadassemble(char *file); +bool loadassemble(const char *file); -/* COMET II仮想マシンのリセット */ +/** + * COMET II仮想マシンのリセット + */ void reset(); +/** + * NOP命令。語長1(OPのみ) + */ +void nop(); + +/** + * LD命令 - オペランドr,adr,x。語長2 + */ +void ld_r_adr_x(); + +/** + * LD命令 - オペランドr1,r2。語長1 + */ +void ld_r1_r2(); + +/** + * ST命令。語長2 + */ +void st(); + +/** + * LAD命令。語長2 + */ +void lad(); + +/** + * ADDA命令 - オペランドr,adr,x。語長2 + */ +void adda_r_adr_x(); + +/** + * ADDA命令 - オペランドr1,r2。語長1 + */ +void adda_r1_r2(); + +/** + * SUBA命令 - オペランドr,adr,x。語長2 + */ +void suba_r_adr_x(); + +/** + * SUBA命令 - オペランドr1,r2。語長1 + */ +void suba_r1_r2(); + +/** + * ADDL命令 - オペランドr,adr,x。語長2 + */ +void addl_r_adr_x(); + +/** + * ADDL命令 - オペランドr1,r2。語長1 + */ +void addl_r1_r2(); + +/** + * SUBL命令 - オペランドr,adr,x。語長2 + */ +void subl_r_adr_x(); + +/** + * SUBL命令 - オペランドr1,r2。語長1 + */ +void subl_r1_r2(); + +/** + * AND命令 - オペランドr,adr,x。語長2 + */ +void and_r_adr_x(); + +/** + * AND命令 - オペランドr1,r2。語長1 + */ +void and_r1_r2(); + +/** + * OR命令 - オペランドr,adr,x。語長2 + */ +void or_r_adr_x(); + +/** + * OR命令 - オペランドr1,r2。語長1 + */ +void or_r1_r2(); + +/** + * XOR命令 - オペランドr,adr,x。語長2 + */ +void xor_r_adr_x(); + +/** + * XOR命令 - オペランドr1,r2。語長1 + */ +void xor_r1_r2(); + +/** + * CPA命令 - オペランドr,adr,x。語長2 + */ +void cpa_r_adr_x(); + +/** + * CPA命令 - オペランドr1,r2。語長1 + */ +void cpa_r1_r2(); + +/** + * CPL命令 - オペランドr,adr,x。語長2 + */ +void cpl_r_adr_x(); + +/** + * CPL命令 - オペランドr1,r2。語長1 + */ +void cpl_r1_r2(); + +/** + * SLA命令 - オペランドr,adr,x。語長2 + * 算術演算なので、第15ビットは送り出されない + */ +void sla(); + +/** + * SRA命令 - オペランドr,adr,x。語長2 + * 算術演算なので、第15ビットは送り出されない + * 空いたビット位置には符号と同じものが入る + */ +void sra(); + +/** + * SLL命令 - オペランドr,adr,x。語長2 + */ +void sll(); + +/** + * SRL命令 - オペランドr,adr,x。語長2 + */ +void srl(); + +/** + * JPL命令。語長2 + */ +void jpl(); + +/** + * JMI命令。語長2 + */ +void jmi(); + +/** + * JNZ命令。語長2 + */ +void jnz(); + +/** + * JZE命令。語長2 + */ +void jze(); + +/** + * JOV命令。語長2 + */ +void jov(); + +/** + * JUMP命令。語長2 + */ +void jump(); + +/** + * PUSH命令。語長2 + */ +void push(); + +/** + * POP命令。語長1 + */ +void pop(); + +/** + * CALL命令。語長2 + */ +void call(); + +/** + * RET命令。語長1(OPのみ) + */ +void ret(); + +/** + * SVC命令。語長2 + */ +void svc(); + /** * COMET II仮想マシンの実行 */ -bool exec(); +void exec(); /** * COMET IIのメモリを表示