--- np2/i286a/i286a.inc 2003/12/18 19:14:08 1.7 +++ np2/i286a/i286a.inc 2003/12/19 05:25:32 1.10 @@ -17,7 +17,7 @@ CPU_SEG equ 16 - 112 CPU_REMAINCLOCK equ 28 - 112 CPU_BASECLOCK equ 32 - 112 ; cpu_clock equ 36 - 112 -; cpu_adrsmask equ 40 - 112 +CPU_ADRSMASK equ 40 - 112 CPU_ES_BASE equ 44 - 112 CPU_CS_BASE equ 48 - 112 CPU_SS_BASE equ 52 - 112 @@ -36,8 +36,8 @@ CPU_IDTR equ 94 - 112 CPU_MSW equ 100 - 112 ; cpu_resetreq equ 102 - 112 ; cpu_itfbank equ 103 - 112 -; cpu_extmem equ 104 - 112 -; cpu_extmemsize equ 108 - 112 +CPU_EXTMEM equ 104 - 112 +CPU_EXTMEMSIZE equ 108 - 112 ; cpu_mainmem equ 112 - 112 CPU_AL equ 0 - 112 @@ -68,15 +68,37 @@ MAX_PREFIX equ 8 MACRO -$label CPUSV +$label CPUSVC +$label + MEND + + MACRO +$label CPULDC +$label + MEND + + MACRO +$label CPUSVF $label str r8, [r9, #CPU_FLAG] MEND MACRO -$label CPULD +$label CPULDF $label ldr r8, [r9, #CPU_FLAG] MEND + MACRO +$label CPUSV +$label CPUSVF + CPUSVC + MEND + + MACRO +$label CPULD +$label CPULDF + CPULDC + MEND + MACRO $label CPUWORK $clock @@ -86,6 +108,13 @@ $label ldr r7, [r9, #CPU_REMAINCLOCK] MEND MACRO +$label CPUWKS $clock +$label ldr r7, [r9, #CPU_REMAINCLOCK] + subs r7, r7, $clock + str r7, [r9, #CPU_REMAINCLOCK] + MEND + + MACRO $label CREMSET $clock $label mov r7, $clock str r7, [r9, #CPU_REMAINCLOCK] @@ -123,7 +152,7 @@ $label ldr r7, [r9, #CPU_REMAINCLOCK] $label I286IRQCHECKTERM $label ldr r7, [r9, #CPU_REMAINCLOCK] cmp r7, #0 - movgt pc, r11 + movle pc, r11 ldr r0, [r9, #CPU_BASECLOCK] mov r1, r7 mov r7, #0