--- np2/i286a/i286aio.inc 2003/12/19 00:25:49 1.1 +++ np2/i286a/i286aio.inc 2004/01/29 00:27:29 1.7 @@ -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 @@ -34,25 +26,104 @@ PIC_EXTIRQ equ (PI_SIZE * 2) ; DMACH_mask equ 27 DMACH_SIZE equ 28 -; DMA_dmach equ 0 -; DMA_lh equ (DMACH_SIZE * 4) + 0 -; DMA_work equ (DMACH_SIZE * 4) + 4 -DMAC_WORKING equ (DMACH_SIZE * 4) + 8 -; DMA_mask equ (DMACH_SIZE * 4) + 12 -; DMA_stat equ (DMACH_SIZE * 4) + 13 +; dmac_dmach equ 0 +; dmac_lh equ (DMACH_SIZE * 4) + 0 +; dmac_work equ (DMACH_SIZE * 4) + 4 +DMAC_WORKING equ (DMACH_SIZE * 4) + 5 +; dmac_mask equ (DMACH_SIZE * 4) + 6 +; dmac_stat equ (DMACH_SIZE * 4) + 7 +; dmac_devices equ (DMACH_SIZE * 4) + 8 +; dmac_device equ (DMACH_SIZE * 4) + 12 + + +; ---- egc + + IMPORT egc + +; egc_access equ 0 +; egc_fgbg equ 2 +; egc_ope equ 4 +; egc_fg equ 6 +; egc_mask equ 8 +; egc_bg equ 10 +EGC_SFT equ 12 +; egc_leng equ 14 +; egc_lastvram equ 16 +; egc_patreg equ 24 +; egc_fgc equ 32 +; egc_bgc equ 40 +; and more.. + + +; ---- 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 + +; PI_levels equ 0 +; PI_level equ 4 +; PI_pry equ 12 +; PI_icw equ 20 +PI_IMR equ 24 +; PI_ocw3 equ 25 +; PI_irr equ 26 +; PI_ext equ 27 +; PI_isr equ 28 +; PI_isrbak equ 29 +; PI_writeicw equ 30 +; PI_padding equ 31 +PI_SIZE equ 32 + +PIC_MASTER equ 0 +PIC_SLAVE equ PI_SIZE + + MACRO +$label NOINTREXIT +$label tst r8, #I_FLAG + moveq pc, r11 + ldr r2, [r0, #(PIC_MASTER + PI_IMR)] + mov r12, #(&ff << 24) + 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 - mov r12, #(&ff << 24) - ldrb r1, [r0, #PIC_EXTIRQ] - ldr r2, [r0, #(PIC_MASTER + PI_IMR)] - ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] - cmp r1, #0 - eoreq r0, r12, r2 lsl #24 - tsteq r0, r2 lsl #8 - eoreq r0, r12, r3 lsl #24 - tsteq r0, r3 lsl #8 +$label ldr r2, [r0, #(PIC_MASTER + PI_IMR)] + mov r12, #(&ff << 24) + 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