Nintendo 1504166 Programming Manual - Page 168

Return value to registers R0, R1, and R3, in cases where a system, call provides a return value

Page 168 highlights

AGB Programming Manual AGB System Calls 7) Monitor ROM does the system call operation (1), and loads to the system call stack. 03007F00 USR Stack LR_usr R2 Save with each System Call User Interrupt Processing SP_usr 03007FA0 03007F00 IRQ Stack 6 WORDS SP_irq 03007FE0 03007FA0 SVC Stack 4 WORDS 4 WORDS SP_svc 8) Switch the CPU Mode to System Mode (privileged user mode). 9) Monitor ROM does the same operation as (3), and loads to the user stack. 03007F00 USR Stack LR_usr R2 Save with each System Call User Interrupt Processing LR_usr R2 Save with each System Call SP_usr 03007FA0 03007F00 IRQ Stack 6 WORDS SP_irq 03007FE0 SVC Stack 4 WORDS 4 WORDS SP_svc 03007FA0 10) Complete processing with each system call. 03007F00 USR Stack LR_usr R2 Save with each System Call User Interrupt Processing SP_usr 03007FA0 03007F00 IRQ Stack 6 WORDS SP_irq 03007FE0 03007FA0 SVC Stack 4 WORDS 4 WORDS SP_svc 11) Return value to registers R0, R1, and R3, in cases where a system call provides a return value, and then return to the user interrupt processing. 03007F00 USR Stack LR_usr R2 Save with each System Call User Interrupt Processing SP_usr 03007FA0 03007F00 IRQ Stack 6 WORDS SP_irq 03007FE0 03007FA0 SVC Stack 4 WORDS SP_svc ©1999 - 2001 Nintendo of America Inc. 168 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.
168
D.C.N. AGB-06-0001-002B4
7) Monitor ROM does the system call operation (1), and loads to the
system call stack.
LR_usr
SP_svc
SP_usr
User Interrupt
Processing
6 WORDS
Save with each
System Call
03007FA0
03007F00
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
R2
4 WORDS
SP_irq
8) Switch the CPU Mode to System Mode (privileged user mode).
9) Monitor ROM does the same operation as (3), and loads to the user
stack.
LR_usr
User Interrupt
Processing
Save with each
System Call
R2
6 WORDS
03007FA0
03007F00
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
4 WORDS
SP_usr
SP_irq
SP_svc
LR_usr
Save with each
System Call
R2
10) Complete processing with each system call.
LR_usr
SP_svc
SP_usr
User Interrupt
Processing
6 WORDS
Save with each
System Call
03007FA0
03007F00
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
R2
4 WORDS
SP_irq
11) Return value to registers R0, R1, and R3, in cases where a system
call provides a return value, and then return to the user interrupt
processing.
LR_usr
SP_usr
6 WORDS
03007FA0
03007F00
IRQ Stack
SVC Stack
USR Stack
4 WORDS
03007FE0
03007FA0
User Interrupt
Processing
Save with each
System Call
03007F00
R2
SP_irq
SP_svc