root/platform/ixus110_sd960/sub/101f/capt_seq.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF926744_my
  3. sub_FF85EEC4_my
  4. exp_drv_task
  5. sub_FF89B23C_my
  6. sub_FF88CB14_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 static long *nrflag = (long*)(0x6418-0x08);  // Found @ ff9266dc & ff9266f8
   7 
   8 #include "../../../generic/capt_seq.c"
   9 
  10 
  11 void __attribute__((naked,noinline)) capt_seq_task() { // sub_FF85EAE4
  12 asm volatile (
  13       "    STMFD   SP!, {R3-R9,LR} \n" 
  14       "    LDR     R6, =0x298C \n" 
  15       "    LDR     R4, =0x14FD4 \n" 
  16       "    MOV     R9, #1 \n" 
  17       "    MOV     R7, #0 \n" 
  18 "loc_FF85EAF8:\n"
  19       "    LDR     R0, [R6, #4] \n" 
  20       "    MOV     R2, #0 \n" 
  21       "    MOV     R1, SP \n" 
  22       "    BL      sub_FF826A0C \n" 
  23       "    TST     R0, #1 \n" 
  24       "    BEQ     loc_FF85EB24 \n" 
  25       "    LDR     R1, =0x588 \n" 
  26       "    LDR     R0, =0xFF85E670 \n" 
  27       "    BL      _DebugAssert \n" 
  28       "    BL      _ExitTask \n" 
  29       "    LDMFD   SP!, {R3-R9,PC} \n" 
  30 "loc_FF85EB24:\n"
  31       "    LDR     R0, [SP] \n" 
  32       "    LDR     R1, [R0] \n" 
  33       "    CMP     R1, #0x1D \n" 
  34       "    ADDLS   PC, PC, R1, LSL #2 \n" 
  35       "    B       loc_FF85EDA0 \n" 
  36       "    B       loc_FF85EBB0 \n" 
  37       "    B       loc_FF85EC14 \n" 
  38       "    B       loc_FF85EC50 \n" 
  39       "    B       loc_FF85EC64 \n" 
  40       "    B       loc_FF85EC5C \n" 
  41       "    B       loc_FF85EC6C \n" 
  42       "    B       loc_FF85EC74 \n" 
  43       "    B       loc_FF85EC7C \n" 
  44       "    B       loc_FF85ECD4 \n" 
  45       "    B       loc_FF85ECFC \n" 
  46       "    B       loc_FF85ECE0 \n" 
  47       "    B       loc_FF85ECEC \n" 
  48       "    B       loc_FF85ECF4 \n" 
  49       "    B       loc_FF85ED04 \n" 
  50       "    B       loc_FF85ED0C \n" 
  51       "    B       loc_FF85ED14 \n" 
  52       "    B       loc_FF85ED1C \n" 
  53       "    B       loc_FF85ED24 \n" 
  54       "    B       loc_FF85ED30 \n" 
  55       "    B       loc_FF85ED38 \n" 
  56       "    B       loc_FF85ED40 \n" 
  57       "    B       loc_FF85ED48 \n" 
  58       "    B       loc_FF85ED50 \n" 
  59       "    B       loc_FF85ED5C \n" 
  60       "    B       loc_FF85ED64 \n" 
  61       "    B       loc_FF85ED6C \n" 
  62       "    B       loc_FF85ED74 \n" 
  63       "    B       loc_FF85ED7C \n" 
  64       "    B       loc_FF85ED88 \n" 
  65       "    B       loc_FF85EDAC \n" 
  66 "loc_FF85EBB0:\n"
  67       "    BL      sub_FF85F404 \n" 
  68 // taken from d10: only do quick press hack if overrides are active
  69 "                BL      captseq_hack_override_active\n"  // + returns 1 if tv or sv override in effect
  70 "                STR     R0,[SP,#-4]!\n"                  // + push return value
  71 "                BL      shooting_expo_param_override\n"  // +
  72       "    BL      sub_FF85C938 \n" 
  73 "                LDR     R0,[SP],#4\n"                    // + pop override hack
  74 "                CMP     R0, #1\n"                        // +
  75 "                MOVEQ   R0, #0\n"                        // +
  76 "                STREQ   R0, [R4,#0x24]\n"                // + fixes overrides behavior at short shutter press
  77 "                LDRNE   R0, [R4,#0x24]\n"                // +
  78 "                CMPNE   R0, #0\n"                        // +
  79 //      "    LDR     R0, [R4, #0x24] \n"                  // -
  80 //      "    CMP     R0, #0 \n"                           // -
  81       "    BEQ     loc_FF85EDAC \n" 
  82       "    BL      sub_FF85E34C \n" 
  83       "    MOV     R5, R0 \n" 
  84       "    LDR     R0, [R4, #0x24] \n" 
  85       "    CMP     R0, #0 \n" 
  86       "    BEQ     loc_FF85EBF8 \n" 
  87       "    MOV     R0, #0xC \n" 
  88       "    BL      sub_FF863420 \n" 
  89       "    TST     R0, #1 \n" 
  90       "    STRNE   R9, [R6, #0x10] \n" 
  91       "    LDRNE   R0, [R5, #8] \n" 
  92       "    ORRNE   R0, R0, #0x40000000 \n" 
  93       "    STRNE   R0, [R5, #8] \n" 
  94       "    BNE     loc_FF85EDAC \n" 
  95 "loc_FF85EBF8:\n"
  96       "    MOV     R0, R5 \n" 
  97       "    BL      sub_FF85E5F0 \n" 
  98       "    MOV     R0, R5 \n" 
  99       "    BL      sub_FF926744_my \n" // ->
 100       "    TST     R0, #1 \n" 
 101       "    STRNE   R9, [R6, #0x10] \n" 
 102       "    B       loc_FF85EDAC \n" 
 103 "loc_FF85EC14:\n"
 104       "    LDR     R0, [R4, #0x24] \n" 
 105       "    CMP     R0, #0 \n" 
 106       "    BNE     loc_FF85EC40 \n" 
 107       "    MOV     R0, #0xC \n" 
 108       "    BL      sub_FF863420 \n" 
 109       "    TST     R0, #1 \n" 
 110       "    LDRNE   R0, [SP] \n" 
 111       "    MOVNE   R1, #1 \n" 
 112       "    LDRNE   R2, [R0, #0xC] \n" 
 113       "    MOVNE   R0, #1 \n" 
 114       "    BNE     loc_FF85ECCC \n" 
 115 "loc_FF85EC40:\n"
 116       "    LDR     R0, [SP] \n" 
 117       "    BL      sub_FF85EEC4_my \n" // ->
 118 "loc_FF85EC48:\n"
 119       "    STR     R7, [R4, #0x24] \n" 
 120       "    B       loc_FF85EDAC \n" 
 121 "loc_FF85EC50:\n"
 122       "    MOV     R0, #1 \n" 
 123       "    BL      sub_FF85F61C \n" 
 124       "    B       loc_FF85EDAC \n" 
 125 "loc_FF85EC5C:\n"
 126       "    BL      sub_FF85F04C \n" 
 127       "    B       loc_FF85EC48 \n" 
 128 "loc_FF85EC64:\n"
 129       "    BL      sub_FF85F3E4 \n" 
 130       "    B       loc_FF85EC48 \n" 
 131 "loc_FF85EC6C:\n"
 132       "    BL      sub_FF85F3EC \n" 
 133       "    B       loc_FF85EDAC \n" 
 134 "loc_FF85EC74:\n"
 135       "    BL      sub_FF85F53C \n" 
 136       "    B       loc_FF85ECD8 \n" 
 137 "loc_FF85EC7C:\n"
 138       "    LDR     R5, [R0, #0xC] \n" 
 139       "    BL      sub_FF85F3F4 \n" 
 140       "    MOV     R0, R5 \n" 
 141       "    BL      sub_FF925724 \n" 
 142       "    TST     R0, #1 \n" 
 143       "    MOV     R8, R0 \n" 
 144       "    BNE     loc_FF85ECBC \n" 
 145       "    BL      sub_FF86F780 \n" 
 146       "    STR     R0, [R5, #0x18] \n" 
 147       "    MOV     R0, R5 \n" 
 148       "    BL      sub_FF92665C \n" 
 149       "    MOV     R0, R5 \n" 
 150       "    BL      sub_FF926A60 \n" 
 151       "    MOV     R8, R0 \n" 
 152       "    LDR     R0, [R5, #0x18] \n" 
 153       "    BL      sub_FF86F994 \n" 
 154 "loc_FF85ECBC:\n"
 155       "    BL      sub_FF85F3E4 \n" 
 156       "    MOV     R2, R5 \n" 
 157       "    MOV     R1, #9 \n" 
 158       "    MOV     R0, R8 \n" 
 159 "loc_FF85ECCC:\n"
 160       "    BL      sub_FF85CE4C \n" 
 161       "    B       loc_FF85EDAC \n" 
 162 "loc_FF85ECD4:\n"
 163       "    BL      sub_FF85F59C \n" 
 164 "loc_FF85ECD8:\n"
 165       "    BL      sub_FF85C938 \n" 
 166       "    B       loc_FF85EDAC \n" 
 167 "loc_FF85ECE0:\n"
 168       "    LDR     R0, [R4, #0x54] \n" 
 169       "    BL      sub_FF85F9B0 \n" 
 170       "    B       loc_FF85EDAC \n" 
 171 "loc_FF85ECEC:\n"
 172       "    BL      sub_FF85FC64 \n" 
 173       "    B       loc_FF85EDAC \n" 
 174 "loc_FF85ECF4:\n"
 175       "    BL      sub_FF85FCF8 \n" 
 176       "    B       loc_FF85EDAC \n" 
 177 "loc_FF85ECFC:\n"
 178       "    BL      sub_FF85F3E4 \n" 
 179       "    B       loc_FF85EDAC \n" 
 180 "loc_FF85ED04:\n"
 181       "    BL      sub_FF925934 \n" 
 182       "    B       loc_FF85EDAC \n" 
 183 "loc_FF85ED0C:\n"
 184       "    BL      sub_FF925B1C \n" 
 185       "    B       loc_FF85EDAC \n" 
 186 "loc_FF85ED14:\n"
 187       "    BL      sub_FF925BAC \n" 
 188       "    B       loc_FF85EDAC \n" 
 189 "loc_FF85ED1C:\n"
 190       "    BL      sub_FF925C60 \n" 
 191       "    B       loc_FF85EDAC \n" 
 192 "loc_FF85ED24:\n"
 193       "    MOV     R0, #0 \n" 
 194       "    BL      sub_FF925E84 \n" 
 195       "    B       loc_FF85EDAC \n" 
 196 "loc_FF85ED30:\n"
 197       "    BL      sub_FF925FBC \n" 
 198       "    B       loc_FF85EDAC \n" 
 199 "loc_FF85ED38:\n"
 200       "    BL      sub_FF92604C \n" 
 201       "    B       loc_FF85EDAC \n" 
 202 "loc_FF85ED40:\n"
 203       "    BL      sub_FF92610C \n" 
 204       "    B       loc_FF85EDAC \n" 
 205 "loc_FF85ED48:\n"
 206       "    BL      sub_FF85F79C \n" 
 207       "    B       loc_FF85EDAC \n" 
 208 "loc_FF85ED50:\n"
 209       "    BL      sub_FF85F83C \n" 
 210       "    BL      sub_FF824A34 \n" 
 211       "    B       loc_FF85EDAC \n" 
 212 "loc_FF85ED5C:\n"
 213       "    BL      sub_FF925D1C \n" 
 214       "    B       loc_FF85EDAC \n" 
 215 "loc_FF85ED64:\n"
 216       "    BL      sub_FF925D88 \n" 
 217       "    B       loc_FF85EDAC \n" 
 218 "loc_FF85ED6C:\n"
 219       "    BL      sub_FF861C30 \n" 
 220       "    B       loc_FF85EDAC \n" 
 221 "loc_FF85ED74:\n"
 222       "    BL      sub_FF861C98 \n" 
 223       "    B       loc_FF85EDAC \n" 
 224 "loc_FF85ED7C:\n"
 225       "    BL      sub_FF861CF4 \n" 
 226       "    BL      sub_FF861CB4 \n" 
 227       "    B       loc_FF85EDAC \n" 
 228 "loc_FF85ED88:\n"
 229       "    MOV     R0, #1 \n" 
 230       "    BL      sub_FF927338 \n" 
 231       "    LDRH    R0, [R4, #0x98] \n" 
 232       "    CMP     R0, #4 \n" 
 233       "    BLNE    sub_FF861F60 \n" 
 234       "    B       loc_FF85EDAC \n" 
 235 "loc_FF85EDA0:\n"
 236       "    LDR     R1, =0x6C9 \n" 
 237       "    LDR     R0, =0xFF85E670 \n" 
 238       "    BL      _DebugAssert \n" 
 239 "loc_FF85EDAC:\n"
 240       "    LDR     R0, [SP] \n" 
 241       "    LDR     R1, [R0, #4] \n" 
 242       "    LDR     R0, [R6] \n" 
 243       "    BL      sub_FF867508 \n" 
 244       "    LDR     R5, [SP] \n" 
 245       "    LDR     R0, [R5, #8] \n" 
 246       "    CMP     R0, #0 \n" 
 247       "    LDREQ   R1, =0x12B \n" 
 248       "    LDREQ   R0, =0xFF85E670 \n" 
 249       "    BLEQ    _DebugAssert \n" 
 250       "    STR     R7, [R5, #8] \n" 
 251       "    B       loc_FF85EAF8 \n" 
 252       );
 253 }
 254 
 255 
 256 void __attribute__((naked,noinline)) sub_FF926744_my(  ) {
 257 asm volatile (
 258       "    STMFD   SP!, {R0-R8,LR} \n" 
 259       "    MOV     R4, R0 \n" 
 260       "    BL      sub_FF9274A8 \n" 
 261       "    MVN     R1, #0 \n" 
 262       "    BL      sub_FF86753C \n" 
 263       "    LDR     R5, =0x6410 \n" 
 264       "    LDR     R0, [R5, #0xC] \n" 
 265       "    CMP     R0, #0 \n" 
 266       "    BNE     loc_FF926794 \n" 
 267       "    MOV     R1, #1 \n" 
 268       "    MOV     R0, #0 \n" 
 269       "    BL      sub_FF827254 \n" 
 270       "    STR     R0, [R5, #0xC] \n" 
 271       "    MOV     R3, #0 \n" 
 272       "    STR     R3, [SP] \n" 
 273       "    LDR     R3, =0xFF9261FC \n" 
 274       "    LDR     R0, =0xFF9269CC \n" 
 275       "    MOV     R2, #0x400 \n" 
 276       "    MOV     R1, #0x17 \n" 
 277       "    BL      sub_FF827220 \n" 
 278 "loc_FF926794:\n"
 279       "    MOV     R2, #4 \n" 
 280       "    ADD     R1, SP, #8 \n" 
 281       "    MOV     R0, #0x8A \n" 
 282       "    BL      sub_FF86F5F0 \n" 
 283       "    TST     R0, #1 \n" 
 284       "    LDRNE   R1, =0x3A7 \n" 
 285       "    LDRNE   R0, =0xFF926494 \n" 
 286       "    BLNE    _DebugAssert \n" 
 287       "    LDR     R8, =0x15098 \n" 
 288       "    LDR     R7, =0x14FD4 \n" 
 289       "    LDRSH   R1, [R8, #0xE] \n" 
 290       "    LDR     R0, [R7, #0x8C] \n" 
 291       "    BL      sub_FF8E66FC \n" 
 292       "    BL      sub_FF8470A4 \n" 
 293       "    LDR     R3, =0x6418 \n" 
 294       "    STRH    R0, [R4, #0x9C] \n" 
 295       "    SUB     R2, R3, #4 \n" 
 296       "    STRD    R2, [SP] \n" 
 297       "    MOV     R1, R0 \n" 
 298       "    LDRH    R0, [R7, #0x5C] \n" 
 299       "    LDRSH   R2, [R8, #0xC] \n" 
 300       "    SUB     R3, R3, #8 \n" 
 301       "    BL      sub_FF928AE0 \n" 
 302 "                BL      wait_until_remote_button_is_released\n" // + untested!
 303 "                BL      capt_seq_hook_set_nr\n" // +
 304       "    LDR PC, =0xff9267f0\n" // jump back to ROM
 305     );
 306 }
 307 
 308 
 309 
 310 void __attribute__((naked,noinline)) sub_FF85EEC4_my(  ) {
 311 asm volatile (
 312       "    STMFD   SP!, {R4-R6,LR} \n" 
 313       "    LDR     R4, [R0, #0xC] \n" 
 314       "    LDR     R6, =0x14FD4 \n" 
 315       "    LDR     R0, [R4, #8] \n" 
 316       "    MOV     R5, #0 \n" 
 317       "    ORR     R0, R0, #1 \n" 
 318       "    STR     R0, [R4, #8] \n" 
 319       "    LDR     R0, [R6, #0x24] \n" 
 320       "    CMP     R0, #0 \n" 
 321       "    MOVEQ   R0, #2 \n" 
 322       "    BLEQ    sub_FF85A064 \n" 
 323       "    BL      sub_FF85F3F4 \n" 
 324       "    LDR     R0, [R6, #0x24] \n" 
 325       "    CMP     R0, #0 \n" 
 326       "    BNE     loc_FF85EF74 \n" 
 327       "    MOV     R0, #0 \n" 
 328       "    BL      sub_FF927338 \n" 
 329       "    MOV     R0, R4 \n" 
 330       "    BL      sub_FF85F744 \n" 
 331       "    MOV     R0, R4 \n" 
 332       "    BL      sub_FF925374 \n" 
 333       "    CMP     R0, #0 \n" 
 334       "    BEQ     loc_FF85EF44 \n" 
 335       "    BL      sub_FF927378 \n" 
 336       "    MOV     R0, R4 \n" 
 337       "    BL      sub_FF925458 \n" 
 338       "    TST     R0, #1 \n" 
 339       "    MOVNE   R2, R4 \n" 
 340       "    LDMNEFD SP!, {R4-R6,LR} \n" 
 341       "    MOVNE   R1, #1 \n" 
 342       "    BNE     sub_FF85CE4C \n" 
 343       "    B       loc_FF85EF50 \n" 
 344 "loc_FF85EF44:\n"
 345       "    MOV     R0, R4 \n" 
 346       "    BL      sub_FF9253F4 \n" 
 347       "    BL      sub_FF927378 \n" 
 348 "loc_FF85EF50:\n"
 349       "    MOV     R0, R4 \n" 
 350       "    BL      sub_FF85E5F0 \n" 
 351       "    MOV     R0, R4 \n" 
 352       "    BL      sub_FF92665C \n" 
 353       "    BL      sub_FF9271C8 \n" 
 354       "    MOV     R0, R4 \n" 
 355       "    BL      sub_FF926744_my \n" // ->
 356       "    MOV     R5, R0 \n" 
 357       "    B       loc_FF85EF84 \n" 
 358 "loc_FF85EF74:\n"
 359       "    LDR     R0, =0x298C \n" 
 360       "    LDR     R0, [R0, #0x10] \n" 
 361       "    CMP     R0, #0 \n" 
 362       "    MOVNE   R5, #0x1D \n" 
 363 "loc_FF85EF84:\n"
 364 "                BL      capt_seq_hook_raw_here\n" // +
 365       "    BL      sub_FF861C98 \n" 
 366       "    BL      sub_FF861CE0 \n" 
 367       "    BL      sub_FF861D20 \n" 
 368       "    MOV     R2, R4 \n" 
 369       "    MOV     R1, #1 \n" 
 370       "    MOV     R0, R5 \n" 
 371       "    BL      sub_FF85CE4C \n" 
 372       "    BL      sub_FF926A04 \n" 
 373       "    CMP     R0, #0 \n" 
 374       "    LDRNE   R0, [R4, #8] \n" 
 375       "    ORRNE   R0, R0, #0x2000 \n" 
 376       "    STRNE   R0, [R4, #8] \n" 
 377       "    LDMFD   SP!, {R4-R6,PC} \n" 
 378     );
 379 }
 380 
 381 
 382 
 383 void __attribute__((naked,noinline)) exp_drv_task() { //sub_FF89D8CC
 384 asm volatile (
 385       "    STMFD   SP!, {R4-R8,LR} \n" 
 386       "    SUB     SP, SP, #0x20 \n" 
 387       "    LDR     R8, =0xBB8 \n" 
 388       "    LDR     R7, =0x3F08 \n" 
 389       "    LDR     R5, =0x19D3C \n" 
 390       "    MOV     R0, #0 \n" 
 391       "    ADD     R6, SP, #0x10 \n" 
 392       "    STR     R0, [SP, #0xC] \n" 
 393 "loc_FF89D8EC:\n"
 394       "    LDR     R0, [R7, #0x20] \n" 
 395       "    MOV     R2, #0 \n" 
 396       "    ADD     R1, SP, #0x1C \n" 
 397       "    BL      sub_FF826A0C \n" 
 398       "    LDR     R0, [SP, #0xC] \n" 
 399       "    CMP     R0, #1 \n" 
 400       "    BNE     loc_FF89D938 \n" 
 401       "    LDR     R0, [SP, #0x1C] \n" 
 402       "    LDR     R0, [R0] \n" 
 403       "    CMP     R0, #0x13 \n" 
 404       "    CMPNE   R0, #0x14 \n" 
 405       "    CMPNE   R0, #0x15 \n" 
 406       "    CMPNE   R0, #0x16 \n" 
 407       "    BEQ     loc_FF89DA54 \n" 
 408       "    CMP     R0, #0x28 \n" 
 409       "    BEQ     loc_FF89DA2C \n" 
 410       "    ADD     R1, SP, #0xC \n" 
 411       "    MOV     R0, #0 \n" 
 412       "    BL      sub_FF89D87C \n" 
 413 "loc_FF89D938:\n"
 414       "    LDR     R0, [SP, #0x1C] \n" 
 415       "    LDR     R1, [R0] \n" 
 416       "    CMP     R1, #0x2D \n" 
 417       "    BNE     loc_FF89D968 \n" 
 418       "    LDR     R0, [SP, #0x1C] \n" 
 419       "    BL      sub_FF89EB80 \n" 
 420       "    LDR     R0, [R7, #0x1C] \n" 
 421       "    MOV     R1, #1 \n" 
 422       "    BL      sub_FF867508 \n" 
 423       "    BL      _ExitTask \n" 
 424       "    ADD     SP, SP, #0x20 \n" 
 425       "    LDMFD   SP!, {R4-R8,PC} \n" 
 426 "loc_FF89D968:\n"
 427       "    CMP     R1, #0x2C \n" 
 428       "    BNE     loc_FF89D984 \n" 
 429       "    LDR     R2, [R0, #0x88]! \n" 
 430       "    LDR     R1, [R0, #4] \n" 
 431       "    MOV     R0, R1 \n" 
 432       "    BLX     R2 \n" 
 433       "    B       loc_FF89DE7C \n" 
 434 "loc_FF89D984:\n"
 435       "    CMP     R1, #0x26 \n" 
 436       "    BNE     loc_FF89D9D4 \n" 
 437       "    LDR     R0, [R7, #0x1C] \n" 
 438       "    MOV     R1, #0x80 \n" 
 439       "    BL      sub_FF86753C \n" 
 440       "    LDR     R0, =0xFF89A1EC \n" 
 441       "    MOV     R1, #0x80 \n" 
 442       "    BL      sub_FF91A1AC \n" 
 443       "    LDR     R0, [R7, #0x1C] \n" 
 444       "    MOV     R2, R8 \n" 
 445       "    MOV     R1, #0x80 \n" 
 446       "    BL      sub_FF867448 \n" 
 447       "    TST     R0, #1 \n" 
 448       "    LDRNE   R1, =0xDC6 \n" 
 449       "    BNE     loc_FF89DA18 \n" 
 450 "loc_FF89D9C0:\n"
 451       "    LDR     R1, [SP, #0x1C] \n" 
 452       "    LDR     R0, [R1, #0x8C] \n" 
 453       "    LDR     R1, [R1, #0x88] \n" 
 454       "    BLX     R1 \n" 
 455       "    B       loc_FF89DE7C \n" 
 456 "loc_FF89D9D4:\n"
 457       "    CMP     R1, #0x27 \n" 
 458       "    BNE     loc_FF89DA24 \n" 
 459       "    ADD     R1, SP, #0xC \n" 
 460       "    BL      sub_FF89D87C \n" 
 461       "    LDR     R0, [R7, #0x1C] \n" 
 462       "    MOV     R1, #0x100 \n" 
 463       "    BL      sub_FF86753C \n" 
 464       "    MOV     R1, #0x100 \n" 
 465       "    LDR     R0, =0xFF89A1FC \n" 
 466       "    BL      sub_FF91A434 \n" 
 467       "    LDR     R0, [R7, #0x1C] \n" 
 468       "    MOV     R2, R8 \n" 
 469       "    MOV     R1, #0x100 \n" 
 470       "    BL      sub_FF867448 \n" 
 471       "    TST     R0, #1 \n" 
 472       "    BEQ     loc_FF89D9C0 \n" 
 473       "    MOV     R1, #0xDD0 \n" 
 474 "loc_FF89DA18:\n"
 475       "    LDR     R0, =0xFF89A82C \n" 
 476       "    BL      _DebugAssert \n" 
 477       "    B       loc_FF89D9C0 \n" 
 478 "loc_FF89DA24:\n"
 479       "    CMP     R1, #0x28 \n" 
 480       "    BNE     loc_FF89DA3C \n" 
 481 "loc_FF89DA2C:\n"
 482       "    LDR     R0, [SP, #0x1C] \n" 
 483       "    ADD     R1, SP, #0xC \n" 
 484       "    BL      sub_FF89D87C \n" 
 485       "    B       loc_FF89D9C0 \n" 
 486 "loc_FF89DA3C:\n"
 487       "    CMP     R1, #0x2B \n" 
 488       "    BNE     loc_FF89DA54 \n" 
 489       "    BL      sub_FF88CDA4 \n" 
 490       "    BL      sub_FF88DA30 \n" 
 491       "    BL      sub_FF88D568 \n" 
 492       "    B       loc_FF89D9C0 \n" 
 493 "loc_FF89DA54:\n"
 494       "    LDR     R0, [SP, #0x1C] \n" 
 495       "    MOV     R4, #1 \n" 
 496       "    LDR     R1, [R0] \n" 
 497       "    CMP     R1, #0x11 \n" 
 498       "    CMPNE   R1, #0x12 \n" 
 499       "    BNE     loc_FF89DAC4 \n" 
 500       "    LDR     R1, [R0, #0x7C] \n" 
 501       "    ADD     R1, R1, R1, LSL #1 \n" 
 502       "    ADD     R1, R0, R1, LSL #2 \n" 
 503       "    SUB     R1, R1, #8 \n" 
 504       "    LDMIA   R1, {R2-R4} \n" 
 505       "    STMIA   R6, {R2-R4} \n" 
 506       "    BL      sub_FF89C2C4 \n" 
 507       "    LDR     R0, [SP, #0x1C] \n" 
 508       "    LDR     R1, [R0, #0x7C] \n" 
 509       "    LDR     R3, [R0, #0x88] \n" 
 510       "    LDR     R2, [R0, #0x8C] \n" 
 511       "    ADD     R0, R0, #4 \n" 
 512       "    BLX     R3 \n" 
 513       "    LDR     R0, [SP, #0x1C] \n" 
 514       "    BL      sub_FF89EF38 \n" 
 515       "    LDR     R0, [SP, #0x1C] \n" 
 516       "    LDR     R1, [R0, #0x7C] \n" 
 517       "    LDR     R3, [R0, #0x90] \n" 
 518       "    LDR     R2, [R0, #0x94] \n" 
 519       "    ADD     R0, R0, #4 \n" 
 520       "    BLX     R3 \n" 
 521       "    B       loc_FF89DDBC \n" 
 522 "loc_FF89DAC4:\n"
 523       "    CMP     R1, #0x13 \n" 
 524       "    CMPNE   R1, #0x14 \n" 
 525       "    CMPNE   R1, #0x15 \n" 
 526       "    CMPNE   R1, #0x16 \n" 
 527       "    BNE     loc_FF89DB7C \n" 
 528       "    ADD     R3, SP, #0xC \n" 
 529       "    MOV     R2, SP \n" 
 530       "    ADD     R1, SP, #0x10 \n" 
 531       "    BL      sub_FF89C508 \n" 
 532       "    CMP     R0, #1 \n" 
 533       "    MOV     R4, R0 \n" 
 534       "    CMPNE   R4, #5 \n" 
 535       "    BNE     loc_FF89DB18 \n" 
 536       "    LDR     R0, [SP, #0x1C] \n" 
 537       "    MOV     R2, R4 \n" 
 538       "    LDR     R1, [R0, #0x7C]! \n" 
 539       "    LDR     R12, [R0, #0xC]! \n" 
 540       "    LDR     R3, [R0, #4] \n" 
 541       "    MOV     R0, SP \n" 
 542       "    BLX     R12 \n" 
 543       "    B       loc_FF89DB50 \n" 
 544 "loc_FF89DB18:\n"
 545       "    LDR     R0, [SP, #0x1C] \n" 
 546       "    CMP     R4, #2 \n" 
 547       "    LDR     R3, [R0, #0x8C] \n" 
 548       "    CMPNE   R4, #6 \n" 
 549       "    BNE     loc_FF89DB64 \n" 
 550       "    LDR     R12, [R0, #0x88] \n" 
 551       "    MOV     R0, SP \n" 
 552       "    MOV     R2, R4 \n" 
 553       "    MOV     R1, #1 \n" 
 554       "    BLX     R12 \n" 
 555       "    LDR     R0, [SP, #0x1C] \n" 
 556       "    MOV     R2, SP \n" 
 557       "    ADD     R1, SP, #0x10 \n" 
 558       "    BL      sub_FF89D564 \n" 
 559 "loc_FF89DB50:\n"
 560       "    LDR     R0, [SP, #0x1C] \n" 
 561       "    LDR     R2, [SP, #0xC] \n" 
 562       "    MOV     R1, R4 \n" 
 563       "    BL      sub_FF89D81C \n" 
 564       "    B       loc_FF89DDBC \n" 
 565 "loc_FF89DB64:\n"
 566       "    LDR     R1, [R0, #0x7C] \n" 
 567       "    LDR     R12, [R0, #0x88] \n" 
 568       "    ADD     R0, R0, #4 \n" 
 569       "    MOV     R2, R4 \n" 
 570       "    BLX     R12 \n" 
 571       "    B       loc_FF89DDBC \n" 
 572 "loc_FF89DB7C:\n"
 573       "    CMP     R1, #0x22 \n" 
 574       "    CMPNE   R1, #0x23 \n" 
 575       "    BNE     loc_FF89DBC8 \n" 
 576       "    LDR     R1, [R0, #0x7C] \n" 
 577       "    ADD     R1, R1, R1, LSL #1 \n" 
 578       "    ADD     R1, R0, R1, LSL #2 \n" 
 579       "    SUB     R1, R1, #8 \n" 
 580       "    LDMIA   R1, {R2-R4} \n" 
 581       "    STMIA   R6, {R2-R4} \n" 
 582       "    BL      sub_FF89B850 \n" 
 583       "    LDR     R0, [SP, #0x1C] \n" 
 584       "    LDR     R1, [R0, #0x7C] \n" 
 585       "    LDR     R3, [R0, #0x88] \n" 
 586       "    LDR     R2, [R0, #0x8C] \n" 
 587       "    ADD     R0, R0, #4 \n" 
 588       "    BLX     R3 \n" 
 589       "    LDR     R0, [SP, #0x1C] \n" 
 590       "    BL      sub_FF89BB40 \n" 
 591       "    B       loc_FF89DDBC \n" 
 592 "loc_FF89DBC8:\n"
 593       "    ADD     R1, R0, #4 \n" 
 594       "    LDMIA   R1, {R2,R3,R12} \n" 
 595       "    STMIA   R6, {R2,R3,R12} \n" 
 596       "    LDR     R1, [R0] \n" 
 597       "    CMP     R1, #0x25 \n" 
 598       "    ADDLS   PC, PC, R1, LSL #2 \n" 
 599       "    B       loc_FF89DD9C \n" 
 600       "    B       loc_FF89DC7C \n" 
 601       "    B       loc_FF89DC7C \n" 
 602       "    B       loc_FF89DC84 \n" 
 603       "    B       loc_FF89DC8C \n" 
 604       "    B       loc_FF89DC8C \n" 
 605       "    B       loc_FF89DC8C \n" 
 606       "    B       loc_FF89DC7C \n" 
 607       "    B       loc_FF89DC84 \n" 
 608       "    B       loc_FF89DC8C \n" 
 609       "    B       loc_FF89DC8C \n" 
 610       "    B       loc_FF89DCA4 \n" 
 611       "    B       loc_FF89DCA4 \n" 
 612       "    B       loc_FF89DD90 \n" 
 613       "    B       loc_FF89DD98 \n" 
 614       "    B       loc_FF89DD98 \n" 
 615       "    B       loc_FF89DD98 \n" 
 616       "    B       loc_FF89DD98 \n" 
 617       "    B       loc_FF89DD9C \n" 
 618       "    B       loc_FF89DD9C \n" 
 619       "    B       loc_FF89DD9C \n" 
 620       "    B       loc_FF89DD9C \n" 
 621       "    B       loc_FF89DD9C \n" 
 622       "    B       loc_FF89DD9C \n" 
 623       "    B       loc_FF89DC94 \n" 
 624       "    B       loc_FF89DC9C \n" 
 625       "    B       loc_FF89DC9C \n" 
 626       "    B       loc_FF89DCB0 \n" 
 627       "    B       loc_FF89DCB0 \n" 
 628       "    B       loc_FF89DCB8 \n" 
 629       "    B       loc_FF89DCE8 \n" 
 630       "    B       loc_FF89DD18 \n" 
 631       "    B       loc_FF89DD48 \n" 
 632       "    B       loc_FF89DD78 \n" 
 633       "    B       loc_FF89DD78 \n" 
 634       "    B       loc_FF89DD9C \n" 
 635       "    B       loc_FF89DD9C \n" 
 636       "    B       loc_FF89DD80 \n" 
 637       "    B       loc_FF89DD88 \n" 
 638 "loc_FF89DC7C:\n"
 639       "    BL      sub_FF89A6D8 \n" 
 640       "    B       loc_FF89DD9C \n" 
 641 "loc_FF89DC84:\n"
 642       "    BL      sub_FF89A94C \n" 
 643       "    B       loc_FF89DD9C \n" 
 644 "loc_FF89DC8C:\n"
 645       "    BL      sub_FF89AB50 \n" 
 646       "    B       loc_FF89DD9C \n" 
 647 "loc_FF89DC94:\n"
 648       "    BL      sub_FF89ADB8 \n" 
 649       "    B       loc_FF89DD9C \n" 
 650 "loc_FF89DC9C:\n"
 651       "    BL      sub_FF89AFAC \n" 
 652       "    B       loc_FF89DD9C \n" 
 653 "loc_FF89DCA4:\n"
 654       "    BL      sub_FF89B23C_my \n" // ->
 655       "    MOV     R4, #0 \n" 
 656       "    B       loc_FF89DD9C \n" 
 657 "loc_FF89DCB0:\n"
 658       "    BL      sub_FF89B378 \n" 
 659       "    B       loc_FF89DD9C \n" 
 660 "loc_FF89DCB8:\n"
 661       "    LDRH    R1, [R0, #4] \n" 
 662       "    STRH    R1, [SP, #0x10] \n" 
 663       "    LDRH    R1, [R5, #2] \n" 
 664       "    STRH    R1, [SP, #0x12] \n" 
 665       "    LDRH    R1, [R5, #4] \n" 
 666       "    STRH    R1, [SP, #0x14] \n" 
 667       "    LDRH    R1, [R5, #6] \n" 
 668       "    STRH    R1, [SP, #0x16] \n" 
 669       "    LDRH    R1, [R0, #0xC] \n" 
 670       "    STRH    R1, [SP, #0x18] \n" 
 671       "    BL      sub_FF89EBF4 \n" 
 672       "    B       loc_FF89DD9C \n" 
 673 "loc_FF89DCE8:\n"
 674       "    LDRH    R1, [R0, #4] \n" 
 675       "    STRH    R1, [SP, #0x10] \n" 
 676       "    LDRH    R1, [R5, #2] \n" 
 677       "    STRH    R1, [SP, #0x12] \n" 
 678       "    LDRH    R1, [R5, #4] \n" 
 679       "    STRH    R1, [SP, #0x14] \n" 
 680       "    LDRH    R1, [R5, #6] \n" 
 681       "    STRH    R1, [SP, #0x16] \n" 
 682       "    LDRH    R1, [R5, #8] \n" 
 683       "    STRH    R1, [SP, #0x18] \n" 
 684       "    BL      sub_FF89ED54 \n" 
 685       "    B       loc_FF89DD9C \n" 
 686 "loc_FF89DD18:\n"
 687       "    LDRH    R1, [R5] \n" 
 688       "    STRH    R1, [SP, #0x10] \n" 
 689       "    LDRH    R1, [R0, #6] \n" 
 690       "    STRH    R1, [SP, #0x12] \n" 
 691       "    LDRH    R1, [R5, #4] \n" 
 692       "    STRH    R1, [SP, #0x14] \n" 
 693       "    LDRH    R1, [R5, #6] \n" 
 694       "    STRH    R1, [SP, #0x16] \n" 
 695       "    LDRH    R1, [R5, #8] \n" 
 696       "    STRH    R1, [SP, #0x18] \n" 
 697       "    BL      sub_FF89EE00 \n" 
 698       "    B       loc_FF89DD9C \n" 
 699 "loc_FF89DD48:\n"
 700       "    LDRH    R1, [R5] \n" 
 701       "    STRH    R1, [SP, #0x10] \n" 
 702       "    LDRH    R1, [R5, #2] \n" 
 703       "    STRH    R1, [SP, #0x12] \n" 
 704       "    LDRH    R1, [R5, #4] \n" 
 705       "    STRH    R1, [SP, #0x14] \n" 
 706       "    LDRH    R1, [R5, #6] \n" 
 707       "    STRH    R1, [SP, #0x16] \n" 
 708       "    LDRH    R1, [R0, #0xC] \n" 
 709       "    STRH    R1, [SP, #0x18] \n" 
 710       "    BL      sub_FF89EEA0 \n" 
 711       "    B       loc_FF89DD9C \n" 
 712 "loc_FF89DD78:\n"
 713       "    BL      sub_FF89B618 \n" 
 714       "    B       loc_FF89DD9C \n" 
 715 "loc_FF89DD80:\n"
 716       "    BL      sub_FF89BC44 \n" 
 717       "    B       loc_FF89DD9C \n" 
 718 "loc_FF89DD88:\n"
 719       "    BL      sub_FF89BE7C \n" 
 720       "    B       loc_FF89DD9C \n" 
 721 "loc_FF89DD90:\n"
 722       "    BL      sub_FF89BFF4 \n" 
 723       "    B       loc_FF89DD9C \n" 
 724 "loc_FF89DD98:\n"
 725       "    BL      sub_FF89C18C \n" 
 726 "loc_FF89DD9C:\n"
 727       "    LDR     R0, [SP, #0x1C] \n" 
 728       "    LDR     R1, [R0, #0x7C] \n" 
 729       "    LDR     R3, [R0, #0x88] \n" 
 730       "    LDR     R2, [R0, #0x8C] \n" 
 731       "    ADD     R0, R0, #4 \n" 
 732       "    BLX     R3 \n" 
 733       "    CMP     R4, #1 \n" 
 734       "    BNE     loc_FF89DE04 \n" 
 735 "loc_FF89DDBC:\n"
 736       "    LDR     R0, [SP, #0x1C] \n" 
 737       "    MOV     R2, #0xC \n" 
 738       "    LDR     R1, [R0, #0x7C] \n" 
 739       "    ADD     R1, R1, R1, LSL #1 \n" 
 740       "    ADD     R0, R0, R1, LSL #2 \n" 
 741       "    SUB     R4, R0, #8 \n" 
 742       "    LDR     R0, =0x19D3C \n" 
 743       "    ADD     R1, SP, #0x10 \n" 
 744       "    BL      sub_FFAE9384 \n" 
 745       "    LDR     R0, =0x19D48 \n" 
 746       "    MOV     R2, #0xC \n" 
 747       "    ADD     R1, SP, #0x10 \n" 
 748       "    BL      sub_FFAE9384 \n" 
 749       "    LDR     R0, =0x19D54 \n" 
 750       "    MOV     R2, #0xC \n" 
 751       "    MOV     R1, R4 \n" 
 752       "    BL      sub_FFAE9384 \n" 
 753       "    B       loc_FF89DE7C \n" 
 754 "loc_FF89DE04:\n"
 755       "    LDR     R0, [SP, #0x1C] \n" 
 756       "    LDR     R0, [R0] \n" 
 757       "    CMP     R0, #0xB \n" 
 758       "    BNE     loc_FF89DE4C \n" 
 759       "    MOV     R3, #0 \n" 
 760       "    STR     R3, [SP] \n" 
 761       "    MOV     R3, #1 \n" 
 762       "    MOV     R2, #1 \n" 
 763       "    MOV     R1, #1 \n" 
 764       "    MOV     R0, #0 \n" 
 765       "    BL      sub_FF89A4E0 \n" 
 766       "    MOV     R3, #0 \n" 
 767       "    STR     R3, [SP] \n" 
 768       "    MOV     R3, #1 \n" 
 769       "    MOV     R2, #1 \n" 
 770       "    MOV     R1, #1 \n" 
 771       "    MOV     R0, #0 \n" 
 772       "    B       loc_FF89DE78 \n" 
 773 "loc_FF89DE4C:\n"
 774       "    MOV     R3, #1 \n" 
 775       "    MOV     R2, #1 \n" 
 776       "    MOV     R1, #1 \n" 
 777       "    MOV     R0, #1 \n" 
 778       "    STR     R3, [SP] \n" 
 779       "    BL      sub_FF89A4E0 \n" 
 780       "    MOV     R3, #1 \n" 
 781       "    MOV     R2, #1 \n" 
 782       "    MOV     R1, #1 \n" 
 783       "    MOV     R0, #1 \n" 
 784       "    STR     R3, [SP] \n" 
 785 "loc_FF89DE78:\n"
 786       "    BL      sub_FF89A620 \n" 
 787 "loc_FF89DE7C:\n"
 788       "    LDR     R0, [SP, #0x1C] \n" 
 789       "    BL      sub_FF89EB80 \n" 
 790       "    B       loc_FF89D8EC \n" 
 791     );
 792 }
 793 
 794 void __attribute__((naked,noinline)) sub_FF89B23C_my(  ) {
 795 asm volatile (
 796       "    STMFD   SP!, {R4-R8,LR} \n" 
 797       "    LDR     R7, =0x3F08 \n" 
 798       "    MOV     R4, R0 \n" 
 799       "    LDR     R0, [R7, #0x1C] \n" 
 800       "    MOV     R1, #0x3E \n" 
 801       "    BL      sub_FF86753C \n" 
 802       "    LDRSH   R0, [R4, #4] \n" 
 803       "    MOV     R2, #0 \n" 
 804       "    MOV     R1, #0 \n" 
 805       "    BL      sub_FF89A270 \n" 
 806       "    MOV     R6, R0 \n" 
 807       "    LDRSH   R0, [R4, #6] \n" 
 808       "    BL      sub_FF89A380 \n" 
 809       "    LDRSH   R0, [R4, #8] \n" 
 810       "    BL      sub_FF89A3D8 \n" 
 811       "    LDRSH   R0, [R4, #0xA] \n" 
 812       "    BL      sub_FF89A430 \n" 
 813       "    LDRSH   R0, [R4, #0xC] \n" 
 814       "    BL      sub_FF89A488 \n" 
 815       "    MOV     R5, R0 \n" 
 816       "    LDR     R0, [R4] \n" 
 817       "    LDR     R8, =0x19D54 \n" 
 818       "    CMP     R0, #0xB \n" 
 819       "    MOVEQ   R6, #0 \n" 
 820       "    MOVEQ   R5, #0 \n" 
 821       "    BEQ     loc_FF89B2CC \n" 
 822       "    CMP     R6, #1 \n" 
 823       "    BNE     loc_FF89B2CC \n" 
 824       "    LDRSH   R0, [R4, #4] \n" 
 825       "    LDR     R1, =0xFF89A1DC \n" 
 826       "    MOV     R2, #2 \n" 
 827       "    BL      sub_FF91A300 \n" 
 828       "    STRH    R0, [R4, #4] \n" 
 829       "    MOV     R0, #0 \n" 
 830       "    STR     R0, [R7, #0x28] \n" 
 831       "    B       loc_FF89B2D4 \n" 
 832 "loc_FF89B2CC:\n"
 833       "    LDRH    R0, [R8] \n" 
 834       "    STRH    R0, [R4, #4] \n" 
 835 "loc_FF89B2D4:\n"
 836       "    CMP     R5, #1 \n" 
 837       "    LDRNEH  R0, [R8, #8] \n" 
 838       "    BNE     loc_FF89B2F0 \n" 
 839       "    LDRSH   R0, [R4, #0xC] \n" 
 840       "    LDR     R1, =0xFF89A260 \n" 
 841       "    MOV     R2, #0x20 \n" 
 842       "    BL      sub_FF89EBB0 \n" 
 843 "loc_FF89B2F0:\n"
 844       "    STRH    R0, [R4, #0xC] \n" 
 845       "    LDRSH   R0, [R4, #6] \n" 
 846       "    BL      sub_FF88CB14_my \n" // ->
 847       "    LDR PC, =0xff89b2fc\n"   // jump back to ROM
 848 /*      "    LDRSH   R0, [R4, #8] \n" 
 849       "    MOV     R1, #1 \n" 
 850       "    BL      sub_FF88D260 \n" 
 851       "    MOV     R1, #0 \n" 
 852       "    ADD     R0, R4, #8 \n" 
 853       "    BL      sub_FF88D2E8 \n" 
 854       "    LDRSH   R0, [R4, #0xE] \n" 
 855       "    BL      sub_FF895CE0 \n" 
 856       "    LDR     R4, =0xBB8 \n" 
 857       "    CMP     R6, #1 \n" 
 858       "    BNE     loc_FF89B348 \n" 
 859       "    LDR     R0, [R7, #0x1C] \n" 
 860       "    MOV     R2, R4 \n" 
 861       "    MOV     R1, #2 \n" 
 862       "    BL      sub_FF867448 \n" 
 863       "    TST     R0, #1 \n" 
 864       "    LDRNE   R1, =0x583 \n" 
 865       "    LDRNE   R0, =0xFF89A82C \n" 
 866       "    BLNE    _DebugAssert \n" 
 867 "loc_FF89B348:\n"
 868       "    CMP     R5, #1 \n" 
 869       "    LDMNEFD SP!, {R4-R8,PC} \n" 
 870       "    LDR     R0, [R7, #0x1C] \n" 
 871       "    MOV     R2, R4 \n" 
 872       "    MOV     R1, #0x20 \n" 
 873       "    BL      sub_FF867448 \n" 
 874       "    TST     R0, #1 \n" 
 875       "    LDRNE   R1, =0x588 \n" 
 876       "    LDRNE   R0, =0xFF89A82C \n" 
 877       "    LDMNEFD SP!, {R4-R8,LR} \n" 
 878       "    BNE     _DebugAssert \n" 
 879       "    LDMFD   SP!, {R4-R8,PC} \n" */
 880     );
 881 }
 882 
 883 
 884 void __attribute__((naked,noinline)) sub_FF88CB14_my(  ) {
 885 asm volatile (
 886       "    STMFD   SP!, {R4-R6,LR} \n" 
 887       "    LDR     R5, =0x3C04 \n" 
 888       "    MOV     R4, R0 \n" 
 889       "    LDR     R0, [R5, #4] \n" 
 890       "    CMP     R0, #1 \n" 
 891       "    MOVNE   R1, #0x140 \n" 
 892       "    LDRNE   R0, =0xFF88C918 \n" 
 893       "    BLNE    _DebugAssert \n" 
 894       "    CMN     R4, #0xC00 \n" 
 895       "    LDREQSH R4, [R5, #2] \n" 
 896       "    CMN     R4, #0xC00 \n" 
 897       "    LDREQ   R1, =0x146 \n" 
 898       "    LDREQ   R0, =0xFF88C918 \n" 
 899       "    STRH    R4, [R5, #2] \n" 
 900       "    BLEQ    _DebugAssert \n" 
 901       "    MOV     R0, R4 \n" 
 902 "                BL      apex2us\n" // +
 903       "    LDR PC, =0xff88cb64\n"   // jump back to ROM
 904 /*
 905 //      "    BL      sub_FF9BAAC0 \n" 
 906 //      "    MOV     R4, R0 \n" 
 907 //      "    BL      sub_FF8B32A4 \n" 
 908 //      "    MOV     R0, R4 \n" 
 909       "    BL      sub_FF8B6CB4 \n" 
 910       "    TST     R0, #1 \n" 
 911       "    LDRNE   R1, =0x14B \n" 
 912       "    LDMNEFD SP!, {R4-R6,LR} \n" 
 913       "    LDRNE   R0, =0xFF88C918 \n" 
 914       "    BNE     _DebugAssert \n" 
 915       "    LDMFD   SP!, {R4-R6,PC} \n" */
 916     );
 917 }
 918 

/* [<][>][^][v][top][bottom][index][help] */