/****************************************************************************
*			  real mode i286 emulator v1.4 by Fabrice Frances				*
*				(initial work based on David Hedley's pcemu)                *
****************************************************************************/

/* file will be included in all cpu variants*/
/* put non i86 instructions in own files (i286, i386, nec)*/
/* function renaming will be added when neccessary*/
/* timing value should move to separate array*/

static void PREFIX86(_add_br8)(void);
static void PREFIX86(_add_wr16)(void);
static void PREFIX86(_add_r8b)(void);
static void PREFIX86(_add_r16w)(void);
static void PREFIX86(_add_ald8)(void);
static void PREFIX86(_add_axd16)(void);
static void PREFIX86(_push_es)(void);
static void PREFIX86(_pop_es)(void);
static void PREFIX86(_or_br8)(void);
static void PREFIX86(_or_r8b)(void);
static void PREFIX86(_or_wr16)(void);
static void PREFIX86(_or_r16w)(void);
static void PREFIX86(_or_ald8)(void);
static void PREFIX86(_or_axd16)(void);
static void PREFIX86(_push_cs)(void);
static void PREFIX86(_adc_br8)(void);
static void PREFIX86(_adc_wr16)(void);
static void PREFIX86(_adc_r8b)(void);
static void PREFIX86(_adc_r16w)(void);
static void PREFIX86(_adc_ald8)(void);
static void PREFIX86(_adc_axd16)(void);
static void PREFIX86(_push_ss)(void);
static void PREFIX86(_pop_ss)(void);
static void PREFIX86(_sbb_br8)(void);
static void PREFIX86(_sbb_wr16)(void);
static void PREFIX86(_sbb_r8b)(void);
static void PREFIX86(_sbb_r16w)(void);
static void PREFIX86(_sbb_ald8)(void);
static void PREFIX86(_sbb_axd16)(void);
static void PREFIX86(_push_ds)(void);
static void PREFIX86(_pop_ds)(void);
static void PREFIX86(_and_br8)(void);
static void PREFIX86(_and_r8b)(void);
static void PREFIX86(_and_wr16)(void);
static void PREFIX86(_and_r16w)(void);
static void PREFIX86(_and_ald8)(void);
static void PREFIX86(_and_axd16)(void);
static void PREFIX86(_es)(void);
static void PREFIX86(_daa)(void);
static void PREFIX86(_sub_br8)(void);
static void PREFIX86(_sub_wr16)(void);
static void PREFIX86(_sub_r8b)(void);
static void PREFIX86(_sub_r16w)(void);
static void PREFIX86(_sub_ald8)(void);
static void PREFIX86(_sub_axd16)(void);
static void PREFIX86(_cs)(void);
static void PREFIX86(_das)(void);
static void PREFIX86(_xor_br8)(void);
static void PREFIX86(_xor_r8b)(void);
static void PREFIX86(_xor_wr16)(void);
static void PREFIX86(_xor_r16w)(void);
static void PREFIX86(_xor_ald8)(void);
static void PREFIX86(_xor_axd16)(void);
static void PREFIX86(_ss)(void);
static void PREFIX86(_aaa)(void);
static void PREFIX86(_cmp_br8)(void);
static void PREFIX86(_cmp_wr16)(void);
static void PREFIX86(_cmp_r8b)(void);
static void PREFIX86(_cmp_r16w)(void);
static void PREFIX86(_cmp_ald8)(void);
static void PREFIX86(_cmp_axd16)(void);
static void PREFIX86(_ds)(void);
static void PREFIX86(_aas)(void);
static void PREFIX86(_inc_ax)(void);
static void PREFIX86(_inc_cx)(void);
static void PREFIX86(_inc_dx)(void);
static void PREFIX86(_inc_bx)(void);
static void PREFIX86(_inc_sp)(void);
static void PREFIX86(_inc_bp)(void);
static void PREFIX86(_inc_si)(void);
static void PREFIX86(_inc_di)(void);
static void PREFIX86(_dec_ax)(void);
static void PREFIX86(_dec_cx)(void);
static void PREFIX86(_dec_dx)(void);
static void PREFIX86(_dec_bx)(void);
static void PREFIX86(_dec_sp)(void);
static void PREFIX86(_dec_bp)(void);
static void PREFIX86(_dec_si)(void);
static void PREFIX86(_dec_di)(void);
static void PREFIX86(_push_ax)(void);
static void PREFIX86(_push_cx)(void);
static void PREFIX86(_push_dx)(void);
static void PREFIX86(_push_bx)(void);
static void PREFIX86(_push_sp)(void);
static void PREFIX86(_push_bp)(void);
static void PREFIX86(_push_si)(void);
static void PREFIX86(_push_di)(void);
static void PREFIX86(_pop_ax)(void);
static void PREFIX86(_pop_cx)(void);
static void PREFIX86(_pop_dx)(void);
static void PREFIX86(_pop_bx)(void);
static void PREFIX86(_pop_sp)(void);
static void PREFIX86(_pop_bp)(void);
static void PREFIX86(_pop_si)(void);
static void PREFIX86(_pop_di)(void);
static void PREFIX86(_jo)(void);
static void PREFIX86(_jno)(void);
static void PREFIX86(_jb)(void);
static void PREFIX86(_jnb)(void);
static void PREFIX86(_jz)(void);
static void PREFIX86(_jnz)(void);
static void PREFIX86(_jbe)(void);
static void PREFIX86(_jnbe)(void);
static void PREFIX86(_js)(void);
static void PREFIX86(_jns)(void);
static void PREFIX86(_jp)(void);
static void PREFIX86(_jnp)(void);
static void PREFIX86(_jl)(void);
static void PREFIX86(_jnl)(void);
static void PREFIX86(_jle)(void);
static void PREFIX86(_jnle)(void);
static void PREFIX86(_80pre)(void);
static void PREFIX86(_82pre)(void);
static void PREFIX86(_81pre)(void);
static void PREFIX86(_83pre)(void);
static void PREFIX86(_test_br8)(void);
static void PREFIX86(_test_wr16)(void);
static void PREFIX86(_xchg_br8)(void);
static void PREFIX86(_xchg_wr16)(void);
static void PREFIX86(_mov_br8)(void);
static void PREFIX86(_mov_r8b)(void);
static void PREFIX86(_mov_wr16)(void);
static void PREFIX86(_mov_r16w)(void);
static void PREFIX86(_mov_wsreg)(void);
static void PREFIX86(_lea)(void);
static void PREFIX86(_mov_sregw)(void);
static void PREFIX86(_invalid)(void);
static void PREFIX86(_popw)(void);
static void PREFIX86(_nop)(void);
static void PREFIX86(_xchg_axcx)(void);
static void PREFIX86(_xchg_axdx)(void);
static void PREFIX86(_xchg_axbx)(void);
static void PREFIX86(_xchg_axsp)(void);
static void PREFIX86(_xchg_axbp)(void);
static void PREFIX86(_xchg_axsi)(void);
static void PREFIX86(_xchg_axdi)(void);
static void PREFIX86(_cbw)(void);
static void PREFIX86(_cwd)(void);
static void PREFIX86(_call_far)(void);
static void PREFIX86(_pushf)(void);
static void PREFIX86(_popf)(void);
static void PREFIX86(_sahf)(void);
static void PREFIX86(_lahf)(void);
static void PREFIX86(_mov_aldisp)(void);
static void PREFIX86(_mov_axdisp)(void);
static void PREFIX86(_mov_dispal)(void);
static void PREFIX86(_mov_dispax)(void);
static void PREFIX86(_movsb)(void);
static void PREFIX86(_movsw)(void);
static void PREFIX86(_cmpsb)(void);
static void PREFIX86(_cmpsw)(void);
static void PREFIX86(_test_ald8)(void);
static void PREFIX86(_test_axd16)(void);
static void PREFIX86(_stosb)(void);
static void PREFIX86(_stosw)(void);
static void PREFIX86(_lodsb)(void);
static void PREFIX86(_lodsw)(void);
static void PREFIX86(_scasb)(void);
static void PREFIX86(_scasw)(void);
static void PREFIX86(_mov_ald8)(void);
static void PREFIX86(_mov_cld8)(void);
static void PREFIX86(_mov_dld8)(void);
static void PREFIX86(_mov_bld8)(void);
static void PREFIX86(_mov_ahd8)(void);
static void PREFIX86(_mov_chd8)(void);
static void PREFIX86(_mov_dhd8)(void);
static void PREFIX86(_mov_bhd8)(void);
static void PREFIX86(_mov_axd16)(void);
static void PREFIX86(_mov_cxd16)(void);
static void PREFIX86(_mov_dxd16)(void);
static void PREFIX86(_mov_bxd16)(void);
static void PREFIX86(_mov_spd16)(void);
static void PREFIX86(_mov_bpd16)(void);
static void PREFIX86(_mov_sid16)(void);
static void PREFIX86(_mov_did16)(void);
static void PREFIX86(_ret_d16)(void);
static void PREFIX86(_ret)(void);
static void PREFIX86(_les_dw)(void);
static void PREFIX86(_lds_dw)(void);
static void PREFIX86(_mov_bd8)(void);
static void PREFIX86(_mov_wd16)(void);
static void PREFIX86(_retf_d16)(void);
static void PREFIX86(_retf)(void);
static void PREFIX86(_int3)(void);
static void PREFIX86(_int)(void);
static void PREFIX86(_into)(void);
static void PREFIX86(_iret)(void);
static void PREFIX86(_rotshft_b)(void);
static void PREFIX86(_rotshft_w)(void);
static void PREFIX86(_rotshft_bcl)(void);
static void PREFIX86(_rotshft_wcl)(void);
static void PREFIX86(_aam)(void);
static void PREFIX86(_aad)(void);
static void PREFIX86(_xlat)(void);
static void PREFIX86(_escape)(void);
static void PREFIX86(_loopne)(void);
static void PREFIX86(_loope)(void);
static void PREFIX86(_loop)(void);
static void PREFIX86(_jcxz)(void);
static void PREFIX86(_inal)(void);
static void PREFIX86(_inax)(void);
static void PREFIX86(_outal)(void);
static void PREFIX86(_outax)(void);
static void PREFIX86(_call_d16)(void);
static void PREFIX86(_jmp_d16)(void);
static void PREFIX86(_jmp_far)(void);
static void PREFIX86(_jmp_d8)(void);
static void PREFIX86(_inaldx)(void);
static void PREFIX86(_inaxdx)(void);
static void PREFIX86(_outdxal)(void);
static void PREFIX86(_outdxax)(void);
static void PREFIX86(_lock)(void);
static void PREFIX86(_repne)(void);
static void PREFIX86(_repe)(void);
static void PREFIX86(_hlt)(void);
static void PREFIX86(_cmc)(void);
static void PREFIX86(_f6pre)(void);
static void PREFIX86(_f7pre)(void);
static void PREFIX86(_clc)(void);
static void PREFIX86(_stc)(void);
static void PREFIX86(_cli)(void);
static void PREFIX86(_sti)(void);
static void PREFIX86(_cld)(void);
static void PREFIX86(_std)(void);
static void PREFIX86(_fepre)(void);
static void PREFIX86(_ffpre)(void);
static void PREFIX86(_wait)(void);
