Difference between revisions of "PM Bios"

From SublabWiki
Jump to: navigation, search
m (The IRQ Vector Table)
(The IRQ Vector Table)
Line 11: Line 11:
 
!IRQ
 
!IRQ
 
!Cart IRQ
 
!Cart IRQ
 +
!IRQ Group
 
!Hardware Strobe
 
!Hardware Strobe
 
!Description
 
!Description
Line 16: Line 17:
 
|$00
 
|$00
 
|0
 
|0
|
+
| style="border:none;" colspan="2"|
 
|Reset
 
|Reset
 
|-
 
|-
 
|$01
 
|$01
 +
|
 
|
 
|
 
|
 
|
Line 25: Line 27:
 
|-
 
|-
 
|$02
 
|$02
 +
|
 
|
 
|
 
|
 
|
Line 31: Line 34:
 
|$03
 
|$03
 
|1
 
|1
 +
|$20[7..6]
 
|$27,7
 
|$27,7
 
|[[PM PRC|PRC Copy]]
 
|[[PM PRC|PRC Copy]]
Line 36: Line 40:
 
|$04
 
|$04
 
|2
 
|2
 +
|$20[7..6]
 
|$27,6
 
|$27,6
 
|[[PM PRC|PRC Render]]
 
|[[PM PRC|PRC Render]]
Line 41: Line 46:
 
|$05
 
|$05
 
|3
 
|3
 +
|$20[5..4]
 
|$27,5
 
|$27,5
 
|Timer2 Upper-8 Underflow
 
|Timer2 Upper-8 Underflow
Line 46: Line 52:
 
|$06
 
|$06
 
|4
 
|4
 +
|$20[5..4]
 
|$27,4
 
|$27,4
 
|Timer2 Lower-8 Underflow (8-bit only)
 
|Timer2 Lower-8 Underflow (8-bit only)
Line 51: Line 58:
 
|$07
 
|$07
 
|5
 
|5
 +
|$20[3..2]
 
|$27,3
 
|$27,3
 
|Timer1 Upper-8 Underflow
 
|Timer1 Upper-8 Underflow
Line 56: Line 64:
 
|$08
 
|$08
 
|6
 
|6
 +
|$20[3..2]
 
|$27,2
 
|$27,2
 
|Timer1 Lower-8 Underflow (8-bit only)
 
|Timer1 Lower-8 Underflow (8-bit only)
Line 61: Line 70:
 
|$09
 
|$09
 
|7
 
|7
 +
|$20[1..0]
 
|$27,1
 
|$27,1
 
|Timer3 Upper-8 Underflow
 
|Timer3 Upper-8 Underflow
Line 66: Line 76:
 
|$0A
 
|$0A
 
|8
 
|8
 +
|$20[1..0]
 
|$27,0
 
|$27,0
 
|Timer3 Pivot
 
|Timer3 Pivot
Line 71: Line 82:
 
|$0B
 
|$0B
 
|9
 
|9
 +
|$21[7..6]
 
|$28,5
 
|$28,5
 
|32hz
 
|32hz
Line 76: Line 88:
 
|$0C
 
|$0C
 
|10
 
|10
 +
|$21[7..6]
 
|$28,4
 
|$28,4
 
|8hz
 
|8hz
Line 81: Line 94:
 
|$0D
 
|$0D
 
|11
 
|11
 +
|$21[7..6]
 
|$28,3
 
|$28,3
 
|2hz
 
|2hz
Line 86: Line 100:
 
|$0E
 
|$0E
 
|12
 
|12
 +
|$21[7..6]
 
|$28,2
 
|$28,2
 
|1hz
 
|1hz
Line 91: Line 106:
 
|$0F
 
|$0F
 
|13
 
|13
 +
|$22[1..0]
 
|$2A,7
 
|$2A,7
 
|IR Receiver
 
|IR Receiver
Line 96: Line 112:
 
|$10
 
|$10
 
|14
 
|14
 +
|$22[1..0]
 
|$2A,6
 
|$2A,6
 
|Shock Sensor
 
|Shock Sensor
 
|-
 
|-
 
|$11
 
|$11
 +
|
 
|
 
|
 
|$2A,5
 
|$2A,5
Line 105: Line 123:
 
|-
 
|-
 
|$12
 
|$12
 +
|
 
|
 
|
 
