rendered paste body# The jumptable
.data5:80225224 Cmd_Process_JumpTable:.long 0
.data5:80225224 # 0
.data5:80225228 .long Cmd_OpenTrack__Fv # 1
.data5:8022522C .long Cmd_OpenTrackBros__Fv # 2
.data5:80225230 .long Cmd_Call__Fv # 3
.data5:80225234 .long Cmd_CallF__Fv # 4
.data5:80225238 .long Cmd_Ret__Fv # 5
.data5:8022523C .long Cmd_RetF__Fv # 6
.data5:80225240 .long Cmd_Jmp__Fv # 7
.data5:80225244 .long Cmd_JmpF__Fv # 8
.data5:80225248 .long Cmd_LoopS__Fv # 9
.data5:8022524C .long Cmd_LoopE__Fv # A
.data5:80225250 .long Cmd_ReadPort__Fv # B
.data5:80225254 .long Cmd_WritePort__Fv # C
.data5:80225258 .long Cmd_CheckPortImport__Fv # D
.data5:8022525C .long Cmd_CheckPortExport__Fv # E
.data5:80225260 .long Cmd_WaitReg__Fv # F
.data5:80225264 .long Cmd_ConnectName__Fv # 10
.data5:80225268 .long Cmd_ParentWritePort__Fv # 11
.data5:8022526C .long Cmd_ChildWritePort__Fv # 12
.data5:80225270 .long 0 # 13
.data5:80225274 .long Cmd_SetLastNote__Fv # 14
.data5:80225278 .long Cmd_TimeRelate__Fv # 15
.data5:8022527C .long Cmd_SimpleOsc__Fv # 16
.data5:80225280 .long Cmd_SimpleEnv__Fv # 17
.data5:80225284 .long Cmd_SimpleADSR__Fv # 18
.data5:80225288 .long Cmd_Transpose__Fv # 19
.data5:8022528C .long Cmd_CloseTrack__Fv # 1A
.data5:80225290 .long Cmd_OutSwitch__Fv # 1B
.data5:80225294 .long Cmd_UpdateSync__Fv # 1C
.data5:80225298 .long Cmd_BusConnect__Fv # 1D
.data5:8022529C .long Cmd_PauseStatus__Fv # 1E
.data5:802252A0 .long Cmd_SetInterrupt__Fv # 1F
.data5:802252A4 .long Cmd_DisInterrupt__Fv # 20
.data5:802252A8 .long Cmd_ClrI__Fv # 21
.data5:802252AC .long Cmd_SetI__Fv # 22
.data5:802252B0 .long Cmd_RetI__Fv # 23
.data5:802252B4 .long Cmd_IntTimer__Fv # 24
.data5:802252B8 .long Cmd_ConnectOpen__Fv # 25
.data5:802252BC .long Cmd_ConnectClose__Fv # 26
.data5:802252C0 .long Cmd_SyncCPU__Fv # 27
.data5:802252C4 .long Cmd_FlushAll__Fv # 28
.data5:802252C8 .long Cmd_FlushRelease__Fv # 29
.data5:802252CC .long Cmd_Wait3__Fv # 2A
.data5:802252D0 .long Cmd_PanPowSet__Fv # 2B
.data5:802252D4 .long Cmd_IIRSet__Fv # 2C
.data5:802252D8 .long Cmd_FIRSet__Fv # 2D
.data5:802252DC .long Cmd_EXTSet__Fv # 2E
.data5:802252E0 .long Cmd_PanSwSet__Fv # 2F
.data5:802252E4 .long Cmd_OscRoute__Fv # 30
.data5:802252E8 .long Cmd_IIRCutOff__Fv # 31
.data5:802252EC .long Cmd_OscFull__Fv # 32
.data5:802252F0 .byte 0 # 33
.data5:802252F1 .byte 0 # 34
.data5:802252F2 .byte 0 # 35
.data5:802252F3 .byte 0 # 36
.data5:802252F4 .byte 0 # 37
.data5:802252F5 .byte 0 # 38
.data5:802252F6 .byte 0 # 39
.data5:802252F7 .byte 0 # 3A
.data5:802252F8 .byte 0 # 3B
.data5:802252F9 .byte 0 # 3C
.data5:802252FA .byte 0 # 3D
.data5:802252FB .byte 0 # 3E
.data5:802252FC .byte 0 # 3F
.data5:802252FD .byte 0 # 40
.data5:802252FE .byte 0 # 41
.data5:802252FF .byte 0 # 42
.data5:80225300 .byte 0 # 43
.data5:80225301 .byte 0 # 44
.data5:80225302 .byte 0 # 45
.data5:80225303 .byte 0 # 46
.data5:80225304 .byte 0 # 47
.data5:80225305 .byte 0 # 48
.data5:80225306 .byte 0 # 49
.data5:80225307 .byte 0 # 4A
.data5:80225308 .byte 0 # 4B
.data5:80225309 .byte 0 # 4C
.data5:8022530A .byte 0 # 4D
.data5:8022530B .byte 0 # 4E
.data5:8022530C .long Cmd_CheckWave__Fv # 4F
.data5:80225310 .long Cmd_Printf__Fv # 50
.data5:80225314 .long Cmd_Nop__Fv # 51
.data5:80225318 .long Cmd_Tempo__Fv # 52
.data5:8022531C .long Cmd_TimeBase__Fv # 53
.data5:80225320 .long Cmd_Finish__Fv # 54
.data5:80225324 .long 0 # 55
# The actual function
.text1:80012CC0 # Cmd_Process(seqp_ *, unsigned char, unsigned short)
.text1:80012CC0 Cmd_Process__FP5seqp_UcUs: # CODE XREF: RegCmd_Process(seqp_ *,int,ulong)+90p
.text1:80012CC0 # Jam_SeqmainNote+738p
.text1:80012CC0
.text1:80012CC0 .set var_38, -0x38
.text1:80012CC0 .set var_34, -0x34
.text1:80012CC0 .set var_24, -0x24
.text1:80012CC0 .set var_20, -0x20
.text1:80012CC0 .set arg_4, 4
.text1:80012CC0
.text1:80012CC0 mflr %r0
.text1:80012CC4 lis %r6, dword_80225124@h
.text1:80012CC8 stw %r0, arg_4(%sp)
.text1:80012CCC addi %r0, %r6, dword_80225124@l
.text1:80012CD0 stwu %sp, -0x40(%sp)
.text1:80012CD4 stmw %r24, 0x40+var_20(%sp)
.text1:80012CD8 li %r28, 0
.text1:80012CDC li %r27, 0
.text1:80012CE0 stb %r4, 0x40+var_34(%sp)
.text1:80012CE4 lis %r4, ((dword_8031FA80+0x10000)@h)
.text1:80012CE8 subi %r26, %r4, 0x580 # dword_8031FA80
.text1:80012CEC lbz %r31, 0x40+var_34(%sp)
.text1:80012CF0 stw %r3, 0x40+var_38(%sp)
.text1:80012CF4 slwi %r29, %r31, 2
.text1:80012CF8 add %r4, %r0, %r29
.text1:80012CFC lwz %r30, 0x40+var_38(%sp)
.text1:80012D00 lwz %r0, -0x300(%r4)
.text1:80012D04 stw %r0, 0x40+var_24(%sp)
.text1:80012D08 lhz %r0, 0x40+var_24+2(%sp)
.text1:80012D0C lhz %r25, 0x40+var_24(%sp)
.text1:80012D10 or %r0, %r0, %r5
.text1:80012D14 b Cmd_Process_SetupJumpTable
.text1:80012D18 # ---------------------------------------------------------------------------
.text1:80012D18
.text1:80012D18 loc_80012D18: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+E4j
.text1:80012D18 clrlwi %r24, %r0, 16
.text1:80012D1C clrlwi %r0, %r0, 30
.text1:80012D20 cmpwi %r0, 2
.text1:80012D24 beq loc_80012D68
.text1:80012D28 bge loc_80012D3C
.text1:80012D2C cmpwi %r0, 0
.text1:80012D30 beq loc_80012D48
.text1:80012D34 bge loc_80012D58
.text1:80012D38 b loc_80012D88
.text1:80012D3C # ---------------------------------------------------------------------------
.text1:80012D3C
.text1:80012D3C loc_80012D3C: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+68j
.text1:80012D3C cmpwi %r0, 4
.text1:80012D40 bge loc_80012D88
.text1:80012D44 b loc_80012D74
.text1:80012D48 # ---------------------------------------------------------------------------
.text1:80012D48
.text1:80012D48 loc_80012D48: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+70j
.text1:80012D48 mr %r3, %r30
.text1:80012D4C bl __ByteRead__FP5seqp_ # __ByteRead(seqp_ *)
.text1:80012D50 clrlwi %r3, %r3, 24
.text1:80012D54 b loc_80012D88
.text1:80012D58 # ---------------------------------------------------------------------------
.text1:80012D58
.text1:80012D58 loc_80012D58: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+74j
.text1:80012D58 mr %r3, %r30
.text1:80012D5C bl __WordRead__FP5seqp_ # __WordRead(seqp_ *)
.text1:80012D60 clrlwi %r3, %r3, 16
.text1:80012D64 b loc_80012D88
.text1:80012D68 # ---------------------------------------------------------------------------
.text1:80012D68
.text1:80012D68 loc_80012D68: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+64j
.text1:80012D68 mr %r3, %r30
.text1:80012D6C bl __24Read__FP5seqp_
.text1:80012D70 b loc_80012D88
.text1:80012D74 # ---------------------------------------------------------------------------
.text1:80012D74
.text1:80012D74 loc_80012D74: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+84j
.text1:80012D74 mr %r3, %r30
.text1:80012D78 bl __ByteRead__FP5seqp_ # __ByteRead(seqp_ *)
.text1:80012D7C addi %r4, %r3, 0
.text1:80012D80 addi %r3, %r30, 0
.text1:80012D84 bl __ExchangeRegisterValue__FP5seqp_Uc # __ExchangeRegisterValue(seqp_ *,uchar)
.text1:80012D88
.text1:80012D88 loc_80012D88: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+78j
.text1:80012D88 # Cmd_Process(seqp_ *,uchar,ushort)+80j ...
.text1:80012D88 add %r4, %r26, %r27
.text1:80012D8C srawi %r0, %r24, 2
.text1:80012D90 stw %r3, 0(%r4)
.text1:80012D94 clrlwi %r0, %r0, 16
.text1:80012D98 addi %r28, %r28, 1
.text1:80012D9C addi %r27, %r27, 4
.text1:80012DA0
.text1:80012DA0 Cmd_Process_SetupJumpTable: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+54j
.text1:80012DA0 cmplw %r28, %r25
.text1:80012DA4 blt loc_80012D18
.text1:80012DA8 lis %r3, Cmd_Process_JumpTable@h
.text1:80012DAC stb %r31, 0x2C34(%r13)
.text1:80012DB0 addi %r0, %r3, Cmd_Process_JumpTable@l
.text1:80012DB4 stw %r30, 0x2C30(%r13)
.text1:80012DB8 add %r3, %r0, %r29
.text1:80012DBC lwz %r0, -0x300(%r3)
.text1:80012DC0 cmplwi %r0, 0
.text1:80012DC4 mr %r12, %r0
.text1:80012DC8 bne loc_80012DD4
.text1:80012DCC li %r3, 0
.text1:80012DD0 b loc_80012DDC
.text1:80012DD4 # ---------------------------------------------------------------------------
.text1:80012DD4
.text1:80012DD4 loc_80012DD4: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+108j
.text1:80012DD4 mtlr %r12
.text1:80012DD8 blrl
.text1:80012DDC
.text1:80012DDC loc_80012DDC: # CODE XREF: Cmd_Process(seqp_ *,uchar,ushort)+110j
.text1:80012DDC lmw %r24, 0x40+var_20(%sp)
.text1:80012DE0 lwz %r0, 0x40+arg_4(%sp)
.text1:80012DE4 addi %sp, %sp, 0x40
.text1:80012DE8 mtlr %r0
.text1:80012DEC blr
.text1:80012DEC # End of function Cmd_Process(seqp_ *,uchar,ushort)