#ifndef INSTRUCTIONS_H #define INSTRUCTIONS_H #include "utils.h" class Machine; // forward declaration // Type 1 instruction handlers void fix_handler(Machine& m); void float_handler(Machine& m); void hio_handler(Machine& m); void norm_handler(Machine& m); void sio_handler(Machine& m); void tio_handler(Machine& m); void nop_handler(Machine& m); /* IDEJE ZA SIC_XE_XE :)*/ // void nop(Machine& m); // Type 2 instruction handlers void addr_handler(Machine& m, int r1, int r2); void clear_handler(Machine& m, int r, int unused); void compr_handler(Machine& m, int r1, int r2); void divr_handler(Machine& m, int r1, int r2); void mulr_handler(Machine& m, int r1, int r2); void rmo_handler(Machine& m, int r1, int r2); void shiftl_handler(Machine& m, int r1, int n); void shiftr_handler(Machine& m, int r1, int n); void subr_handler(Machine& m, int r1, int r2); void svc_handler(Machine& m, int n, int unused); void tixr_handler(Machine& m, int r1, int unused); // Type 3/4 instruction handlers void add_handler(Machine& m, int ea, AddressingMode mode); void addf_handler(Machine& m, int ea, AddressingMode mode); void and_handler(Machine& m, int ea, AddressingMode mode); void comp_handler(Machine& m, int ea, AddressingMode mode); void compf_handler(Machine& m, int ea, AddressingMode mode); void div_handler(Machine& m, int ea, AddressingMode mode); void divf_handler(Machine& m, int ea, AddressingMode mode); void j_handler(Machine& m, int ea, AddressingMode mode); void jeq_handler(Machine& m, int ea, AddressingMode mode); void jgt_handler(Machine& m, int ea, AddressingMode mode); void jlt_handler(Machine& m, int ea, AddressingMode mode); void jsub_handler(Machine& m, int ea, AddressingMode mode); void lda_handler(Machine& m, int ea, AddressingMode mode); void ldb_handler(Machine& m, int ea, AddressingMode mode); void ldch_handler(Machine& m, int ea, AddressingMode mode); void ldf_handler(Machine& m, int ea, AddressingMode mode); void ldl_handler(Machine& m, int ea, AddressingMode mode); void lds_handler(Machine& m, int ea, AddressingMode mode); void ldt_handler(Machine& m, int ea, AddressingMode mode); void ldx_handler(Machine& m, int ea, AddressingMode mode); void lps_handler(Machine& m, int ea, AddressingMode mode); void mul_handler(Machine& m, int ea, AddressingMode mode); void mulf_handler(Machine& m, int ea, AddressingMode mode); void or_handler(Machine& m, int ea, AddressingMode mode); void rd_handler(Machine& m, int ea, AddressingMode mode); void rsub_handler(Machine& m, int ea, AddressingMode mode); void ssk_handler(Machine& m, int ea, AddressingMode mode); void sta_handler(Machine& m, int ea, AddressingMode mode); void stb_handler(Machine& m, int ea, AddressingMode mode); void stch_handler(Machine& m, int ea, AddressingMode mode); void stf_handler(Machine& m, int ea, AddressingMode mode); void sti_handler(Machine& m, int ea, AddressingMode mode); void stl_handler(Machine& m, int ea, AddressingMode mode); void sts_handler(Machine& m, int ea, AddressingMode mode); void stsw_handler(Machine& m, int ea, AddressingMode mode); void stt_handler(Machine& m, int ea, AddressingMode mode); void stx_handler(Machine& m, int ea, AddressingMode mode); void sub_handler(Machine& m, int ea, AddressingMode mode); void subf_handler(Machine& m, int ea, AddressingMode mode); void td_handler(Machine& m, int ea, AddressingMode mode); void tix_handler(Machine& m, int ea, AddressingMode mode); void wd_handler(Machine& m, int ea, AddressingMode mode); // SIC/XE/XE Extended instruction handlers void xexe_handler(Machine& m); void halt_handler(Machine& m); void nop_handler(Machine& m); void vaddr_handler(Machine& m, int r1, int r2); void vsubr_handler(Machine& m, int r1, int r2); void vmulr_handler(Machine& m, int r1, int r2); void vdivr_handler(Machine& m, int r1, int r2); void vadd_handler(Machine& m, int ea, AddressingMode mode); void vsub_handler(Machine& m, int ea, AddressingMode mode); void vmul_handler(Machine& m, int ea, AddressingMode mode); void vdiv_handler(Machine& m, int ea, AddressingMode mode); void stva_handler(Machine& m, int ea, AddressingMode mode); void stvs_handler(Machine& m, int ea, AddressingMode mode); void stvt_handler(Machine& m, int ea, AddressingMode mode); void ldva_handler(Machine& m, int ea, AddressingMode mode); void ldvs_handler(Machine& m, int ea, AddressingMode mode); void ldvt_handler(Machine& m, int ea, AddressingMode mode); #endif // INSTRUCTIONS_H