|$2A,4
 
|$2A,4
Line 110: Line 129:
 
|-
 
|-
 
|$13
 
|$13
|
+
| style="border:none;"|
 +
|$21[5..4]
 
|$28,1
 
|$28,1
 
|Cartridge Ejected
 
|Cartridge Ejected
Line 116: Line 136:
 
|$14
 
|$14
 
|26
 
|26
 +
|$21[5..4]
 
|$28,0
 
|$28,0
 
|Cartridge IRQ
 
|Cartridge IRQ
Line 121: Line 142:
 
|$15
 
|$15
 
|15
 
|15
 +
|$21[3..2]
 
|$29,7
 
|$29,7
 
|Power Key
 
|Power Key
Line 126: Line 148:
 
|$16
 
|$16
 
|16
 
|16
 +
|$21[3..2]
 
|$29,6
 
|$29,6
 
|Right Key
 
|Right Key
Line 131: Line 154:
 
|$17
 
|$17
 
|17
 
|17
 +
|$21[3..2]
 
|$29,5
 
|$29,5
 
|Left Key
 
|Left Key
Line 136: Line 160:
 
|$18
 
|$18
 
|18
 
|18
 +
|$21[3..2]
 
|$29,4
 
|$29,4
 
|Down Key
 
|Down Key
Line 141: Line 166:
 
|$19
 
|$19
 
|19
 
|19
 +
|$21[3..2]
 
|$29,3
 
|$29,3
 
|Up Key
 
|Up Key
Line 146: Line 172:
 
|$1A
 
|$1A
 
|20
 
|20
 +
|$21[3..2]
 
|$29,2
 
|$29,2
 
|C Key
 
|C Key
Line 151: Line 178:
 
|$1B
 
|$1B
 
|21
 
|21
 +
|$21[3..2]
 
|$29,1
 
|$29,1
 
|B Key
 
|B Key
Line 156: Line 184:
 
|$1C
 
|$1C
 
|22
 
|22
 +
|$21[3..2]
 
|$29,0
 
|$29,0
 
|A Key
 
|A Key
Line 161: Line 190:
 
|$1D
 
|$1D
 
|23
 
|23
 +
|
 
|$2A,2
 
|$2A,2
 
|
 
|
Line 166: Line 196:
 
|$1E
 
|$1E
 
|24
 
|24
 +
|
 
|$2A,1
 
|$2A,1
 
|
 
|
Line 171: Line 202:
 
|$1F
 
|$1F
 
|25
 
|25
 +
|
 
|$2A,0
 
|$2A,0
 
|
 
|
 
|-
 
|-
 
|$20
 
|$20
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$21
 
|$21
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$22
 
|$22
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$23
 
|$23
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$24
 
|$24
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$25
 
|$25
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$26
 
|$26
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$27
 
|$27
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$28
 
|$28
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$29
 
|$29
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$2A
 
|$2A
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$2B
 
|$2B
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$2C
 
|$2C
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$2D
 
|$2D
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$2E
 
|$2E
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$2F
 
|$2F
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$30
 
|$30
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$31
 
|$31
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$32
 
|$32
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$33
 
|$33
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$34
 
|$34
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$35
 
|$35
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$36
 
|$36
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$37
 
|$37
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$38
 
|$38
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$39
 
|$39
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$3A
 
|$3A
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$3B
 
|$3B
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$3C
 
|$3C
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$3D
 
|$3D
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$3E
 
|$3E
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$3F
 
|$3F
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$40
 
|$40
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$41
 
|$41
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$42
 
|$42
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$43
 
|$43
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$44
 
|$44
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$45
 
|$45
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$46
 
|$46
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$47
 
|$47
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$48
 
|$48
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$49
 
|$49
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$4A
 
|$4A
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$4B
 
|$4B
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$4C
 
|$4C
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$4D
 
|$4D
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$4E
 
|$4E
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$4F
 
|$4F
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$50
 
|$50
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$51
 
|$51
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$52
 
|$52
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$53
 
|$53
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$54
 
|$54
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$55
 
|$55
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$56
 
|$56
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$57
 
|$57
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$58
 
|$58
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$59
 
|$59
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$5A
 
|$5A
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$5B
 
|$5B
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$5C
 
|$5C
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$5D
 
|$5D
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$5E
 
|$5E
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$5F
 
|$5F
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$60
 
