gps/GPSResources/tcpmp 0.73/asap/Pocket PC 2003 (ARMV4)/Release/pokeysnd.asm

2298 lines
52 KiB
NASM
Raw Permalink Normal View History

2019-05-01 12:32:35 +00:00
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727
TTL d:\MyProject\VS2005\Tcpmp\tcpmp\asap\atari800\src\pokeysnd.c
CODE32
AREA |.drectve|, DRECTVE
DCB "-defaultlib:LIBCMT "
DCB "-defaultlib:OLDNAMES "
EXPORT |snd_playback_freq| [ DATA ]
EXPORT |snd_num_pokeys| [ DATA ]
EXPORT |enable_new_pokey| [ DATA ]
EXPORT |Pokey_process_ptr| [ DATA ]
EXPORT |Update_pokey_sound| [ DATA ]
AREA |.bss|, NOINIT
|P4| % 0x4
|P5| % 0x4
|P9| % 0x4
|P17| % 0x4
|snd_flags| % 0x4
|mz_quality| % 0x4
AREA |.data|, DATA
|bit4| DCB 0x1
DCB 0x1
DCB 0x1
DCB 0x1
DCB 0x0
DCB 0x0
DCB 0x0
DCB 0x1
DCB 0x0
DCB 0x0
DCB 0x1
DCB 0x1
DCB 0x0
DCB 0x1
DCB 0x0
|snd_num_pokeys| DCB 0x1
|bit5| DCB 0x1
DCB 0x1
DCB 0x1
DCB 0x1
DCB 0x0
DCB 0x1
DCB 0x1
DCB 0x0
DCB 0x1
DCB 0x0
DCB 0x0
DCB 0x1
DCB 0x1
DCB 0x0
DCB 0x0
DCB 0x0
DCB 0x0
DCB 0x0
DCB 0x1
DCB 0x1
DCB 0x1
DCB 0x0
DCB 0x0
DCB 0x1
DCB 0x0
DCB 0x0
DCB 0x0
DCB 0x1
DCB 0x0
DCB 0x1
DCB 0x0
% 1
|snd_freq17| DCD 0x1b4f5e
|snd_playback_freq| DCD 0xac44
|enable_new_pokey| DCD 0x1
|Pokey_process_ptr| DCD |null_pokey_process|
|Update_pokey_sound| DCD |null_pokey_sound|
AREA |.pdata|, PDATA
|$T1408| DCD |$LN5@null_pokey|
DCD 0x40000403
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|null_pokey_process| PROC
; File d:\myproject\vs2005\tcpmp\tcpmp\asap\atari800\src\pokeysnd.c
; Line 163
|$LN5@null_pokey|
mov r12, sp
stmdb sp!, {r0, r1}
stmdb sp!, {r12, lr}
|$M1405|
ldmia sp, {sp, pc}
|$M1406|
ENDP ; |null_pokey_process|
AREA |.pdata|, PDATA
|$T1413| DCD |$LN5@null_pokey@2|
DCD 0x40000403
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|null_pokey_sound| PROC
; Line 167
|$LN5@null_pokey@2|
mov r12, sp
stmdb sp!, {r0 - r3}
stmdb sp!, {r12, lr}
|$M1410|
ldmia sp, {sp, pc}
|$M1411|
ENDP ; |null_pokey_sound|
EXPORT |Pokey_DoInit|
IMPORT |Pokey_sound_init_mz|
AREA |.pdata|, PDATA
|$T1420| DCD |$LN7@Pokey_DoIn|
DCD 0x40003002
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_DoInit| PROC
; Line 238
|$LN7@Pokey_DoIn|
str lr, [sp, #-4]!
sub sp, sp, #0x14
|$M1417|
; Line 239
ldr r3, [pc, #0xAC]
ldr r3, [r3]
cmp r3, #0
beq |$LN2@Pokey_DoIn|
; Line 245
ldr r3, [pc, #0x98]
ldr r3, [r3]
str r3, [sp]
ldr r3, [pc, #0x88]
ldr r3, [r3]
ldr r2, [pc, #0x7C]
ldrb r2, [r2]
ldr r1, [pc, #0x70]
ldr r1, [r1]
mov r1, r1, lsl #16
mov r1, r1, lsr #16
ldr r0, [pc, #0x5C]
ldr r0, [r0]
bl Pokey_sound_init_mz
str r0, [sp, #0xC]
ldr r3, [sp, #0xC]
str r3, [sp, #8]
b |$LN3@Pokey_DoIn|
; Line 246
b |$LN1@Pokey_DoIn|
|$LN2@Pokey_DoIn|
; Line 248
ldr r3, [pc, #0x48]
ldr r3, [r3]
ldr r2, [pc, #0x3C]
ldrb r2, [r2]
ldr r1, [pc, #0x30]
ldr r1, [r1]
mov r1, r1, lsl #16
mov r1, r1, lsr #16
ldr r0, [pc, #0x1C]
ldr r0, [r0]
bl Pokey_sound_init_rf
str r0, [sp, #0x10]
ldr r3, [sp, #0x10]
str r3, [sp, #8]
|$LN1@Pokey_DoIn|
|$LN3@Pokey_DoIn|
; Line 249
ldr r0, [sp, #8]
add sp, sp, #0x14
ldr pc, [sp], #4
|$LN8@Pokey_DoIn|
DCD |snd_freq17|
DCD |snd_playback_freq|
DCD |snd_num_pokeys|
DCD |snd_flags|
DCD |mz_quality|
DCD |enable_new_pokey|
|$M1418|
ENDP ; |Pokey_DoInit|
EXPORT |Pokey_sound_init|
AREA |.pdata|, PDATA
|$T1427| DCD |$LN5@Pokey_soun|
DCD 0x40001c04
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_sound_init| PROC
; Line 257
|$LN5@Pokey_soun|
mov r12, sp
stmdb sp!, {r0 - r3}
stmdb sp!, {r12, lr}
sub sp, sp, #8
|$M1424|
; Line 258
ldr r2, [sp, #0x10]
ldr r3, [pc, #0x50]
str r2, [r3]
; Line 259
ldrh r3, [sp, #0x14]
mov r2, r3
ldr r3, [pc, #0x3C]
str r2, [r3]
; Line 260
ldrb r2, [sp, #0x18]
ldr r3, [pc, #0x2C]
strb r2, [r3]
; Line 261
ldr r2, [sp, #0x1C]
ldr r3, [pc, #0x1C]
str r2, [r3]
; Line 266
bl Pokey_DoInit
str r0, [sp, #4]
ldr r3, [sp, #4]
str r3, [sp]
; Line 267
ldr r0, [sp]
add sp, sp, #8
ldmia sp, {sp, pc}
|$LN6@Pokey_soun|
DCD |snd_flags|
DCD |snd_num_pokeys|
DCD |snd_playback_freq|
DCD |snd_freq17|
|$M1425|
ENDP ; |Pokey_sound_init|
EXPORT |Pokey_set_mzquality|
AREA |.pdata|, PDATA
|$T1433| DCD |$LN5@Pokey_set_|
DCD 0x40000803
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_set_mzquality| PROC
; Line 270
|$LN5@Pokey_set_|
mov r12, sp
stmdb sp!, {r0}
stmdb sp!, {r12, lr}
|$M1430|
; Line 271
ldr r2, [sp, #8]
ldr r3, [pc, #4]
str r2, [r3]
; Line 272
ldmia sp, {sp, pc}
|$LN6@Pokey_set_|
DCD |mz_quality|
|$M1431|
ENDP ; |Pokey_set_mzquality|
EXPORT |Pokey_process|
AREA |.pdata|, PDATA
|$T1439| DCD |$LN5@Pokey_proc|
DCD 0x40000b03
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_process| PROC
; Line 275
|$LN5@Pokey_proc|
mov r12, sp
stmdb sp!, {r0, r1}
stmdb sp!, {r12, lr}
|$M1436|
; Line 276
ldr r1, [sp, #0xC]
ldr r0, [sp, #8]
ldr r3, [pc, #0xC]
ldr r3, [r3]
mov lr, pc
mov pc, r3
; Line 280
ldmia sp, {sp, pc}
|$LN6@Pokey_proc|
DCD |Pokey_process_ptr|
|$M1437|
ENDP ; |Pokey_process|
IMPORT |__imp___rt_udiv|
AREA |.bss|, NOINIT
|Num_pokeys| % 0x1
|AUDV| % 0x8
|Div_n_max| % 0x20
|Div_n_cnt| % 0x20
|Outbit| % 0x8
|Outvol| % 0x8
|Samp_n_cnt| % 0x8
|Samp_n_max| % 0x4
AREA |.pdata|, PDATA
|$T1450| DCD |$LN10@Pokey_soun@2|
DCD 0x40007404
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_sound_init_rf| PROC
; Line 284
|$LN10@Pokey_soun@2|
mov r12, sp
stmdb sp!, {r0 - r3}
stmdb sp!, {r12, lr}
sub sp, sp, #0xC
|$M1447|
; Line 287
ldr r2, [pc, #0x1B4]
ldr r3, [pc, #0x1AC]
str r2, [r3]
; Line 298
ldr r3, [sp, #0x20]
tst r3, #1
beq |$LN6@Pokey_soun@2|
ldr r3, [pc, #0x194]
str r3, [sp, #8]
b |$LN7@Pokey_soun@2|
|$LN6@Pokey_soun@2|
ldr r3, [pc, #0x184]
str r3, [sp, #8]
|$LN7@Pokey_soun@2|
ldr r2, [sp, #8]
ldr r3, [pc, #0x174]
str r2, [r3]
; Line 305
ldr r2, [pc, #0x168]
mov r3, #0
str r3, [r2]
; Line 306
ldr r2, [pc, #0x158]
mov r3, #0
str r3, [r2]
; Line 307
ldr r2, [pc, #0x148]
mov r3, #0
str r3, [r2]
; Line 308
ldr r2, [pc, #0x138]
mov r3, #0
str r3, [r2]
; Line 311
ldr r3, [sp, #0x14]
mov r1, r3, lsl #8
ldrh r0, [sp, #0x18]
ldr r3, [pc, #0x11C]
ldr r3, [r3]
mov lr, pc
mov pc, r3
ldr r3, [pc, #0x108]
str r0, [r3]
; Line 313
ldr r2, [pc, #0xFC]
mov r3, #0
str r3, [r2]
; Line 314
ldr r2, [pc, #0xF0]
mov r3, #0
str r3, [r2, #4]
; Line 316
mov r3, #0
strb r3, [sp]
b |$LN3@Pokey_soun@2|
|$LN2@Pokey_soun@2|
ldrb r3, [sp]
add r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp]
|$LN3@Pokey_soun@2|
ldrb r3, [sp]
cmp r3, #8
bge |$LN1@Pokey_soun@2|
; Line 317
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0xB0]
add r2, r3, r2
mov r3, #0
strb r3, [r2]
; Line 318
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x94]
add r2, r3, r2
mov r3, #0
strb r3, [r2]
; Line 319
ldrb r3, [sp]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x70]
add r2, r3, r2
mov r3, #0
str r3, [r2]
; Line 320
ldrb r3, [sp]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x4C]
add r2, r3, r2
mvn r3, #2, 2
str r3, [r2]
; Line 321
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x30]
add r2, r3, r2
mov r3, #0
strb r3, [r2]
; Line 325
b |$LN2@Pokey_soun@2|
|$LN1@Pokey_soun@2|
; Line 328
ldrb r2, [sp, #0x1C]
ldr r3, [pc, #0x14]
strb r2, [r3]
; Line 330
mov r3, #0
str r3, [sp, #4]
; Line 331
ldr r0, [sp, #4]
add sp, sp, #0xC
ldmia sp, {sp, pc}
|$LN11@Pokey_soun@2|
DCD |Num_pokeys|
DCD |AUDV|
DCD |Div_n_max|
DCD |Div_n_cnt|
DCD |Outbit|
DCD |Outvol|
DCD |Samp_n_cnt|
DCD |Samp_n_max|
DCD |__imp___rt_udiv|
DCD |P17|
DCD |P9|
DCD |P5|
DCD |P4|
DCD |Pokey_process_ptr|
DCD |Pokey_process_8|
DCD |Pokey_process_16|
DCD |Update_pokey_sound|
DCD |Update_pokey_sound_rf|
|$M1448|
ENDP ; |Pokey_sound_init_rf|
IMPORT |AUDC|
IMPORT |Base_mult|
IMPORT |AUDF|
IMPORT |AUDCTL|
AREA |.pdata|, PDATA
|$T1458| DCD |$LN55@Update_pok|
DCD 0x40024404
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Update_pokey_sound_rf| PROC
; Line 355
|$LN55@Update_pok|
mov r12, sp
stmdb sp!, {r0 - r3}
stmdb sp!, {r12, lr}
sub sp, sp, #0x10
|$M1455|
; Line 356
mov r3, #0
str r3, [sp, #4]
; Line 362
ldrb r3, [sp, #0x20]
mov r3, r3, lsl #2
and r3, r3, #0xFF
strb r3, [sp]
; Line 365
ldrh r3, [sp, #0x18]
and r3, r3, #0xF
str r3, [sp, #0xC]
ldr r3, [sp, #0xC]
cmp r3, #8
bhi |$LN35@Update_pok|
ldr r2, [sp, #0xC]
mov r3, r2, lsl #2
add r3, r3, pc
ldr r3, [r3, #4]
add pc, pc, r3
|$LN52@Update_pok|
|$LN51@Update_pok|
DCD 0x20
DCD 0x58
DCD 0x8c
DCD 0x98
DCD 0xcc
DCD 0x104
DCD 0x138
DCD 0x144
DCD 0x178
|$LN46@Update_pok|
; Line 368
mov r3, #1
strb r3, [sp, #8]
; Line 369
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x868]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x10
beq |$LN45@Update_pok|
; Line 370
ldrb r3, [sp, #8]
orr r3, r3, #2
and r3, r3, #0xFF
strb r3, [sp, #8]
|$LN45@Update_pok|
; Line 371
b |$LN47@Update_pok|
|$LN44@Update_pok|
; Line 374
ldrb r3, [sp, #0x1C]
and r2, r3, #0xF
ldrb r3, [sp, #0x24]
mul r1, r2, r3
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x83C]
add r2, r3, r2
and r3, r1, #0xFF
strb r3, [r2]
; Line 375
mov r3, #1
strb r3, [sp, #8]
; Line 376
b |$LN47@Update_pok|
|$LN43@Update_pok|
; Line 379
mov r3, #2
strb r3, [sp, #8]
; Line 380
b |$LN47@Update_pok|
|$LN42@Update_pok|
; Line 383
ldrb r3, [sp, #0x1C]
and r2, r3, #0xF
ldrb r3, [sp, #0x24]
mul r1, r2, r3
ldrb r3, [sp]
add r2, r3, #1
ldr r3, [pc, #0x7FC]
add r2, r3, r2
and r3, r1, #0xFF
strb r3, [r2]
; Line 384
mov r3, #2
strb r3, [sp, #8]
; Line 385
b |$LN47@Update_pok|
|$LN41@Update_pok|
; Line 388
mov r3, #4
strb r3, [sp, #8]
; Line 389
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x7BC]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #8
beq |$LN40@Update_pok|
; Line 390
ldrb r3, [sp, #8]
orr r3, r3, #8
and r3, r3, #0xFF
strb r3, [sp, #8]
|$LN40@Update_pok|
; Line 391
b |$LN47@Update_pok|
|$LN39@Update_pok|
; Line 394
ldrb r3, [sp, #0x1C]
and r2, r3, #0xF
ldrb r3, [sp, #0x24]
mul r1, r2, r3
ldrb r3, [sp]
add r2, r3, #2
ldr r3, [pc, #0x790]
add r2, r3, r2
and r3, r1, #0xFF
strb r3, [r2]
; Line 395
mov r3, #4
strb r3, [sp, #8]
; Line 396
b |$LN47@Update_pok|
|$LN38@Update_pok|
; Line 399
mov r3, #8
strb r3, [sp, #8]
; Line 400
b |$LN47@Update_pok|
|$LN37@Update_pok|
; Line 403
ldrb r3, [sp, #0x1C]
and r2, r3, #0xF
ldrb r3, [sp, #0x24]
mul r1, r2, r3
ldrb r3, [sp]
add r2, r3, #3
ldr r3, [pc, #0x750]
add r2, r3, r2
and r3, r1, #0xFF
strb r3, [r2]
; Line 404
mov r3, #8
strb r3, [sp, #8]
; Line 405
b |$LN47@Update_pok|
|$LN36@Update_pok|
; Line 408
mov r3, #0xF
strb r3, [sp, #8]
; Line 409
b |$LN47@Update_pok|
|$LN35@Update_pok|
; Line 411
mov r3, #0
strb r3, [sp, #8]
|$LN47@Update_pok|
; Line 425
ldrb r3, [sp, #8]
tst r3, #1
beq |$LN34@Update_pok|
; Line 427
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x6F8]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x40
beq |$LN33@Update_pok|
; Line 428
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x6EC]
add r3, r3, r2
ldrb r3, [r3]
add r3, r3, #4
str r3, [sp, #4]
; Line 429
b |$LN32@Update_pok|
|$LN33@Update_pok|
; Line 430
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x6CC]
add r3, r3, r2
ldrb r3, [r3]
add r0, r3, #1
ldrb r3, [sp, #0x20]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x6A8]
add r3, r3, r2
ldr r3, [r3]
mul r3, r0, r3
str r3, [sp, #4]
|$LN32@Update_pok|
; Line 432
ldrb r3, [sp]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x674]
add r3, r3, r2
ldr r2, [sp, #4]
ldr r3, [r3]
cmp r2, r3
beq |$LN31@Update_pok|
; Line 433
ldrb r3, [sp]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x64C]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
; Line 435
ldrb r3, [sp]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x628]
add r3, r3, r2
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bls |$LN30@Update_pok|
; Line 436
ldrb r3, [sp]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x600]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
|$LN30@Update_pok|
|$LN31@Update_pok|
|$LN34@Update_pok|
; Line 441
ldrb r3, [sp, #8]
tst r3, #2
beq |$LN29@Update_pok|
; Line 443
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x5E4]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x10
beq |$LN28@Update_pok|
; Line 444
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x5C8]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x40
beq |$LN27@Update_pok|
; Line 446
ldrb r3, [sp]
add r2, r3, #1
ldr r3, [pc, #0x5BC]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
mov r3, #1, 24
mul r1, r2, r3
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x59C]
add r3, r3, r2
ldrb r3, [r3]
add r3, r1, r3
add r3, r3, #7
str r3, [sp, #4]
; Line 447
b |$LN26@Update_pok|
|$LN27@Update_pok|
; Line 449
ldrb r3, [sp]
add r2, r3, #1
ldr r3, [pc, #0x578]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
mov r3, #1, 24
mul r1, r2, r3
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x558]
add r3, r3, r2
ldrb r3, [r3]
add r3, r1, r3
add r0, r3, #1
ldrb r3, [sp, #0x20]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x530]
add r3, r3, r2
ldr r3, [r3]
mul r3, r0, r3
str r3, [sp, #4]
|$LN26@Update_pok|
; Line 451
b |$LN25@Update_pok|
|$LN28@Update_pok|
; Line 452
ldrb r3, [sp]
add r2, r3, #1
ldr r3, [pc, #0x514]
add r3, r3, r2
ldrb r3, [r3]
add r0, r3, #1
ldrb r3, [sp, #0x20]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x4F0]
add r3, r3, r2
ldr r3, [r3]
mul r3, r0, r3
str r3, [sp, #4]
|$LN25@Update_pok|
; Line 454
ldrb r3, [sp]
add r1, r3, #1
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x4BC]
add r3, r3, r2
ldr r2, [sp, #4]
ldr r3, [r3]
cmp r2, r3
beq |$LN24@Update_pok|
; Line 455
ldrb r3, [sp]
add r1, r3, #1
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x494]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
; Line 457
ldrb r3, [sp]
add r1, r3, #1
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x470]
add r3, r3, r2
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bls |$LN23@Update_pok|
; Line 458
ldrb r3, [sp]
add r1, r3, #1
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x448]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
|$LN23@Update_pok|
|$LN24@Update_pok|
|$LN29@Update_pok|
; Line 463
ldrb r3, [sp, #8]
tst r3, #4
beq |$LN22@Update_pok|
; Line 465
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x42C]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x20
beq |$LN21@Update_pok|
; Line 466
ldrb r3, [sp]
add r2, r3, #2
ldr r3, [pc, #0x420]
add r3, r3, r2
ldrb r3, [r3]
add r3, r3, #4
str r3, [sp, #4]
; Line 467
b |$LN20@Update_pok|
|$LN21@Update_pok|
; Line 468
ldrb r3, [sp]
add r2, r3, #2
ldr r3, [pc, #0x400]
add r3, r3, r2
ldrb r3, [r3]
add r0, r3, #1
ldrb r3, [sp, #0x20]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x3DC]
add r3, r3, r2
ldr r3, [r3]
mul r3, r0, r3
str r3, [sp, #4]
|$LN20@Update_pok|
; Line 470
ldrb r3, [sp]
add r1, r3, #2
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x3A8]
add r3, r3, r2
ldr r2, [sp, #4]
ldr r3, [r3]
cmp r2, r3
beq |$LN19@Update_pok|
; Line 471
ldrb r3, [sp]
add r1, r3, #2
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x380]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
; Line 473
ldrb r3, [sp]
add r1, r3, #2
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x35C]
add r3, r3, r2
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bls |$LN18@Update_pok|
; Line 474
ldrb r3, [sp]
add r1, r3, #2
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x334]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
|$LN18@Update_pok|
|$LN19@Update_pok|
|$LN22@Update_pok|
; Line 479
ldrb r3, [sp, #8]
tst r3, #8
beq |$LN17@Update_pok|
; Line 481
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x318]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #8
beq |$LN16@Update_pok|
; Line 482
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x2FC]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x20
beq |$LN15@Update_pok|
; Line 484
ldrb r3, [sp]
add r2, r3, #3
ldr r3, [pc, #0x2F0]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
mov r3, #1, 24
mul r1, r2, r3
ldrb r3, [sp]
add r2, r3, #2
ldr r3, [pc, #0x2D0]
add r3, r3, r2
ldrb r3, [r3]
add r3, r1, r3
add r3, r3, #7
str r3, [sp, #4]
; Line 485
b |$LN14@Update_pok|
|$LN15@Update_pok|
; Line 487
ldrb r3, [sp]
add r2, r3, #3
ldr r3, [pc, #0x2AC]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
mov r3, #1, 24
mul r1, r2, r3
ldrb r3, [sp]
add r2, r3, #2
ldr r3, [pc, #0x28C]
add r3, r3, r2
ldrb r3, [r3]
add r3, r1, r3
add r0, r3, #1
ldrb r3, [sp, #0x20]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x264]
add r3, r3, r2
ldr r3, [r3]
mul r3, r0, r3
str r3, [sp, #4]
|$LN14@Update_pok|
; Line 489
b |$LN13@Update_pok|
|$LN16@Update_pok|
; Line 490
ldrb r3, [sp]
add r2, r3, #3
ldr r3, [pc, #0x248]
add r3, r3, r2
ldrb r3, [r3]
add r0, r3, #1
ldrb r3, [sp, #0x20]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x224]
add r3, r3, r2
ldr r3, [r3]
mul r3, r0, r3
str r3, [sp, #4]
|$LN13@Update_pok|
; Line 492
ldrb r3, [sp]
add r1, r3, #3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x1F0]
add r3, r3, r2
ldr r2, [sp, #4]
ldr r3, [r3]
cmp r2, r3
beq |$LN12@Update_pok|
; Line 493
ldrb r3, [sp]
add r1, r3, #3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x1C8]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
; Line 495
ldrb r3, [sp]
add r1, r3, #3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x1A4]
add r3, r3, r2
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bls |$LN11@Update_pok|
; Line 496
ldrb r3, [sp]
add r1, r3, #3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x17C]
add r2, r3, r2
ldr r3, [sp, #4]
str r3, [r2]
|$LN11@Update_pok|
|$LN12@Update_pok|
|$LN17@Update_pok|
; Line 502
mov r3, #0
strb r3, [sp, #9]
b |$LN10@Update_pok|
|$LN9@Update_pok|
ldrb r3, [sp, #9]
add r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp, #9]
|$LN10@Update_pok|
ldrb r3, [sp, #9]
cmp r3, #3
bgt |$LN8@Update_pok|
; Line 503
ldrb r3, [sp, #8]
mov r1, r3
ldrb r3, [sp, #9]
mov r2, r3
mov r3, #1
mov r3, r3, lsl r2
tst r1, r3
beq |$LN7@Update_pok|
; Line 576
ldrb r3, [sp, #9]
mov r2, r3
ldrb r3, [sp]
add r2, r2, r3
ldr r3, [pc, #0x124]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x10
bne |$LN5@Update_pok|
ldrb r3, [sp, #9]
mov r2, r3
ldrb r3, [sp]
add r2, r2, r3
ldr r3, [pc, #0x100]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0xF
bne |$LN6@Update_pok|
|$LN5@Update_pok|
; Line 578
ldrb r3, [sp, #9]
mov r2, r3
ldrb r3, [sp]
add r2, r2, r3
ldr r3, [pc, #0xD8]
add r2, r3, r2
mov r3, #1
strb r3, [r2]
; Line 590
ldrb r3, [sp, #9]
cmp r3, #2
bne |$LN2@Update_pok|
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0xB0]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #4
beq |$LN3@Update_pok|
|$LN2@Update_pok|
ldrb r3, [sp, #9]
cmp r3, #3
bne |$LN1@Update_pok|
ldrb r3, [sp, #0x20]
mov r2, r3
ldr r3, [pc, #0x88]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #2
beq |$LN3@Update_pok|
|$LN1@Update_pok|
ldrb r3, [sp, #9]
cmp r3, #0
beq |$LN3@Update_pok|
ldrb r3, [sp, #9]
cmp r3, #1
bne |$LN4@Update_pok|
|$LN3@Update_pok|
; Line 592
ldrb r3, [sp, #9]
mov r2, r3
ldrb r3, [sp]
add r1, r2, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x40]
add r2, r3, r2
mvn r3, #2, 2
str r3, [r2]
; Line 593
ldrb r3, [sp, #9]
mov r2, r3
ldrb r3, [sp]
add r1, r2, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x14]
add r2, r3, r2
mvn r3, #2, 2
str r3, [r2]
|$LN4@Update_pok|
|$LN6@Update_pok|
|$LN7@Update_pok|
; Line 597
b |$LN9@Update_pok|
|$LN8@Update_pok|
; Line 600
add sp, sp, #0x10
ldmia sp, {sp, pc}
|$LN56@Update_pok|
DCD |Div_n_cnt|
DCD |Div_n_max|
DCD |AUDCTL|
DCD |Outvol|
DCD |AUDC|
DCD |Base_mult|
DCD |AUDF|
DCD |AUDV|
|$M1456|
ENDP ; |Update_pokey_sound_rf|
IMPORT |poly17_lookup|
IMPORT |poly9_lookup|
AREA |.pdata|, PDATA
|$T1480| DCD |$LN72@Pokey_proc@2|
DCD 0x40031704
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_process_8| PROC
; Line 622
|$LN72@Pokey_proc@2|
mov r12, sp
stmdb sp!, {r0, r1}
stmdb sp!, {r12, lr}
sub sp, sp, #0x4C
|$M1477|
; Line 623
ldr r3, [sp, #0x54]
str r3, [sp, #0x20]
; Line 624
ldr r3, [sp, #0x58]
mov r3, r3, lsl #16
mov r3, r3, lsr #16
strh r3, [sp, #0xE]
; Line 651
ldr r3, [pc, #0xBE8]
add r3, r3, #1
str r3, [sp, #8]
; Line 655
ldr r3, [pc, #0xBE8]
str r3, [sp, #0x18]
; Line 656
ldr r3, [pc, #0xBDC]
str r3, [sp, #0x24]
; Line 661
mov r3, #0
strb r3, [sp, #0x1E]
; Line 666
mov r3, #0
strb r3, [sp, #0x14]
; Line 669
ldr r3, [pc, #0xBB8]
ldrb r3, [r3]
strb r3, [sp]
|$LN55@Pokey_proc@2|
; Line 671
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN52@Pokey_proc@2|
; Line 672
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN52@Pokey_proc@2|
; Line 673
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 675
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN51@Pokey_proc@2|
; Line 676
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN51@Pokey_proc@2|
; Line 677
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 679
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN50@Pokey_proc@2|
; Line 680
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN50@Pokey_proc@2|
; Line 681
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 683
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN49@Pokey_proc@2|
; Line 684
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN49@Pokey_proc@2|
; Line 685
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 691
ldrb r3, [sp]
sub r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp]
; Line 692
ldrb r3, [sp]
cmp r3, #0
beq |$LN48@Pokey_proc@2|
; Line 693
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN47@Pokey_proc@2|
; Line 694
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
|$LN47@Pokey_proc@2|
; Line 695
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 697
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN46@Pokey_proc@2|
; Line 698
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
|$LN46@Pokey_proc@2|
; Line 699
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 701
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN45@Pokey_proc@2|
; Line 702
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
|$LN45@Pokey_proc@2|
; Line 703
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 705
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
ldr r3, [sp, #0x18]
add r3, r3, #1
str r3, [sp, #0x18]
beq |$LN44@Pokey_proc@2|
; Line 706
ldr r3, [sp, #0x24]
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
|$LN44@Pokey_proc@2|
; Line 707
ldr r3, [sp, #0x24]
add r3, r3, #1
str r3, [sp, #0x24]
; Line 709
b |$LN43@Pokey_proc@2|
|$LN48@Pokey_proc@2|
; Line 710
b |$LN53@Pokey_proc@2|
|$LN43@Pokey_proc@2|
; Line 713
ldrb r3, [sp]
sub r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp]
; Line 714
ldrb r3, [sp]
cmp r3, #0
bne |$LN55@Pokey_proc@2|
|$LN53@Pokey_proc@2|
|$LN42@Pokey_proc@2|
; Line 722
ldrh r3, [sp, #0xE]
cmp r3, #0
beq |$LN41@Pokey_proc@2|
; Line 730
mov r3, #0x7F
strb r3, [sp, #0xC]
; Line 731
ldr r3, [sp, #8]
ldrb r3, [r3]
mov r2, r3
ldr r3, [sp, #8]
add r3, r3, #1
ldrb r3, [r3]
mov r3, r3, lsl #8
orr r2, r2, r3
ldr r3, [sp, #8]
add r3, r3, #2
ldrb r3, [r3]
mov r3, r3, lsl #16
orr r2, r2, r3
ldr r3, [sp, #8]
add r3, r3, #3
ldrb r3, [r3]
mov r3, r3, lsl #24
orr r3, r2, r3
str r3, [sp, #4]
; Line 733
ldr r3, [pc, #0x928]
str r3, [sp, #0x10]
; Line 735
mov r3, #0
strb r3, [sp]
|$LN40@Pokey_proc@2|
; Line 738
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bhi |$LN37@Pokey_proc@2|
; Line 739
ldr r3, [sp, #0x10]
ldr r3, [r3]
str r3, [sp, #4]
; Line 740
ldrb r3, [sp]
mov r3, r3, lsl #2
and r3, r3, #0xFF
strb r3, [sp, #0xC]
|$LN37@Pokey_proc@2|
; Line 742
ldr r3, [sp, #0x10]
add r3, r3, #4
str r3, [sp, #0x10]
; Line 743
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bhi |$LN36@Pokey_proc@2|
; Line 744
ldr r3, [sp, #0x10]
ldr r3, [r3]
str r3, [sp, #4]
; Line 745
ldrb r3, [sp]
mov r3, r3, lsl #2
add r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp, #0xC]
|$LN36@Pokey_proc@2|
; Line 747
ldr r3, [sp, #0x10]
add r3, r3, #4
str r3, [sp, #0x10]
; Line 748
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bhi |$LN35@Pokey_proc@2|
; Line 749
ldr r3, [sp, #0x10]
ldr r3, [r3]
str r3, [sp, #4]
; Line 750
ldrb r3, [sp]
mov r3, r3, lsl #2
add r3, r3, #2
and r3, r3, #0xFF
strb r3, [sp, #0xC]
|$LN35@Pokey_proc@2|
; Line 752
ldr r3, [sp, #0x10]
add r3, r3, #4
str r3, [sp, #0x10]
; Line 753
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
cmp r2, r3
bhi |$LN34@Pokey_proc@2|
; Line 754
ldr r3, [sp, #0x10]
ldr r3, [r3]
str r3, [sp, #4]
; Line 755
ldrb r3, [sp]
mov r3, r3, lsl #2
add r3, r3, #3
and r3, r3, #0xFF
strb r3, [sp, #0xC]
|$LN34@Pokey_proc@2|
; Line 757
ldr r3, [sp, #0x10]
add r3, r3, #4
str r3, [sp, #0x10]
; Line 759
ldrb r3, [sp]
add r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp]
; Line 760
ldrb r3, [sp]
mov r2, r3
ldr r3, [pc, #0x7C8]
ldrb r3, [r3]
cmp r2, r3
blt |$LN40@Pokey_proc@2|
; Line 763
ldrb r3, [sp, #0xC]
cmp r3, #0x7F
beq |$LN33@Pokey_proc@2|
; Line 766
ldr r3, [pc, #0x7AC]
ldrb r3, [r3]
strb r3, [sp]
|$LN32@Pokey_proc@2|
; Line 770
ldr r3, [sp, #0x10]
sub r3, r3, #4
str r3, [sp, #0x10]
; Line 771
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
sub r2, r2, r3
ldr r3, [sp, #0x10]
str r2, [r3]
; Line 772
ldr r3, [sp, #0x10]
sub r3, r3, #4
str r3, [sp, #0x10]
; Line 773
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
sub r2, r2, r3
ldr r3, [sp, #0x10]
str r2, [r3]
; Line 774
ldr r3, [sp, #0x10]
sub r3, r3, #4
str r3, [sp, #0x10]
; Line 775
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
sub r2, r2, r3
ldr r3, [sp, #0x10]
str r2, [r3]
; Line 776
ldr r3, [sp, #0x10]
sub r3, r3, #4
str r3, [sp, #0x10]
; Line 777
ldr r3, [sp, #0x10]
ldr r2, [r3]
ldr r3, [sp, #4]
sub r2, r2, r3
ldr r3, [sp, #0x10]
str r2, [r3]
; Line 779
ldrb r3, [sp]
sub r3, r3, #1
and r3, r3, #0xFF
strb r3, [sp]
; Line 780
ldrb r3, [sp]
cmp r3, #0
bne |$LN32@Pokey_proc@2|
; Line 783
ldr r3, [sp, #8]
ldrb r3, [r3]
mov r2, r3
ldr r3, [sp, #8]
add r3, r3, #1
ldrb r3, [r3]
mov r3, r3, lsl #8
orr r2, r2, r3
ldr r3, [sp, #8]
add r3, r3, #2
ldrb r3, [r3]
mov r3, r3, lsl #16
orr r2, r2, r3
ldr r3, [sp, #8]
add r3, r3, #3
ldrb r3, [r3]
mov r3, r3, lsl #24
orr r2, r2, r3
ldr r3, [sp, #4]
sub r3, r2, r3
str r3, [sp, #0x28]
ldr r3, [sp, #0x28]
and r3, r3, #0xFF
and r2, r3, #0xFF
ldr r3, [sp, #8]
strb r2, [r3]
ldr r3, [sp, #0x28]
mov r3, r3, lsl #16
mov r1, r3, lsr #24
ldr r3, [sp, #8]
add r2, r3, #1
and r3, r1, #0xFF
strb r3, [r2]
ldr r3, [sp, #0x28]
mov r3, r3, lsl #8
mov r1, r3, lsr #24
ldr r3, [sp, #8]
add r2, r3, #2
and r3, r1, #0xFF
strb r3, [r2]
ldr r3, [sp, #0x28]
mov r1, r3, lsr #24
ldr r3, [sp, #8]
add r2, r3, #3
and r3, r1, #0xFF
strb r3, [r2]
; Line 790
ldr r3, [pc, #0x664]
ldr r2, [r3]
ldr r3, [sp, #4]
add r1, r2, r3
mov r0, #0xF
ldr r3, [pc, #0x66C]
ldr r3, [r3]
mov lr, pc
mov pc, r3
ldr r3, [pc, #0x640]
str r1, [r3]
; Line 791
ldr r3, [pc, #0x640]
ldr r2, [r3]
ldr r3, [sp, #4]
add r1, r2, r3
mov r0, #0x1F
ldr r3, [pc, #0x640]
ldr r3, [r3]
mov lr, pc
mov pc, r3
ldr r3, [pc, #0x61C]
str r1, [r3]
; Line 792
ldr r3, [pc, #0x604]
ldr r2, [r3]
ldr r3, [sp, #4]
add r1, r2, r3
mov r0, #1, 24
orr r0, r0, #0xFF
ldr r3, [pc, #0x610]
ldr r3, [r3]
mov lr, pc
mov pc, r3
ldr r3, [pc, #0x5DC]
str r1, [r3]
; Line 793
ldr r3, [pc, #0x5CC]
ldr r2, [r3]
ldr r3, [sp, #4]
add r1, r2, r3
mvn r0, #0xFF, 8
eor r0, r0, #0xFE, 16
ldr r3, [pc, #0x5E0]
ldr r3, [r3]
mov lr, pc
mov pc, r3
ldr r3, [pc, #0x5A4]
str r1, [r3]
; Line 796
ldrb r3, [sp, #0xC]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x5B0]
add r0, r3, r2
ldrb r3, [sp, #0xC]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x59C]
add r3, r3, r2
ldr r2, [r0]
ldr r3, [r3]
add r0, r2, r3
ldrb r3, [sp, #0xC]
mov r1, r3
mov r3, #4
mul r2, r1, r3
ldr r3, [pc, #0x574]
add r3, r3, r2
str r0, [r3]
; Line 799
ldrb r3, [sp, #0xC]
mov r2, r3
ldr r3, [pc, #0x55C]
add r3, r3, r2
ldrb r3, [r3]
strb r3, [sp, #0x1D]
; Line 802
ldrb r3, [sp, #0xC]
mov r2, r3
ldr r3, [pc, #0x51C]
add r3, r3, r2
str r3, [sp, #0x18]
; Line 805
mov r3, #0
strb r3, [sp, #0x1C]
; Line 812
ldrb r3, [sp, #0x1D]
tst r3, #0x10
bne |$LN29@Pokey_proc@2|
; Line 815
ldrb r3, [sp, #0x1D]
tst r3, #0x80
bne |$LN27@Pokey_proc@2|
ldr r2, [pc, #0x514]
ldr r3, [pc, #0x50C]
ldr r3, [r3]
add r3, r2, r3
ldrb r3, [r3]
cmp r3, #0
beq |$LN28@Pokey_proc@2|
|$LN27@Pokey_proc@2|
; Line 817
ldrb r3, [sp, #0x1D]
tst r3, #0x20
beq |$LN26@Pokey_proc@2|
; Line 819
mov r3, #1
strb r3, [sp, #0x1C]
b |$LN25@Pokey_proc@2|
|$LN26@Pokey_proc@2|
; Line 822
ldrb r3, [sp, #0x1D]
tst r3, #0x40
beq |$LN24@Pokey_proc@2|
; Line 824
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
bne |$LN58@Pokey_proc@2|
mov r3, #1
str r3, [sp, #0x34]
b |$LN59@Pokey_proc@2|
|$LN58@Pokey_proc@2|
mov r3, #0
str r3, [sp, #0x34]
|$LN59@Pokey_proc@2|
ldr r2, [pc, #0x4A8]
ldr r3, [pc, #0x4A0]
ldr r3, [r3]
add r3, r2, r3
ldrb r3, [r3]
mov r2, r3
ldr r3, [sp, #0x34]
cmp r2, r3
bne |$LN60@Pokey_proc@2|
mov r3, #1
str r3, [sp, #0x38]
b |$LN61@Pokey_proc@2|
|$LN60@Pokey_proc@2|
mov r3, #0
str r3, [sp, #0x38]
|$LN61@Pokey_proc@2|
ldr r3, [sp, #0x38]
and r3, r3, #0xFF
strb r3, [sp, #0x1C]
; Line 826
b |$LN23@Pokey_proc@2|
|$LN24@Pokey_proc@2|
; Line 828
ldrb r3, [sp, #0xC]
mov r2, r3, asr #2
ldr r3, [pc, #0x440]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #0x80
beq |$LN22@Pokey_proc@2|
; Line 830
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
bne |$LN62@Pokey_proc@2|
mov r3, #1
str r3, [sp, #0x3C]
b |$LN63@Pokey_proc@2|
|$LN62@Pokey_proc@2|
mov r3, #0
str r3, [sp, #0x3C]
|$LN63@Pokey_proc@2|
ldr r2, [pc, #0x418]
ldr r3, [pc, #0x410]
ldr r3, [r3]
add r3, r2, r3
ldrb r3, [r3]
and r2, r3, #1
ldr r3, [sp, #0x3C]
cmp r2, r3
bne |$LN64@Pokey_proc@2|
mov r3, #1
str r3, [sp, #0x40]
b |$LN65@Pokey_proc@2|
|$LN64@Pokey_proc@2|
mov r3, #0
str r3, [sp, #0x40]
|$LN65@Pokey_proc@2|
ldr r3, [sp, #0x40]
and r3, r3, #0xFF
strb r3, [sp, #0x1C]
; Line 832
b |$LN21@Pokey_proc@2|
|$LN22@Pokey_proc@2|
; Line 834
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
bne |$LN66@Pokey_proc@2|
mov r3, #1
str r3, [sp, #0x44]
b |$LN67@Pokey_proc@2|
|$LN66@Pokey_proc@2|
mov r3, #0
str r3, [sp, #0x44]
|$LN67@Pokey_proc@2|
ldr r3, [pc, #0x3A0]
ldr r3, [r3]
mov r2, r3, lsr #3
ldr r3, [pc, #0x398]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldr r3, [pc, #0x384]
ldr r3, [r3]
and r3, r3, #7
mov r3, r2, asr r3
and r2, r3, #1
ldr r3, [sp, #0x44]
cmp r2, r3
bne |$LN68@Pokey_proc@2|
mov r3, #1
str r3, [sp, #0x48]
b |$LN69@Pokey_proc@2|
|$LN68@Pokey_proc@2|
mov r3, #0
str r3, [sp, #0x48]
|$LN69@Pokey_proc@2|
ldr r3, [sp, #0x48]
and r3, r3, #0xFF
strb r3, [sp, #0x1C]
|$LN21@Pokey_proc@2|
|$LN23@Pokey_proc@2|
|$LN25@Pokey_proc@2|
|$LN28@Pokey_proc@2|
|$LN29@Pokey_proc@2|
; Line 841
ldrb r3, [sp, #0xC]
mov r2, r3, asr #2
ldr r3, [pc, #0x338]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #4
beq |$LN20@Pokey_proc@2|
; Line 843
ldrb r3, [sp, #0xC]
and r3, r3, #3
cmp r3, #2
bne |$LN19@Pokey_proc@2|
; Line 845
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x308]
add r3, r3, r2
ldrb r3, [r3]
cmp r3, #0
beq |$LN18@Pokey_proc@2|
; Line 847
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x2EC]
add r2, r3, r2
mov r3, #0
strb r3, [r2]
; Line 852
ldrb r3, [sp, #0xC]
tst r3, #4
beq |$LN17@Pokey_proc@2|
; Line 854
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x2C4]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
sub r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
; Line 855
b |$LN16@Pokey_proc@2|
|$LN17@Pokey_proc@2|
; Line 857
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x298]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
sub r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN16@Pokey_proc@2|
|$LN18@Pokey_proc@2|
|$LN19@Pokey_proc@2|
|$LN20@Pokey_proc@2|
; Line 863
ldrb r3, [sp, #0xC]
mov r2, r3, asr #2
ldr r3, [pc, #0x278]
add r3, r3, r2
ldrb r3, [r3]
tst r3, #2
beq |$LN15@Pokey_proc@2|
; Line 865
ldrb r3, [sp, #0xC]
and r3, r3, #3
cmp r3, #3
bne |$LN14@Pokey_proc@2|
; Line 867
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x248]
add r3, r3, r2
ldrb r3, [r3]
cmp r3, #0
beq |$LN13@Pokey_proc@2|
; Line 869
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x22C]
add r2, r3, r2
mov r3, #0
strb r3, [r2]
; Line 874
ldrb r3, [sp, #0xC]
tst r3, #4
beq |$LN12@Pokey_proc@2|
; Line 876
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x204]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
sub r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
; Line 877
b |$LN11@Pokey_proc@2|
|$LN12@Pokey_proc@2|
; Line 879
ldrb r3, [sp, #0xC]
and r2, r3, #0xFD
ldr r3, [pc, #0x1D8]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
sub r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN11@Pokey_proc@2|
|$LN13@Pokey_proc@2|
|$LN14@Pokey_proc@2|
|$LN15@Pokey_proc@2|
; Line 885
ldrb r3, [sp, #0x1C]
cmp r3, #0
beq |$LN10@Pokey_proc@2|
; Line 886
ldr r3, [sp, #0x18]
ldrb r3, [r3]
cmp r3, #0
beq |$LN9@Pokey_proc@2|
; Line 892
ldrb r3, [sp, #0xC]
tst r3, #4
beq |$LN8@Pokey_proc@2|
; Line 894
ldrb r3, [sp, #0xC]
mov r2, r3
ldr r3, [pc, #0x188]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
sub r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
; Line 895
b |$LN7@Pokey_proc@2|
|$LN8@Pokey_proc@2|
; Line 897
ldrb r3, [sp, #0xC]
mov r2, r3
ldr r3, [pc, #0x15C]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
sub r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN7@Pokey_proc@2|
; Line 900
ldr r2, [sp, #0x18]
mov r3, #0
strb r3, [r2]
; Line 902
b |$LN6@Pokey_proc@2|
|$LN9@Pokey_proc@2|
; Line 904
ldr r2, [sp, #0x18]
mov r3, #1
strb r3, [r2]
; Line 911
ldrb r3, [sp, #0xC]
tst r3, #4
beq |$LN5@Pokey_proc@2|
; Line 913
ldrb r3, [sp, #0xC]
mov r2, r3
ldr r3, [pc, #0x10C]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x14]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x14]
; Line 914
b |$LN4@Pokey_proc@2|
|$LN5@Pokey_proc@2|
; Line 916
ldrb r3, [sp, #0xC]
mov r2, r3
ldr r3, [pc, #0xE0]
add r3, r3, r2
ldrb r3, [r3]
mov r2, r3
ldrb r3, [sp, #0x1E]
add r3, r3, r2
and r3, r3, #0xFF
strb r3, [sp, #0x1E]
|$LN4@Pokey_proc@2|
|$LN6@Pokey_proc@2|
|$LN10@Pokey_proc@2|
; Line 920
b |$LN3@Pokey_proc@2|
|$LN33@Pokey_proc@2|
; Line 959
ldrb r3, [sp, #0x1E]
str r3, [sp, #0x30]
; Line 964
ldrb r3, [sp, #0x14]
str r3, [sp, #0x2C]
; Line 1050
ldr r3, [sp, #0x30]
and r2, r3, #0xFF
ldr r3, [sp, #0x20]
strb r2, [r3]
ldr r3, [sp, #0x20]
add r3, r3, #1
str r3, [sp, #0x20]
; Line 1052
ldr r3, [pc, #0x84]
ldrb r3, [r3]
cmp r3, #1
ble |$LN2@Pokey_proc@2|
; Line 1054
ldr r3, [sp, #0x2C]
and r2, r3, #0xFF
ldr r3, [sp, #0x20]
strb r2, [r3]
ldr r3, [sp, #0x20]
add r3, r3, #1
str r3, [sp, #0x20]
|$LN2@Pokey_proc@2|
; Line 1064
ldr r3, [pc, #0x5C]
ldr r2, [r3]
ldr r3, [pc, #0x58]
ldr r3, [r3]
add r2, r2, r3
ldr r3, [pc, #0x48]
str r2, [r3]
; Line 1067
ldrh r3, [sp, #0xE]
sub r3, r3, #1
mov r3, r3, lsl #16
mov r3, r3, lsr #16
strh r3, [sp, #0xE]
; Line 1072
ldr r3, [pc, #0x28]
ldrb r3, [r3]
cmp r3, #1
ble |$LN1@Pokey_proc@2|
; Line 1073
ldrh r3, [sp, #0xE]
sub r3, r3, #1
mov r3, r3, lsl #16
mov r3, r3, lsr #16
strh r3, [sp, #0xE]
|$LN1@Pokey_proc@2|
|$LN3@Pokey_proc@2|
; Line 1076
b |$LN42@Pokey_proc@2|
|$LN41@Pokey_proc@2|
; Line 1093
add sp, sp, #0x4C
ldmia sp, {sp, pc}
|$LN73@Pokey_proc@2|
DCD |Num_pokeys|
DCD |Samp_n_cnt|
DCD |Samp_n_max|
DCD |AUDV|
DCD |Outvol|
DCD |AUDCTL|
DCD |P17|
DCD |poly17_lookup|
DCD |P9|
DCD |poly9_lookup|
DCD |P4|
DCD |bit4|
DCD |P5|
DCD |bit5|
DCD |AUDC|
DCD |Div_n_cnt|
DCD |Div_n_max|
DCD |__imp___rt_udiv|
|$M1478|
ENDP ; |Pokey_process_8|
AREA |.pdata|, PDATA
|$T1486| DCD |$LN11@Pokey_proc@3|
DCD 0x40003604
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|Pokey_process_16| PROC
; Line 1139
|$LN11@Pokey_proc@3|
mov r12, sp
stmdb sp!, {r0, r1}
stmdb sp!, {r12, lr}
sub sp, sp, #0xC
|$M1483|
; Line 1140
ldr r3, [sp, #0x14]
str r3, [sp, #4]
; Line 1143
ldr r1, [sp, #0x18]
ldr r0, [sp, #4]
bl Pokey_process_8
; Line 1145
ldr r3, [sp, #0x18]
sub r3, r3, #1
str r3, [sp]
b |$LN6@Pokey_proc@3|
|$LN5@Pokey_proc@3|
ldr r3, [sp]
sub r3, r3, #1
str r3, [sp]
|$LN6@Pokey_proc@3|
ldr r3, [sp]
cmp r3, #0
blt |$LN4@Pokey_proc@3|
; Line 1146
ldr r2, [sp, #4]
ldr r3, [sp]
add r3, r2, r3
ldrb r3, [r3]
sub r2, r3, #0x80
mov r3, #1, 24
mul r3, r2, r3
str r3, [sp, #8]
; Line 1148
ldr r2, [sp, #8]
mov r3, #0x7F, 24
orr r3, r3, #0xFF
cmp r2, r3
ble |$LN3@Pokey_proc@3|
; Line 1149
mov r3, #0x7F, 24
orr r3, r3, #0xFF
str r3, [sp, #8]
b |$LN2@Pokey_proc@3|
|$LN3@Pokey_proc@3|
; Line 1150
ldr r3, [sp, #8]
cmn r3, #2, 18
bge |$LN1@Pokey_proc@3|
; Line 1151
mvn r3, #0xFF
mov r3, r3, lsl #7
str r3, [sp, #8]
|$LN1@Pokey_proc@3|
|$LN2@Pokey_proc@3|
; Line 1153
ldr r1, [sp]
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #4]
add r2, r3, r2
ldr r3, [sp, #8]
mov r3, r3, lsl #16
mov r3, r3, lsr #16
strh r3, [r2]
; Line 1154
b |$LN5@Pokey_proc@3|
|$LN4@Pokey_proc@3|
; Line 1155
add sp, sp, #0xC
ldmia sp, {sp, pc}
|$M1484|
ENDP ; |Pokey_process_16|
END