--- np2/i286a/i286aop.inc 2003/12/26 00:11:51 1.10 +++ np2/i286a/i286aop.inc 2005/03/19 21:02:05 1.13 @@ -41,7 +41,7 @@ $label EAREG16 r12 mov pc, r11 $label.1 CPUWORK $memclk bl i286a_ea - WORDACC r0, $label.2 + ACCWORD r0, $label.2 ldrh r4, [r9, r0] $alu r4, r6 strh r1, [r9, r0] @@ -129,7 +129,7 @@ $label EAREG16 r12 mov pc, r11 $label.1 CPUWORK $memclk bl i286a_ea - WORDACC r0, $label.2 + ACCWORD r0, $label.2 ldrh r4, [r9, r0] $alu r4, r6 mov pc, r11 @@ -211,7 +211,7 @@ $label cmp r0, #&c0 mov pc, r11 $label.1 CPUWORK $memclk bl i286a_ea - WORDACC r0, $label.2 + ACCWORD r0, $label.2 ldrh r4, [r9, r0] $alu r4 strh r1, [r9, r0] @@ -297,21 +297,26 @@ $label CPUWORK $clk MACRO $label SEGPOP $s, $b, $clk -$label POP $clk - mov r1, r0 lsl #4 +$label ldrh r6, [r9, #CPU_MSW] + POP $clk strh r0, [r9, $s] - str r1, [r9, $b] + tst r6, #MSW_PE + moveq r0, r0 lsl #4 + blne i286a_selector + str r0, [r9, $b] mov pc, r11 MEND MACRO $label SEGPOPFIX $s, $b, $f, $clk -$label POP $clk - mov r1, r0 lsl #4 +$label ldrh r6, [r9, #CPU_MSW] + POP $clk strh r0, [r9, $s] - str r1, [r9, $b] - str r1, [r9, $f] - mov pc, r11 + tst r6, #MSW_PE + moveq r0, r0 lsl #4 + blne i286a_selector + str r0, [r9, $b] + str r0, [r9, $f] MEND