|$60
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$61
 
|$61
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$62
 
|$62
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$63
 
|$63
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$64
 
|$64
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$65
 
|$65
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$66
 
|$66
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$67
 
|$67
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$68
 
|$68
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$69
 
|$69
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$6A
 
|$6A
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$6B
 
|$6B
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$6C
 
|$6C
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$6D
 
|$6D
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$6E
 
|$6E
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$6F
 
|$6F
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$70
 
|$70
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$71
 
|$71
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$72
 
|$72
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$73
 
|$73
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$74
 
|$74
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$75
 
|$75
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$76
 
|$76
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$77
 
|$77
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$78
 
|$78
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$79
 
|$79
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$7A
 
|$7A
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$7B
 
|$7B
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$7C
 
|$7C
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$7D
 
|$7D
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$7E
 
|$7E
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|-
 
|-
 
|$7F
 
|$7F
|
+
| colspan="3" style="border:none;"|
|
 
 
|
 
|
 
|}
 
|}

Revision as of 15:29, 27 May 2008

The BIOS Overview

The internal BIOS consists of a 4kB program image built to initialize the system, bring it out of sleep and various other system specific tasks. Since the Pokemon Mini is never technically off, only suspended, BIOS is used for tasks like enabling power to the system and responding to various at rest IRQs.

The BIOS image begins with a 256 byte IRQ vector table, consisting of 128 16-bit vectors. The system reserves 32 vectors for hardware IRQs, the rest are used for software calls. It is worth noting that all IRQs are latched on the rising edge of an event, so button presses and IR receive is only latched when the IR receiver is active 1 or if a button has been press, but not released.

The IRQ Vector Table

Bios IRQ Vector Table
IRQ Cart IRQ IRQ Group Hardware Strobe Description
$00 0 Reset
$01
$02
$03 1 $20[7..6] $27,7 PRC Copy
$04 2 $20[7..6] $27,6 PRC Render
$05 3 $20[5..4] $27,5 Timer2 Upper-8 Underflow
$06 4 $20[5..4] $27,4 Timer2 Lower-8 Underflow (8-bit only)
$07 5 $20[3..2] $27,3 Timer1 Upper-8 Underflow
$08 6 $20[3..2] $27,2 Timer1 Lower-8 Underflow (8-bit only)
$09 7 $20[1..0] $27,1 Timer3 Upper-8 Underflow
$0A 8 $20[1..0] $27,0 Timer3 Pivot
$0B 9 $21[7..6] $28,5 32hz
$0C 10 $21[7..6] $28,4 8hz
$0D 11 $21[7..6] $28,3 2hz
$0E 12 $21[7..6] $28,2 1hz
$0F 13 $22[1..0] $2A,7 IR Receiver
$10 14 $22[1..0] $2A,6 Shock Sensor
$11 $2A,5
$12 $2A,4
$13 $21[5..4] $28,1 Cartridge Ejected
$14 26 $21[5..4] $28,0 Cartridge IRQ
$15 15 $21[3..2] $29,7 Power Key
$16 16 $21[3..2] $29,6 Right Key
$17 17 $21[3..2] $29,5 Left Key
$18 18 $21[3..2] $29,4 Down Key
$19 19 $21[3..2] $29,3 Up Key
$1A 20 $21[3..2] $29,2 C Key
$1B 21 $21[3..2] $29,1 B Key
$1C 22 $21[3..2] $29,0 A Key
$1D 23 $2A,2
$1E 24 $2A,1
$1F 25 $2A,0
$20
$21
$22
$23
$24
$25
$26
$27
$28
$29
$2A
$2B
$2C
$2D
$2E
$2F
$30
$31
$32
$33
$34
$35
$36
$37
$38
$39
$3A
$3B
$3C
$3D
$3E
$3F
$40
$41
$42
$43
$44
$45
$46
$47
$48
$49
$4A
$4B
$4C
$4D
$4E
$4F
$50
$51
$52
$53
$54
$55
$56
$57
$58
$59
$5A
$5B
$5C
$5D
$5E
$5F
$60
$61
$62
$63
$64
$65
$66
$67
$68
$69
$6A
$6B
$6C
$6D
$6E
$6F
$70
$71
$72
$73
$74
$75
$76
$77
$78
$79
$7A
$7B
$7C
$7D
$7E
$7F