--- np2/i286a/i286aio.inc 2003/12/19 05:25:32 1.2 +++ np2/i286a/i286aio.inc 2003/12/20 10:27:55 1.3 @@ -1,24 +1,16 @@ -; PI_levels equ 0 -; PI_level equ 4 -; PI_levelsbak equ 12 -; PI_levelbak equ 16 -; PI_pry equ 24 -; PI_icw equ 32 -PI_IMR equ 36 -; PI_ocw3 equ 37 -; PI_irr equ 38 -; PI_ext equ 39 -; PI_isr equ 40 -; PI_isrbak equ 41 -; PI_writeicw equ 42 -; PI_padding equ 43 -PI_SIZE equ 44 +; ---- cgwindow -PIC_MASTER equ 0 -PIC_SLAVE equ PI_SIZE -PIC_EXTIRQ equ (PI_SIZE * 2) + IMPORT cgwindow + +CGW_LOW equ 0 +CGW_HIGH equ 4 +CGW_WRITABLE equ 8 + + +; ---- dmac + IMPORT dmac ; DMACH_adrs equ 0 ; DMACH_leng equ 4 @@ -42,40 +34,95 @@ DMAC_WORKING equ (DMACH_SIZE * 4) + 8 ; DMA_stat equ (DMACH_SIZE * 4) + 13 -; #define PICEXISTINTR ((!pic.ext_irq) && \ -; ((pic.pi[0].irr & (~pic.pi[0].imr)) || \ -; (pic.pi[1].irr & (~pic.pi[1].imr)))) +; ---- emm + + IMPORT extmem + +; em_maxmem equ 0 +EM_PAGEPTR equ 4 +; em_target equ 20 +; em_page equ 24 + + +; ---- gdc + + IMPORT gdcs + +; gdcs_access equ 0 +; gdcs_disp equ 1 +GDCS_TEXTDISP equ 2 +GDCS_MSWACC equ 3 +GDCS_GRPHDISP equ 4 +; gdcs_palchange equ 5 +; gdcs_mode2 equ 6 +; ---- grcg + + IMPORT grcg + +; grcg_counter equ 0 +; grcg_mode equ 4 +GRCG_MODEREG equ 6 +GRCG_TILE equ 8 +; grcg_gdcwithgrcg equ 16 +; grcg_chip equ 20 + + +; ---- pic + + IMPORT pic + IMPORT extirq_pop + +; PI_levels equ 0 +; PI_level equ 4 +; PI_levelsbak equ 12 +; PI_levelbak equ 16 +; PI_pry equ 24 +; PI_icw equ 32 +PI_IMR equ 36 +; PI_ocw3 equ 37 +; PI_irr equ 38 +; PI_ext equ 39 +; PI_isr equ 40 +; PI_isrbak equ 41 +; PI_writeicw equ 42 +; PI_padding equ 43 +PI_SIZE equ 44 + +PIC_MASTER equ 0 +PIC_SLAVE equ PI_SIZE +PIC_EXTIRQ equ (PI_SIZE * 2) + MACRO $label NOINTREXIT - tst r8, #I_FLAG - moveq pc, r11 - ldrb r1, [r0, #PIC_EXTIRQ] - ldr r2, [r0, #(PIC_MASTER + PI_IMR)] - mov r12, #(&ff << 24) - cmp r1, #0 - movne pc, r11 - ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] - eor r0, r12, r2 lsl #24 - tst r0, r2 lsl #8 - eoreq r0, r12, r3 lsl #24 - tsteq r0, r3 lsl #8 - moveq pc, r11 +$label tst r8, #I_FLAG + moveq pc, r11 + ldrb r1, [r0, #PIC_EXTIRQ] + ldr r2, [r0, #(PIC_MASTER + PI_IMR)] + mov r12, #(&ff << 24) + cmp r1, #0 + movne pc, r11 + ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] + eor r0, r12, r2 lsl #24 + tst r0, r2 lsl #8 + eoreq r0, r12, r3 lsl #24 + tsteq r0, r3 lsl #8 + moveq pc, r11 MEND MACRO $label PICEXISTINTR $noirq - ldrb r1, [r0, #PIC_EXTIRQ] - ldr r2, [r0, #(PIC_MASTER + PI_IMR)] - mov r12, #(&ff << 24) - cmp r1, #0 - bne $noirq - ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] - eor r0, r12, r2 lsl #24 - tst r0, r2 lsl #8 - eoreq r0, r12, r3 lsl #24 - tsteq r0, r3 lsl #8 +$label ldrb r1, [r0, #PIC_EXTIRQ] + ldr r2, [r0, #(PIC_MASTER + PI_IMR)] + mov r12, #(&ff << 24) + cmp r1, #0 + bne $noirq + ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] + eor r0, r12, r2 lsl #24 + tst r0, r2 lsl #8 + eoreq r0, r12, r3 lsl #24 + tsteq r0, r3 lsl #8 MEND END