Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
neo-geo:68k-vectors-table [2023/08/03 16:33] – créée frater | neo-geo:68k-vectors-table [2023/08/03 20:34] (Version actuelle) – [Vector list] frater | ||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
Is $C00426 an universal [[BIOS calls|BIOS call]] for a complete reset ? | Is $C00426 an universal [[BIOS calls|BIOS call]] for a complete reset ? | ||
- | =Stack frames= | + | ===== Stack frames ===== |
See [[68k exception handling]]. | See [[68k exception handling]]. | ||
- | ==Format A== | + | ==== Format A ==== |
+ | ^ Offset from SP ^ Size ^ Value ^ | ||
+ | | +0 | Word | Flags | | ||
+ | | +2 | Longword | ||
+ | | +6 | Word | IR | | ||
+ | | +8 | Word | SR | | ||
+ | | +10 | ||
- | {|class=" | ||
- | !Offset from SP | ||
- | !Size | ||
- | !Value | ||
- | |- | ||
- | | +0 | ||
- | |Word | ||
- | |Flags: | ||
- | |- | ||
- | | +2 | ||
- | |Longword | ||
- | |Access address | ||
- | |- | ||
- | | +6 | ||
- | |Word | ||
- | |IR | ||
- | |- | ||
- | | +8 | ||
- | |Word | ||
- | |SR | ||
- | |- | ||
- | | +10 | ||
- | |Longword | ||
- | |PC | ||
- | |} | ||
- | ==Format B== | + | Flags: |
+ | {{tablelayout? | ||
+ | ^ 15 ^ 14 ^ 13 ^ 12 ^ 11 ^ 10 ^ 9 ^ 8 ^ 7 ^ 6 ^ 5 ^ 4 ^ 3 ^ 2 | ||
+ | | | ||
- | {|class=" | + | ==== Format B ==== |
- | !Offset from SP | + | |
- | !Size | + | |
- | !Value | + | |
- | |- | + | |
- | | +0 | + | |
- | |Word | + | |
- | |SR | + | |
- | |- | + | |
- | | +2 | + | |
- | |Longword | + | |
- | |PC | + | |
- | |} | + | |
- | =Vector list= | + | {{tablelayout? |
+ | ^ Offset from SP ^ Size ^ Value ^ | ||
+ | | +0 | Word | SR | | ||
+ | | +2 | Longword | ||
- | {|class=" | + | ===== Vector list ===== |
- | |''' | + | |
- | |''' | + | |
- | |''' | + | |
- | |''' | + | |
- | |''' | + | |
- | |- | + | |
- | |0 | + | |
- | |000000 | + | |
- | |Reset SP | + | |
- | |Not really a vector. Used to initialize the stack pointer. | + | |
- | | | + | |
- | |- | + | |
- | |1 | + | |
- | |000004 | + | |
- | |Reset PC | + | |
- | |Reset/ | + | |
- | | | + | |
- | |- | + | |
- | |2 | + | |
- | |000008 | + | |
- | |Bus error | + | |
- | |Bus cycle couldn' | + | |
- | |A | + | |
- | |- | + | |
- | |3 | + | |
- | |00000C | + | |
- | |Address error | + | |
- | |Misaligned (odd) word or longword memory access. | + | |
- | |A | + | |
- | |- | + | |
- | |4 | + | |
- | |000010 | + | |
- | |Illegal instruction | + | |
- | |Tried executing an invalid opcode. | + | |
- | |B | + | |
- | |- | + | |
- | |5 | + | |
- | |000014 | + | |
- | |Division by zero | + | |
- | |DIVUed or DIVSed by zero. | + | |
- | |B | + | |
- | |- | + | |
- | |6 | + | |
- | |000018 | + | |
- | |CHK instruction | + | |
- | |CHK resulted in "out of bounds" | + | |
- | |B | + | |
- | |- | + | |
- | |7 | + | |
- | |00001C | + | |
- | |TRAPV instruction | + | |
- | |TRAPV with overflow flag set. | + | |
- | |B | + | |
- | |- | + | |
- | |8 | + | |
- | |000020 | + | |
- | |Privilege violation | + | |
- | |Use of privileged instruction. Never happens on the NeoGeo since the 68k always runs in supervisor mode. | + | |
- | |B | + | |
- | |- | + | |
- | |9 | + | |
- | |000024 | + | |
- | |Trace | + | |
- | |After each executed instruction when 68k is in trace mode (debugger function). | + | |
- | |B | + | |
- | |- | + | |
- | |10 | + | |
- | |000028 | + | |
- | |Unimplemented instruction (line A) | + | |
- | |Used to implement 680xx instructions in software. Not used on the NeoGeo. | + | |
- | |B | + | |
- | |- | + | |
- | |11 | + | |
- | |00002C | + | |
- | |Unimplemented instruction (line F) | + | |
- | |Used to implement 680xx instructions in software. Not used on the NeoGeo. | + | |
- | |B | + | |
- | |- | + | |
- | |12 | + | |
- | |000030 | + | |
- | |rowspan=3|Reserved/ | + | |
- | |rowspan=3| | + | |
- | |rowspan=3| | + | |
- | |- | + | |
- | |13 | + | |
- | |000034 | + | |
- | |- | + | |
- | |14 | + | |
- | |000038 | + | |
- | |- | + | |
- | |15 | + | |
- | |00003C | + | |
- | |Uninitialized interrupt vector | + | |
- | |Default vector used by uninitialized peripherals. | + | |
- | |B? | + | |
- | |- | + | |
- | |16 | + | |
- | |000040 | + | |
- | |rowspan=8|Reserved | + | |
- | |rowspan=5| | + | |
- | |rowspan=8| | + | |
- | |- | + | |
- | |17 | + | |
- | |000044 | + | |
- | |- | + | |
- | |18 | + | |
- | |000048 | + | |
- | |- | + | |
- | |19 | + | |
- | |00004C | + | |
- | |- | + | |
- | |20 | + | |
- | |000050 | + | |
- | |- | + | |
- | |21 | + | |
- | |000054 | + | |
- | |rowspan=" | + | |
- | |- | + | |
- | |22 | + | |
- | |000058 | + | |
- | |- | + | |
- | |23 | + | |
- | |00005C | + | |
- | |- | + | |
- | |24 | + | |
- | |000060 | + | |
- | |Spurious interrupt | + | |
- | |No acknowledge from hardware. | + | |
- | | | + | |
- | |- | + | |
- | |25 | + | |
- | |000064 | + | |
- | |Level 1 [[68k interrupts|interrupt]] autovector | + | |
- | |[[68k interrupts|V-Blank]] (cart) / [[Timer interrupt]] (CD). | + | |
- | | | + | |
- | |- | + | |
- | |26 | + | |
- | |000068 | + | |
- | |Level 2 interrupt autovector | + | |
- | |Timer interrupt (cart) / V-Blank (CD). | + | |
- | | | + | |
- | |- | + | |
- | |27 | + | |
- | |00006C | + | |
- | |Level 3 interrupt autovector | + | |
- | |Cold boot (cart). | + | |
- | | | + | |
- | |- | + | |
- | |28 | + | |
- | |000070 | + | |
- | |Level 4 interrupt autovector | + | |
- | |Not used on the NeoGeo. | + | |
- | | | + | |
- | |- | + | |
- | |29 | + | |
- | |000074 | + | |
- | |Level 5 interrupt autovector | + | |
- | |Not used on the NeoGeo. | + | |
- | | | + | |
- | |- | + | |
- | |30 | + | |
- | |000078 | + | |
- | |Level 6 interrupt autovector | + | |
- | |Not used on the NeoGeo. | + | |
- | | | + | |
- | |- | + | |
- | |31 | + | |
- | |00007C | + | |
- | |Level 7 interrupt autovector | + | |
- | |Not used on the NeoGeo. | + | |
- | | | + | |
- | |- | + | |
- | |32 | + | |
- | |000080 | + | |
- | |TRAP #0~15 | + | |
- | |TRAP instructions. | + | |
- | |2 | + | |
- | |- | + | |
- | |48~63 | + | |
- | |0000C0~0000FC | + | |
- | |Reserved/ | + | |
- | | | + | |
- | | | + | |
- | |- | + | |
- | |64~255 | + | |
- | |000100~0003FF | + | |
- | |User interrupt vectors | + | |
- | | | + | |
- | | | + | |
- | |} | + | |
- | =Templates= | ||
- | ==For cartridge systems== | + | {{tablelayout? |
- | <syntaxhighlight> | + | ^ Vector # ^ Address |
+ | | 0 | ||
+ | | 1 | ||
+ | | 2 | ||
+ | | 3 | ||
+ | | 4 | ||
+ | | 5 | ||
+ | | 6 | ||
+ | | 7 | ||
+ | | 8 | ||
+ | | 9 | ||
+ | | 10 | 000028 | ||
+ | | 11 | 00002C | ||
+ | | 12 | 000030 | ||
+ | | 13 | 000034 | ||
+ | | 14 | 000038 | ||
+ | | 15 | 00003C | ||
+ | | 16 | 000040 | ||
+ | | 17 | 000044 | ||
+ | | 18 | 000048 | ||
+ | | 19 | 00004C | ||
+ | | 20 | 000050 | ||
+ | | 21 | 000054 | ||
+ | | 22 | 000058 | ||
+ | | 23 | 00005C | ||
+ | | 24 | 000060 | ||
+ | | 25 | 000064 | ||
+ | | 26 | 000068 | ||
+ | | 27 | 00006C | ||
+ | | 28 | 000070 | ||
+ | | 29 | 000074 | ||
+ | | 30 | 000078 | ||
+ | | 31 | 00007C | ||
+ | | 32 | 000080 | ||
+ | | 48~63 | ||
+ | | 64~255 | ||
+ | ===== Templates ===== | ||
+ | |||
+ | ==== For cartridge systems | ||
+ | <code 68000devpac> | ||
org $0 | org $0 | ||
dc.l $0010F300 | dc.l $0010F300 | ||
Ligne 285: | Ligne 109: | ||
dc.l $FFFFFFFF, | dc.l $FFFFFFFF, | ||
dc.l $FFFFFFFF, | dc.l $FFFFFFFF, | ||
- | </syntaxhighlight> | + | </code> |
- | ==For CD systems== | + | ==== For CD systems |
- | <syntaxhighlight> | + | <code 68000devpac> |
org $0 | org $0 | ||
dc.l $0010F300, | dc.l $0010F300, | ||
Ligne 306: | Ligne 130: | ||
dc.l $00C00426, | dc.l $00C00426, | ||
dc.l $00C00426, | dc.l $00C00426, | ||
- | </syntaxhighlight> | + | </code> |
- | + | ||
- | [[Category: | + | |
- | [[Category: | + |