--- np2/i286a/i286a_mn.s 2003/12/19 05:25:32 1.11 +++ np2/i286a/i286a_mn.s 2003/12/20 10:27:55 1.14 @@ -6,7 +6,7 @@ INCLUDE i286aio.inc IMPORT i286core - IMPORT _szpcflag8 + IMPORT iflags IMPORT i286a_localint IMPORT i286a_trapint EXPORT i286a_trapintr @@ -27,10 +27,6 @@ IMPORT dmap_i286 IMPORT biosfunc - IMPORT dmac - IMPORT pic - IMPORT extirq_pop - IMPORT i286a_cts IMPORT i286aop80 @@ -1399,7 +1395,7 @@ iret_pic dcd pic aam CPUWORK #16 GETPC8 - movs r0, r0, lsl #7 + movs r0, r0 lsl #7 beq aamzero ldrb r1, [r9, #CPU_AL] mov r2, #&80 @@ -1407,6 +1403,7 @@ aam CPUWORK #16 aamlp cmp r1, r0 subcs r1, r1, r0 orrcs r3, r2, r3 + mov r0, r0 lsr #1 movs r2, r2 lsr #1 bne aamlp ldrb r2, [r10, r1] @@ -1673,8 +1670,7 @@ i286a_step stmdb sp!, {r4 - r11, lr} ldr r10, ias_r10 ; ldr r5, [r9, #CPU_CS_BASE] - ; ldr r7, [r9, #CPU_REMAINCLOCK] - ldr r8, [r9, #CPU_FLAG] + CPULD adr r4, optbl1 add r0, r5, r8 lsr #16 @@ -1684,7 +1680,8 @@ i286a_step stmdb sp!, {r4 - r11, lr} mov r11, pc mov pc, r1 - str r8, [r9, #CPU_FLAG] + bl dmap_i286 + CPUSV ldmia sp!, {r4 - r11, pc} @@ -1692,7 +1689,7 @@ i286a stmdb sp!, {r4 - r11, lr} ldr r9, ias_r9 ldr r2, ias_r1 ldr r10, ias_r10 - ldr r8, [r9, #CPU_FLAG] + CPULD ldr r5, [r9, #CPU_CS_BASE] ldr r1, [r2, #DMAC_WORKING] and r0, r8, #(I_FLAG + T_FLAG) @@ -1712,12 +1709,12 @@ i286a_lp add r0, r5, r8 lsr #16 adr r4, optbl1 cmp r7, #0 bgt i286a_lp - str r8, [r9, #CPU_FLAG] + CPUSV ldmia sp!, {r4 - r11, pc} -ias_r9 dcd i286core - CPU_REG +ias_r9 dcd i286core + CPU_SIZE ias_r1 dcd dmac -ias_r10 dcd _szpcflag8 +ias_r10 dcd iflags i286awithdma adr r4, optbl1 i286awdma_lp add r0, r5, r8 lsr #16 @@ -1732,7 +1729,7 @@ i286awdma_lp add r0, r5, r8 lsr #16 adr r4, optbl1 cmp r7, #0 bgt i286awdma_lp - str r8, [r9, #CPU_FLAG] + CPUSV ldmia sp!, {r4 - r11, pc} i286awithtrap adr r4, optbl1 @@ -1746,7 +1743,7 @@ i286awtrp_lp add r0, r5, r8 lsr #16 and r0, r8, #(I_FLAG + T_FLAG) cmp r0, #(I_FLAG + T_FLAG) beq i286a_trapint -i286a_trapintr str r8, [r9, #CPU_FLAG] +i286a_trapintr CPUSV ldmia sp!, {r4 - r11, pc} optbl1 dcd add_ea_r8 ; 00