--- np2/i286c/i286c_rp.c 2003/10/19 14:56:15 1.5 +++ np2/i286c/i286c_rp.c 2003/11/29 00:36:00 1.6 @@ -13,9 +13,9 @@ I286EXT i286c_rep_insb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; do { - BYTE dat = iocore_inp8(I286_DX); + REG8 dat = iocore_inp8(I286_DX); i286_memorywrite(I286_DI + ES_BASE, dat); I286_DI += stp; I286_WORKCLOCK(4); @@ -27,9 +27,9 @@ I286EXT i286c_rep_insw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; do { - UINT16 dat = iocore_inp16(I286_DX); + REG16 dat = iocore_inp16(I286_DX); i286_memorywrite_w(I286_DI + ES_BASE, dat); I286_DI += stp; I286_WORKCLOCK(4); @@ -43,11 +43,11 @@ I286EXT i286c_rep_outsb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; do { - BYTE dat = i286_memoryread(I286_SI + DS_FIX); + REG8 dat = i286_memoryread(I286_SI + DS_FIX); I286_SI += stp; - iocore_out8(I286_DX, dat); + iocore_out8(I286_DX, (BYTE)dat); I286_WORKCLOCK(4); } while(--I286_CX); } @@ -57,26 +57,26 @@ I286EXT i286c_rep_outsw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; do { - UINT16 dat = i286_memoryread_w(I286_SI + DS_FIX); + REG16 dat = i286_memoryread_w(I286_SI + DS_FIX); I286_SI += stp; - iocore_out16(I286_DX, dat); + iocore_out16(I286_DX, (UINT16)dat); I286_WORKCLOCK(4); } while(--I286_CX); } } + // ---------------------------------------------------------------------- movs -#if 1 I286EXT i286c_rep_movsb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; while(1) { - BYTE dat = i286_memoryread(I286_SI + DS_FIX); + REG8 dat = i286_memoryread(I286_SI + DS_FIX); i286_memorywrite(I286_DI + ES_BASE, dat); I286_SI += stp; I286_DI += stp; @@ -97,9 +97,9 @@ I286EXT i286c_rep_movsw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; while(1) { - UINT16 dat = i286_memoryread_w(I286_SI + DS_FIX); + REG16 dat = i286_memoryread_w(I286_SI + DS_FIX); i286_memorywrite_w(I286_DI + ES_BASE, dat); I286_SI += stp; I286_DI += stp; @@ -115,46 +115,15 @@ I286EXT i286c_rep_movsw(void) { } } } -#else -I286EXT i286c_rep_movsb(void) { - - I286_WORKCLOCK(5); - if (I286_CX) { - SINT16 stp = STRING_DIR; - do { - BYTE dat = i286_memoryread(I286_SI + DS_FIX); - i286_memorywrite(I286_DI + ES_BASE, dat); - I286_SI += stp; - I286_DI += stp; - I286_WORKCLOCK(4); - } while(--I286_CX); - } -} -I286EXT i286c_rep_movsw(void) { - - I286_WORKCLOCK(5); - if (I286_CX) { - SINT16 stp = STRING_DIRx2; - do { - UINT16 dat = i286_memoryread_w(I286_SI + DS_FIX); - i286_memorywrite_w(I286_DI + ES_BASE, dat); - I286_SI += stp; - I286_DI += stp; - I286_WORKCLOCK(4); - } while(--I286_CX); - } -} -#endif // ---------------------------------------------------------------------- lods -#if 1 I286EXT i286c_rep_lodsb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; while(1) { I286_AL = i286_memoryread(I286_SI + DS_FIX); I286_SI += stp; @@ -175,7 +144,7 @@ I286EXT i286c_rep_lodsw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; while(1) { I286_AX = i286_memoryread_w(I286_SI + DS_FIX); I286_SI += stp; @@ -191,42 +160,15 @@ I286EXT i286c_rep_lodsw(void) { } } } -#else -I286EXT i286c_rep_lodsb(void) { - - I286_WORKCLOCK(5); - if (I286_CX) { - SINT16 stp = STRING_DIR; - do { - I286_AL = i286_memoryread(I286_SI + DS_FIX); - I286_SI += stp; - I286_WORKCLOCK(4); - } while(--I286_CX); - } -} - -I286EXT i286c_rep_lodsw(void) { - I286_WORKCLOCK(5); - if (I286_CX) { - SINT16 stp = STRING_DIRx2; - do { - I286_AX = i286_memoryread_w(I286_SI + DS_FIX); - I286_SI += stp; - I286_WORKCLOCK(4); - } while(--I286_CX); - } -} -#endif // ---------------------------------------------------------------------- stos -#if 1 I286EXT i286c_rep_stosb(void) { I286_WORKCLOCK(4); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; while(1) { i286_memorywrite(I286_DI + ES_BASE, I286_AL); I286_DI += stp; @@ -247,7 +189,7 @@ I286EXT i286c_rep_stosw(void) { I286_WORKCLOCK(4); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; while(1) { i286_memorywrite_w(I286_DI + ES_BASE, I286_AX); I286_DI += stp; @@ -263,33 +205,7 @@ I286EXT i286c_rep_stosw(void) { } } } -#else -I286EXT i286c_rep_stosb(void) { - I286_WORKCLOCK(4); - if (I286_CX) { - SINT16 stp = STRING_DIR; - do { - i286_memorywrite(I286_DI + ES_BASE, I286_AL); - I286_DI += stp; - I286_WORKCLOCK(3); - } while(--I286_CX); - } -} - -I286EXT i286c_rep_stosw(void) { - - I286_WORKCLOCK(4); - if (I286_CX) { - SINT16 stp = STRING_DIRx2; - do { - i286_memorywrite_w(I286_DI + ES_BASE, I286_AX); - I286_DI += stp; - I286_WORKCLOCK(3); - } while(--I286_CX); - } -} -#endif // ---------------------------------------------------------------------- cmps @@ -297,7 +213,7 @@ I286EXT i286c_repe_cmpsb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; do { UINT res; UINT dst = i286_memoryread(I286_SI + DS_FIX); @@ -315,7 +231,7 @@ I286EXT i286c_repne_cmpsb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; do { UINT res; UINT dst = i286_memoryread(I286_SI + DS_FIX); @@ -333,7 +249,7 @@ I286EXT i286c_repe_cmpsw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; do { UINT32 res; UINT32 dst = i286_memoryread_w(I286_SI + DS_FIX); @@ -351,7 +267,7 @@ I286EXT i286c_repne_cmpsw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; do { UINT32 res; UINT32 dst = i286_memoryread_w(I286_SI + DS_FIX); @@ -365,13 +281,14 @@ I286EXT i286c_repne_cmpsw(void) { } } + // ---------------------------------------------------------------------- scas I286EXT i286c_repe_scasb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; UINT dst = I286_AL; do { UINT res; @@ -388,7 +305,7 @@ I286EXT i286c_repne_scasb(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIR; + int stp = STRING_DIR; UINT dst = I286_AL; do { UINT res; @@ -405,7 +322,7 @@ I286EXT i286c_repe_scasw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; UINT32 dst = I286_AX; do { UINT32 res; @@ -422,7 +339,7 @@ I286EXT i286c_repne_scasw(void) { I286_WORKCLOCK(5); if (I286_CX) { - SINT16 stp = STRING_DIRx2; + int stp = STRING_DIRx2; UINT32 dst = I286_AX; do { UINT32 res;