Nintendo 1504166 Programming Manual - Page 165

AGB System Calls, 17.1 System Call Operation, 17.1.1 Normal Calls

Page 165 highlights

AGB Programming Manual AGB System Calls 17 AGB System Calls Please refer to the AGB System Call Reference Manual for AGB system calls. 17.1 System Call Operation 17.1.1 Normal Calls 1) When an argument is required for the system call used, after writing to registers R0-R3 call the monitor ROM system call with the "SWI". The CPU mode changes to Supervisor Mode. 2) Save the registers, SPSR_svc (formerly CPSR), R 11, R12, LR_svc (formerly PC) to the system call stack with the monitor ROM. 03007F00 USR Stack 03007FA0 SP_usr 03007F00 IRQ Stack SP_irq 03007FE0 SVC Stack 4 WORDS SP_svc 03007FA0 3) Switch from CPU mode to system mode. Call the IRQ disable flag with monitor ROM. The previous status will continue. 4) Save the R2 and LR_usr registers to the user stack. Other registers will be saved with each system call. 03007F00 USR Stack LR_usr R2 Save with each System Call SP_usr 03007FA0 03007F00 IRQ Stack SP_irq 03007FE0 SVC Stack 4 WORDS SP_svc 03007FA0 5) Complete processing using each system call. 03007F00 USR Stack 03007FA0 SP_usr 03007F00 IRQ Stack SP_irq 03007FE0 SVC Stack 4 WORDS SP_svc 03007FA0 ©1999 - 2001 Nintendo of America Inc. 165 D.C.N. AGB-06-0001-002B4

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171

AGB Programming Manual
AGB System Calls
©1999 - 2001 Nintendo of America Inc.
165
D.C.N. AGB-06-0001-002B4
17 AGB System Calls
Please refer to the AGB System Call Reference Manual for AGB system calls.
17.1 System Call Operation
17.1.1 Normal Calls
1) When an argument is required for the system call used, after writing to
registers R0-R3 call the monitor ROM system call with the
“SWI<Number>”.
The CPU mode changes to Supervisor Mode.
2) Save the registers, SPSR_svc (formerly CPSR), R 11, R12, LR_svc
(formerly PC) to the system call stack with the monitor ROM.
SP_usr
SP_irq
03007FA0
03007F00
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
SP_svc
3) Switch from CPU mode to system mode.
Call the IRQ disable flag with
monitor ROM.
The previous status will continue.
4) Save the R2 and LR_usr registers to the user stack.
Other registers will
be saved with each system call.
LR_usr
SP_irq
SP_usr
Save with each
System Call
03007FA0
03007F00
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
R2
SP_svc
5) Complete processing using each system call.
SP_usr
SP_irq
03007FA0
03007F00
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
SP_svc