|
|
| version 1.6, 2004/01/25 05:41:28 | version 1.8, 2005/05/20 19:52:02 |
|---|---|
| Line 83 GRCG_TILE equ 8 | Line 83 GRCG_TILE equ 8 |
| ; ---- pic | ; ---- pic |
| IMPORT pic | IMPORT pic |
| IMPORT extirq_pop | |
| ; PI_levels equ 0 | ; PI_icw equ 0 |
| ; PI_level equ 4 | PI_IMR equ 4 |
| ; PI_levelsbak equ 12 | ; PI_isr equ 5 |
| ; PI_levelbak equ 16 | ; PI_irr equ 6 |
| ; PI_pry equ 24 | ; PI_ocw3 equ 7 |
| ; PI_icw equ 32 | ; PI_pry equ 8 |
| PI_IMR equ 36 | ; PI_writeicw equ 9 |
| ; PI_ocw3 equ 37 | ; PI_padding equ 10 |
| ; PI_irr equ 38 | PI_SIZE equ 12 |
| ; 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_MASTER equ 0 |
| PIC_SLAVE equ PI_SIZE | PIC_SLAVE equ PI_SIZE |
| PIC_EXTIRQ equ (PI_SIZE * 2) | |
| MACRO | MACRO |
| $label NOINTREXIT | $label NOINTREXIT |
| $label tst r8, #I_FLAG | $label tst r8, #I_FLAG |
| moveq pc, r11 | moveq pc, r11 |
| ldrb r1, [r0, #PIC_EXTIRQ] | |
| ldr r2, [r0, #(PIC_MASTER + PI_IMR)] | ldr r2, [r0, #(PIC_MASTER + PI_IMR)] |
| mov r12, #(&ff << 24) | mov r12, #(&ff << 24) |
| cmp r1, #0 | |
| movne pc, r11 | |
| ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] | ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] |
| eor r0, r12, r2 lsl #24 | eor r0, r12, r2 lsl #24 |
| tst r0, r2 lsl #8 | tst r0, r2 lsl #8 |
| Line 123 $label tst r8, #I_FLAG | Line 112 $label tst r8, #I_FLAG |
| MEND | MEND |
| MACRO | MACRO |
| $label PICEXISTINTR $noirq | $label PICEXISTINTR |
| $label ldrb r1, [r0, #PIC_EXTIRQ] | $label ldr r2, [r0, #(PIC_MASTER + PI_IMR)] |
| ldr r2, [r0, #(PIC_MASTER + PI_IMR)] | |
| mov r12, #(&ff << 24) | mov r12, #(&ff << 24) |
| cmp r1, #0 | |
| bne $noirq | |
| ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] | ldr r3, [r0, #(PIC_SLAVE + PI_IMR)] |
| eor r0, r12, r2 lsl #24 | eor r0, r12, r2 lsl #24 |
| tst r0, r2 lsl #8 | tst r0, r2 lsl #8 |