|
|
| version 1.6, 2004/01/25 05:41:28 | version 1.7, 2004/01/29 00:27:29 |
|---|---|
| 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_levels equ 0 |
| ; PI_level equ 4 | ; PI_level equ 4 |
| ; PI_levelsbak equ 12 | ; PI_pry equ 12 |
| ; PI_levelbak equ 16 | ; PI_icw equ 20 |
| ; PI_pry equ 24 | PI_IMR equ 24 |
| ; PI_icw equ 32 | ; PI_ocw3 equ 25 |
| PI_IMR equ 36 | ; PI_irr equ 26 |
| ; PI_ocw3 equ 37 | ; PI_ext equ 27 |
| ; PI_irr equ 38 | ; PI_isr equ 28 |
| ; PI_ext equ 39 | ; PI_isrbak equ 29 |
| ; PI_isr equ 40 | ; PI_writeicw equ 30 |
| ; PI_isrbak equ 41 | ; PI_padding equ 31 |
| ; PI_writeicw equ 42 | PI_SIZE equ 32 |
| ; 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 116 $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 |