📄 interrupt.cod
字号:
; 504 : *VIC2_INTENABLE = INT2_SPI;
0012c e59f1130 ldr r1, [pc, #0x130]
00130 e3a00602 mov r0, #2, 12
; 505 : gdwInterruptMask2 |= INT2_SPI;
00134 e59f2124 ldr r2, [pc, #0x124]
00138 e5810000 str r0, [r1]
0013c e5920000 ldr r0, [r2]
00140 e3801602 orr r1, r0, #2, 12
; 506 : fPS2Int = 0;
00144 e59f012c ldr r0, [pc, #0x12C]
00148 e5821000 str r1, [r2]
0014c e3a01000 mov r1, #0
00150 e5801000 str r1, [r0]
; 507 : break;
00154 ea00003c b |$L14042|
00158 |$L14060|
; 508 :
; 509 : case SYSINTR_RTC_ALARM:
; 510 : *VIC2_INTENABLE = INT2_RTC;
; 511 : gdwInterruptMask2 |= INT2_RTC;
00158 e59f2100 ldr r2, [pc, #0x100]
0015c e59f1100 ldr r1, [pc, #0x100]
00160 |$L14256|
00160 e3a00020 mov r0, #0x20
00164 e5810000 str r0, [r1]
00168 e5920000 ldr r0, [r2]
0016c e3801020 orr r1, r0, #0x20
; 550 : gdwInterruptMask2 |= INT2_GPIO6;
00170 e5821000 str r1, [r2]
; 551 : break;
00174 ea000034 b |$L14042|
00178 |$L14062|
; 512 : break;
; 513 :
; 514 : case SYSINTR_DMA0:
; 515 : case SYSINTR_DMA1:
; 516 : case SYSINTR_DMA2:
; 517 : case SYSINTR_DMA3:
; 518 : case SYSINTR_DMA4:
; 519 : case SYSINTR_DMA5:
; 520 : case SYSINTR_DMA6:
; 521 : case SYSINTR_DMA7:
; 522 : case SYSINTR_DMA8:
; 523 : case SYSINTR_DMA9:
; 524 : *VIC1_INTENABLE = INT1_DMAM2P0<< (idInt - SYSINTR_DMA0);
00178 e244101f sub r1, r4, #0x1F
0017c e59f20ec ldr r2, [pc, #0xEC]
00180 e3a03080 mov r3, #0x80
00184 e1a00113 mov r0, r3, lsl r1
00188 e5820000 str r0, [r2]
; 525 : gdwInterruptMask1 |= INT1_DMAM2P0<< (idInt - SYSINTR_DMA0);
0018c e59f20e0 ldr r2, [pc, #0xE0]
00190 e5920000 ldr r0, [r2]
00194 e1801113 orr r1, r0, r3, lsl r1
; 550 : gdwInterruptMask2 |= INT2_GPIO6;
00198 e5821000 str r1, [r2]
; 551 : break;
0019c ea00002a b |$L14042|
001a0 |$L14064|
; 526 : break;
; 527 :
; 528 : case SYSINTR_TOUCH:
; 529 : *VIC1_INTENABLE = INT1_TOUCH;
001a0 e59f10c8 ldr r1, [pc, #0xC8]
001a4 e3a00101 mov r0, #1, 2
; 530 : gdwInterruptMask1 |= INT1_TOUCH;
001a8 e59f20c4 ldr r2, [pc, #0xC4]
001ac e5810000 str r0, [r1]
001b0 e5920000 ldr r0, [r2]
001b4 e3801101 orr r1, r0, #1, 2
; 550 : gdwInterruptMask2 |= INT2_GPIO6;
001b8 e5821000 str r1, [r2]
; 551 : break;
001bc ea000022 b |$L14042|
001c0 |$L14066|
; 531 : break;
; 532 :
; 533 : case SYSINTR_TIMER2:
; 534 : *VIC1_INTENABLE = INT1_TIMER2;
; 535 : gdwInterruptMask1 |= INT1_TIMER2;
001c0 e59f20ac ldr r2, [pc, #0xAC]
001c4 e59f10a4 ldr r1, [pc, #0xA4]
; 536 : break;
001c8 eaffffe4 b |$L14256|
001cc |$L14068|
; 537 :
; 538 : case SYSINTR_IR:
; 539 : *VIC2_INTENABLE = INT2_IRDA;
001cc e59f1090 ldr r1, [pc, #0x90]
001d0 e3a00040 mov r0, #0x40
; 540 : gdwInterruptMask2 |= INT2_IRDA;
001d4 e59f2084 ldr r2, [pc, #0x84]
001d8 e5810000 str r0, [r1]
001dc e5920000 ldr r0, [r2]
001e0 e3801040 orr r1, r0, #0x40
; 550 : gdwInterruptMask2 |= INT2_GPIO6;
001e4 e5821000 str r1, [r2]
; 551 : break;
001e8 ea000017 b |$L14042|
001ec |$L14070|
; 541 : break;
; 542 : case SYSINTR_IDE:
; 543 : NKDbgPrintfW(L"OEMInterruptEnable: SYSINTR_IDE");
001ec e59f0078 ldr r0, [pc, #0x78]
001f0 eb000000 bl NKDbgPrintfW
; 544 : *VIC2_INTENABLE = INT2_EXT3;
001f4 e59f3068 ldr r3, [pc, #0x68]
; 545 : gdwInterruptMask2 |= INT2_EXT3;
001f8 e59f2060 ldr r2, [pc, #0x60]
001fc e3a00c01 mov r0, #1, 24
00200 e5830000 str r0, [r3]
00204 e5920000 ldr r0, [r2]
00208 e3801c01 orr r1, r0, #1, 24
; 550 : gdwInterruptMask2 |= INT2_GPIO6;
0020c e5821000 str r1, [r2]
; 551 : break;
00210 ea00000d b |$L14042|
00214 |$L14073|
; 546 : break;
; 547 : case SYSINTR_PCMCIA_LEVEL:
; 548 : NKDbgPrintfW(L"OEMInterruptEnable: SYSINTR_PCMCIA_LEVEL");
00214 e59f004c ldr r0, [pc, #0x4C]
00218 eb000000 bl NKDbgPrintfW
; 549 : *VIC2_INTENABLE = INT2_GPIO6;
0021c e59f3040 ldr r3, [pc, #0x40]
; 550 : gdwInterruptMask2 |= INT2_GPIO6;
00220 e59f2038 ldr r2, [pc, #0x38]
00224 e3a00802 mov r0, #2, 16
00228 e5830000 str r0, [r3]
0022c e5920000 ldr r0, [r2]
00230 e3801802 orr r1, r0, #2, 16
00234 e5821000 str r1, [r2]
; 551 : break;
00238 ea000003 b |$L14042|
0023c |$L14076|
; 552 :
; 553 : default:
; 554 : NKDbgPrintfW(L"OEMInterruptEnable: Unknown Interrupt #%02d\r\n", idInt);
0023c e59f0018 ldr r0, [pc, #0x18]
00240 e1a01004 mov r1, r4
00244 eb000000 bl NKDbgPrintfW
; 555 : bRet = FALSE;
00248 e3a05000 mov r5, #0
0024c |$L14042|
; 556 : break;
; 557 : }
; 558 :
; 559 : INTERRUPTS_ON();
0024c eb000000 bl INTERRUPTS_ON
; 560 :
; 561 : return(bRet);
00250 e1a00005 mov r0, r5
; 562 : }
00254 e8bd4030 ldmia sp!, {r4, r5, lr}
00258 e12fff1e bx lr
0025c |$L14263|
0025c 00000000 DCD |??_C@_1FM@HJGP@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?3?$AA?5@|
00260 00000000 DCD |gdwInterruptMask2|
00264 b00c0010 DCD 0xb00c0010
00268 00000000 DCD |??_C@_1FC@KJAL@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?3?$AA?5@|
0026c 00000000 DCD |??_C@_1EA@LKDN@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?3?$AA?5@|
00270 b00b0010 DCD 0xb00b0010
00274 00000000 DCD |gdwInterruptMask1|
00278 00000000 DCD |fPS2Int|
0027c |$M14260|
ENDP ; |OEMInterruptEnable|
EXPORT |OEMInterruptDisable|
EXPORT |??_C@_1EC@OJBB@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| [ DATA ] ; `string'
EXPORT |??_C@_1FE@CMMN@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| [ DATA ] ; `string'
EXPORT |??_C@_1FO@BJCM@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| [ DATA ] ; `string'
00000 AREA |.text| { |OEMInterruptDisable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMInterruptDisable|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMInterruptDisable| } ; comdat associative
|$T14274| DCD |OEMInterruptDisable|
DCD 0x40009801
00000 AREA |.rdata| { |??_C@_1EC@OJBB@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EC@OJBB@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| DCB "O"
DCB 0x0, "E", 0x0, "M", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "p", 0x0, "t", 0x0, "D"
DCB 0x0, "i", 0x0, "s", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e"
DCB 0x0, ":", 0x0, " ", 0x0, "S", 0x0, "Y", 0x0, "S", 0x0, "I"
DCB 0x0, "N", 0x0, "T", 0x0, "R", 0x0, "_", 0x0, "I", 0x0, "D"
DCB 0x0, "E", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1FE@CMMN@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FE@CMMN@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| DCB "O"
DCB 0x0, "E", 0x0, "M", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "p", 0x0, "t", 0x0, "D"
DCB 0x0, "i", 0x0, "s", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e"
DCB 0x0, ":", 0x0, " ", 0x0, "S", 0x0, "Y", 0x0, "S", 0x0, "I"
DCB 0x0, "N", 0x0, "T", 0x0, "R", 0x0, "_", 0x0, "P", 0x0, "C"
DCB 0x0, "M", 0x0, "C", 0x0, "I", 0x0, "A", 0x0, "_", 0x0, "L"
DCB 0x0, "E", 0x0, "V", 0x0, "E", 0x0, "L", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1FO@BJCM@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FO@BJCM@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@| DCB "O"
DCB 0x0, "E", 0x0, "M", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "p", 0x0, "t", 0x0, "D"
DCB 0x0, "i", 0x0, "s", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e"
DCB 0x0, ":", 0x0, " ", 0x0, "U", 0x0, "n", 0x0, "k", 0x0, "n"
DCB 0x0, "o", 0x0, "w", 0x0, "n", 0x0, " ", 0x0, "I", 0x0, "n"
DCB 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "p"
DCB 0x0, "t", 0x0, " ", 0x0, "#", 0x0, "%", 0x0, "0", 0x0, "2"
DCB 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMInterruptDisable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMInterruptDisable| PROC
; 583 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M14272|
00004 e1a04000 mov r4, r0
; 584 : //NKDbgPrintfW(L"OEMInterruptDisable: Interrupt #%02d\r\n", idInt);
; 585 : INTERRUPTS_OFF();
00008 eb000000 bl INTERRUPTS_OFF
; 586 :
; 587 : switch(idInt)
; 588 : {
0000c e244300a sub r3, r4, #0xA
00010 e353001e cmp r3, #0x1E
00014 8a000084 bhi |$L14117|
00018 e1a00083 mov r0, r3, lsl #1
0001c e080000f add r0, r0, pc
00020 e1d000b4 ldrh r0, [r0, #4]
00024 e08ff000 add pc, pc, r0
00028 |$L14271|
00028 |$L14270|
00028 020c DCW 0x20c
0002a 0200 DCW 0x200
0002c 0200 DCW 0x200
0002e 011c DCW 0x11c
00030 0200 DCW 0x200
00032 020c DCW 0x20c
00034 00dc DCW 0xdc
00036 0164 DCW 0x164
00038 0200 DCW 0x200
0003a 01b0 DCW 0x1b0
0003c 01d8 DCW 0x1d8
0003e 0200 DCW 0x200
00040 0190 DCW 0x190
00042 003c DCW 0x3c
00044 005c DCW 0x5c
00046 007c DCW 0x7c
00048 009c DCW 0x9c
0004a 00bc DCW 0xbc
0004c 00fc DCW 0xfc
0004e 0184 DCW 0x184
00050 0200 DCW 0x200
00052 013c DCW 0x13c
00054 013c DCW 0x13c
00056 013c DCW 0x13c
00058 013c DCW 0x13c
0005a 013c DCW 0x13c
0005c 013c DCW 0x13c
0005e 013c DCW 0x13c
00060 013c DCW 0x13c
00062 013c DCW 0x13c
00064 013c DCW 0x13c
; 688 :
; 689 : return;
; 690 : }
00066 013c DCW 0x13c
00068 |$L14086|
; 589 : case SYSINTR_TIMING:
; 590 : //
; 591 : // No action necessary
; 592 : //
; 593 : break;
; 594 :
; 595 : case SYSINTR_ETHER:
; 596 : //EdbgOutputDebugString("OEMInterruptDisable:SYSINTR_ETHER\n");
; 597 : *VIC2_INTCLEAR = INT2_ETHERNET;
00068 e59f11dc ldr r1, [pc, #0x1DC]
0006c e3a00080 mov r0, #0x80
; 598 : gdwInterruptMask2 &= ~INT2_ETHERNET;
00070 e59f21d0 ldr r2, [pc, #0x1D0]
00074 e5810000 str r0, [r1]
00078 e5920000 ldr r0, [r2]
0007c e3c01080 bic r1, r0, #0x80
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00080 e5821000 str r1, [r2]
; 679 : break;
00084 ea00006b b |$L14082|
00088 |$L14089|
; 599 : break;
; 600 :
; 601 : #ifdef IMGSHAREETH
; 602 : case SYSINTR_VMINI:
; 603 : break;
; 604 : #endif // IMGSHAREETH
; 605 :
; 606 : case SYSINTR_USB:
; 607 : *VIC2_INTCLEAR = INT2_USB;
00088 e59f11bc ldr r1, [pc, #0x1BC]
0008c e3a00401 mov r0, #1, 8
; 608 : gdwInterruptMask2 &= ~INT2_USB;
00090 e59f21b0 ldr r2, [pc, #0x1B0]
00094 e5810000 str r0, [r1]
00098 e5920000 ldr r0, [r2]
0009c e3c01401 bic r1, r0, #1, 8
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
000a0 e5821000 str r1, [r2]
; 679 : break;
000a4 ea000063 b |$L14082|
000a8 |$L14091|
; 609 : break;
; 610 :
; 611 : case SYSINTR_UART1:
; 612 : *VIC2_INTCLEAR = INT2_UART1;
000a8 e59f119c ldr r1, [pc, #0x19C]
000ac e3a00601 mov r0, #1, 12
; 613 : gdwInterruptMask2 &= ~INT2_UART1;
000b0 e59f2190 ldr r2, [pc, #0x190]
000b4 e5810000 str r0, [r1]
000b8 e5920000 ldr r0, [r2]
000bc e3c01601 bic r1, r0, #1, 12
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
000c0 e5821000 str r1, [r2]
; 679 : break;
000c4 ea00005b b |$L14082|
000c8 |$L14093|
; 614 : break;
; 615 :
; 616 : case SYSINTR_UART2:
; 617 : *VIC2_INTCLEAR = INT2_UART2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -