diff options
Diffstat (limited to 'asm/string_util.s')
-rw-r--r-- | asm/string_util.s | 1372 |
1 files changed, 0 insertions, 1372 deletions
diff --git a/asm/string_util.s b/asm/string_util.s deleted file mode 100644 index 2d5ade7aa..000000000 --- a/asm/string_util.s +++ /dev/null @@ -1,1372 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start CopyString_Limit10 -@ u8 *CopyString_Limit10(u8 *dest, u8 *src) -CopyString_Limit10: @ 8008B10 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0xA - movs r3, 0 -_08008B18: - adds r2, r4, r3 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08008B2C - adds r0, r2, 0 - b _08008B3C -_08008B2C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _08008B18 - adds r0, r4, r3 - movs r1, 0xFF - strb r1, [r0] -_08008B3C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CopyString_Limit10 - - thumb_func_start GetStringEnd_Limit7 -@ u8 *GetStringEnd_Limit7(u8 *s) -GetStringEnd_Limit7: @ 8008B44 - push {r4,lr} - adds r3, r0, 0 - movs r4, 0xA - movs r2, 0 -_08008B4C: - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08008B58 - adds r0, r1, 0 - b _08008B68 -_08008B58: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _08008B4C - adds r0, r3, r2 - movs r1, 0xFF - strb r1, [r0] -_08008B68: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetStringEnd_Limit7 - - thumb_func_start CopyString_Limit7 -@ u8 *CopyString_Limit7(u8 *dest, u8 *src) -CopyString_Limit7: @ 8008B70 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0x7 - movs r3, 0 -_08008B78: - adds r2, r4, r3 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08008B8C - adds r0, r2, 0 - b _08008B98 -_08008B8C: - adds r3, 0x1 - cmp r3, r5 - blt _08008B78 - adds r0, r4, r3 - movs r1, 0xFF - strb r1, [r0] -_08008B98: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CopyString_Limit7 - - thumb_func_start CopyString -@ u8 *CopyString(u8 *dest, u8 *src) -CopyString: @ 8008BA0 - push {lr} - adds r3, r0, 0 - b _08008BAC -_08008BA6: - strb r2, [r3] - adds r3, 0x1 - adds r1, 0x1 -_08008BAC: - ldrb r2, [r1] - adds r0, r2, 0 - cmp r0, 0xFF - bne _08008BA6 - movs r0, 0xFF - strb r0, [r3] - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end CopyString - - thumb_func_start AppendString -@ u8 *AppendString(u8 *dest, u8 *src) -AppendString: @ 8008BC0 - push {lr} - adds r2, r0, 0 - b _08008BC8 -_08008BC6: - adds r2, 0x1 -_08008BC8: - ldrb r0, [r2] - cmp r0, 0xFF - bne _08008BC6 - adds r0, r2, 0 - bl CopyString - pop {r1} - bx r1 - thumb_func_end AppendString - - thumb_func_start CopyString_LimitN -@ u8 *CopyString_LimitN(u8 *dest, u8 *src, u8 n) -CopyString_LimitN: @ 8008BD8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - movs r3, 0 - adds r0, r5, 0 - cmp r3, r0 - bcs _08008BFE - adds r2, r0, 0 -_08008BEC: - adds r1, r4, r3 - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r2 - bcc _08008BEC -_08008BFE: - adds r0, r4, r5 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CopyString_LimitN - - thumb_func_start AppendString_LimitN -@ u8 *AppendString_LimitN(u8 *dest, u8 *src, u8 n) -AppendString_LimitN: @ 8008C08 - push {lr} - adds r3, r0, 0 - lsls r2, 24 - lsrs r2, 24 - b _08008C14 -_08008C12: - adds r3, 0x1 -_08008C14: - ldrb r0, [r3] - cmp r0, 0xFF - bne _08008C12 - adds r0, r3, 0 - bl CopyString_LimitN - pop {r1} - bx r1 - thumb_func_end AppendString_LimitN - - thumb_func_start GetStringLength -@ u16 GetStringLength(u8 *s) -GetStringLength: @ 8008C24 - push {lr} - adds r2, r0, 0 - movs r1, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08008C3E -_08008C30: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08008C30 -_08008C3E: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end GetStringLength - - thumb_func_start CompareString -@ u8 CompareString(u8 *s1, u8 *s2) -CompareString: @ 8008C44 - push {lr} - adds r2, r0, 0 - b _08008C56 -_08008C4A: - cmp r0, 0xFF - bne _08008C52 - movs r0, 0 - b _08008C64 -_08008C52: - adds r2, 0x1 - adds r1, 0x1 -_08008C56: - ldrb r0, [r2] - ldrb r3, [r1] - cmp r0, r3 - beq _08008C4A - ldrb r0, [r2] - ldrb r1, [r1] - subs r0, r1 -_08008C64: - pop {r1} - bx r1 - thumb_func_end CompareString - - thumb_func_start CompareString_LimitN -@ u8 CompareString_LimitN(u8 *s1, u8 *s2, u32 n) -CompareString_LimitN: @ 8008C68 - push {r4,lr} - adds r3, r0, 0 - b _08008C80 -_08008C6E: - cmp r0, 0xFF - beq _08008C7C - adds r3, 0x1 - adds r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _08008C80 -_08008C7C: - movs r0, 0 - b _08008C8E -_08008C80: - ldrb r0, [r3] - ldrb r4, [r1] - cmp r0, r4 - beq _08008C6E - ldrb r0, [r3] - ldrb r1, [r1] - subs r0, r1 -_08008C8E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CompareString_LimitN - - thumb_func_start IsStringLengthLessThanN -@ bool8 IsStringLengthLessThanN(u8 *s, s32 n) -IsStringLengthLessThanN: @ 8008C94 - push {lr} - adds r3, r0, 0 - movs r2, 0 - cmp r2, r1 - bge _08008CB8 -_08008C9E: - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08008CAE - cmp r0, 0xFF - beq _08008CAE - movs r0, 0x1 - b _08008CBA -_08008CAE: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - blt _08008C9E -_08008CB8: - movs r0, 0 -_08008CBA: - pop {r1} - bx r1 - thumb_func_end IsStringLengthLessThanN - - thumb_func_start ConvertIntToDecimalString -@ u8 *ConvertIntToDecimalString(u8 *dest, s32 value, u8 mode, u8 numDigits) -ConvertIntToDecimalString: @ 8008CC0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r3, 24 - ldr r0, =gPowersOfTen - lsrs r3, 22 - subs r3, 0x4 - adds r3, r0 - ldr r0, [r3] - movs r7, 0 - cmp r2, 0x1 - bne _08008CDE - movs r7, 0x2 -_08008CDE: - cmp r2, 0x2 - bne _08008CE4 - movs r7, 0x1 -_08008CE4: - adds r5, r0, 0 - cmp r5, 0 - ble _08008D60 - ldr r0, =gDigits - mov r8, r0 -_08008CEE: - adds r0, r6, 0 - adds r1, r5, 0 - bl __divsi3 - lsls r0, 16 - lsrs r2, r0, 16 - adds r3, r2, 0 - adds r0, r5, 0 - muls r0, r2 - subs r1, r6, r0 - cmp r7, 0x1 - bne _08008D26 - adds r3, r4, 0 - adds r4, 0x1 - cmp r2, 0x9 - bhi _08008D20 - mov r6, r8 - adds r0, r2, r6 - ldrb r0, [r0] - b _08008D22 - .pool -_08008D20: - movs r0, 0xAC -_08008D22: - strb r0, [r3] - b _08008D50 -_08008D26: - cmp r2, 0 - bne _08008D2E - cmp r5, 0x1 - bne _08008D46 -_08008D2E: - movs r7, 0x1 - adds r2, r4, 0 - adds r4, 0x1 - cmp r3, 0x9 - bhi _08008D40 - mov r6, r8 - adds r0, r3, r6 - ldrb r0, [r0] - b _08008D42 -_08008D40: - movs r0, 0xAC -_08008D42: - strb r0, [r2] - b _08008D50 -_08008D46: - cmp r7, 0x2 - bne _08008D50 - movs r0, 0x77 - strb r0, [r4] - adds r4, 0x1 -_08008D50: - adds r6, r1, 0 - adds r0, r5, 0 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 - cmp r5, 0 - bgt _08008CEE -_08008D60: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ConvertIntToDecimalString - - thumb_func_start ConvertUnsignedIntToDecimalString -@ u8 *ConvertUnsignedIntToDecimalString(u8 *dest, u32 value, u8 mode, u8 numDigits) -ConvertUnsignedIntToDecimalString: @ 8008D70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r3, 24 - ldr r0, =gPowersOfTen - lsrs r3, 22 - subs r3, 0x4 - adds r3, r0 - ldr r0, [r3] - movs r7, 0 - cmp r2, 0x1 - bne _08008D8E - movs r7, 0x2 -_08008D8E: - cmp r2, 0x2 - bne _08008D94 - movs r7, 0x1 -_08008D94: - adds r5, r0, 0 - cmp r5, 0 - ble _08008E10 - ldr r0, =gDigits - mov r8, r0 -_08008D9E: - adds r0, r6, 0 - adds r1, r5, 0 - bl __udivsi3 - lsls r0, 16 - lsrs r2, r0, 16 - adds r3, r2, 0 - adds r0, r5, 0 - muls r0, r2 - subs r1, r6, r0 - cmp r7, 0x1 - bne _08008DD6 - adds r3, r4, 0 - adds r4, 0x1 - cmp r2, 0x9 - bhi _08008DD0 - mov r6, r8 - adds r0, r2, r6 - ldrb r0, [r0] - b _08008DD2 - .pool -_08008DD0: - movs r0, 0xAC -_08008DD2: - strb r0, [r3] - b _08008E00 -_08008DD6: - cmp r2, 0 - bne _08008DDE - cmp r5, 0x1 - bne _08008DF6 -_08008DDE: - movs r7, 0x1 - adds r2, r4, 0 - adds r4, 0x1 - cmp r3, 0x9 - bhi _08008DF0 - mov r6, r8 - adds r0, r3, r6 - ldrb r0, [r0] - b _08008DF2 -_08008DF0: - movs r0, 0xAC -_08008DF2: - strb r0, [r2] - b _08008E00 -_08008DF6: - cmp r7, 0x2 - bne _08008E00 - movs r0, 0x77 - strb r0, [r4] - adds r4, 0x1 -_08008E00: - adds r6, r1, 0 - adds r0, r5, 0 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 - cmp r5, 0 - bgt _08008D9E -_08008E10: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ConvertUnsignedIntToDecimalString - - thumb_func_start ConvertIntToHexString -@ u8 *ConvertIntToHexString(u8 *dest, s32 value, u8 mode, u8 numDigits) -ConvertIntToHexString: @ 8008E20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r6, r0, 0 - mov r8, r1 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - movs r0, 0x1 - cmp r1, r3 - bcs _08008E46 -_08008E3A: - lsls r1, 4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcc _08008E3A -_08008E46: - movs r3, 0 - cmp r2, 0x1 - bne _08008E4E - movs r3, 0x2 -_08008E4E: - cmp r2, 0x2 - bne _08008E54 - movs r3, 0x1 -_08008E54: - adds r5, r1, 0 - cmp r5, 0 - ble _08008ECA - ldr r0, =gDigits - mov r9, r0 -_08008E5E: - mov r0, r8 - adds r1, r5, 0 - str r3, [sp] - bl __divsi3 - adds r4, r0, 0 - adds r7, r4, 0 - mov r0, r8 - adds r1, r5, 0 - bl __modsi3 - adds r1, r0, 0 - ldr r3, [sp] - cmp r3, 0x1 - bne _08008E90 - adds r2, r6, 0 - adds r6, 0x1 - cmp r4, 0xF - bhi _08008EAA - mov r7, r9 - adds r0, r4, r7 - ldrb r0, [r0] - b _08008EAC - .pool -_08008E90: - cmp r4, 0 - bne _08008E98 - cmp r5, 0x1 - bne _08008EB0 -_08008E98: - movs r3, 0x1 - adds r2, r6, 0 - adds r6, 0x1 - cmp r7, 0xF - bhi _08008EAA - mov r4, r9 - adds r0, r7, r4 - ldrb r0, [r0] - b _08008EAC -_08008EAA: - movs r0, 0xAC -_08008EAC: - strb r0, [r2] - b _08008EBA -_08008EB0: - cmp r3, 0x2 - bne _08008EBA - movs r0, 0x77 - strb r0, [r6] - adds r6, 0x1 -_08008EBA: - mov r8, r1 - adds r0, r5, 0 - cmp r5, 0 - bge _08008EC4 - adds r0, 0xF -_08008EC4: - asrs r5, r0, 4 - cmp r5, 0 - bgt _08008E5E -_08008ECA: - movs r0, 0xFF - strb r0, [r6] - adds r0, r6, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ConvertIntToHexString - - thumb_func_start ExpandStringRefs -@ u8 *ExpandStringRefs(u8 *dest, u8 *src) -ExpandStringRefs: @ 8008EE0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 -_08008EE6: - ldrb r2, [r5] - adds r5, 0x1 - adds r0, r2, 0 - subs r0, 0xFA - cmp r0, 0x5 - bhi _08008FBA - lsls r0, 2 - ldr r1, =_08008F00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08008F00: - .4byte _08008FBA - .4byte _08008FBA - .4byte _08008F2C - .4byte _08008F18 - .4byte _08008FBA - .4byte _08008FC0 -_08008F18: - ldrb r0, [r5] - adds r5, 0x1 - bl GetExpandedStringRef - adds r1, r0, 0 - adds r0, r4, 0 - bl ExpandStringRefs - adds r4, r0, 0 - b _08008EE6 -_08008F2C: - strb r2, [r4] - adds r4, 0x1 - ldrb r2, [r5] - adds r5, 0x1 - strb r2, [r4] - adds r4, 0x1 - subs r0, r2, 0x4 - cmp r0, 0x14 - bhi _08008FB0 - lsls r0, 2 - ldr r1, =_08008F4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08008F4C: - .4byte _08008FA0 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008EE6 - .4byte _08008FB0 - .4byte _08008EE6 - .4byte _08008FB0 - .4byte _08008FA8 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008EE6 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008FB0 - .4byte _08008EE6 - .4byte _08008EE6 - .4byte _08008EE6 - .4byte _08008EE6 -_08008FA0: - ldrb r0, [r5] - strb r0, [r4] - adds r5, 0x1 - adds r4, 0x1 -_08008FA8: - ldrb r0, [r5] - strb r0, [r4] - adds r5, 0x1 - adds r4, 0x1 -_08008FB0: - ldrb r0, [r5] - strb r0, [r4] - adds r5, 0x1 - adds r4, 0x1 - b _08008EE6 -_08008FBA: - strb r2, [r4] - adds r4, 0x1 - b _08008EE6 -_08008FC0: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ExpandStringRefs - - thumb_func_start sub_8008FCC -@ u8 *sub_8008FCC(u8 *dest, u8 *src) -sub_8008FCC: @ 8008FCC - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r6, r1, 0 - ldr r1, =gUnknown_082EC80C - mov r0, sp - movs r2, 0x4 - bl memcpy - add r4, sp, 0x4 - ldr r1, =gUnknown_082EC810 - adds r0, r4, 0 - movs r2, 0x5 - bl memcpy - adds r0, r5, 0 - mov r1, sp -_08008FEE: - bl CopyString - adds r5, r0, 0 -_08008FF4: - ldrb r0, [r6] - adds r6, 0x1 - cmp r0, 0xFE - beq _0800900C - cmp r0, 0xFF - bne _08009012 - b _0800901E - .pool -_0800900C: - adds r0, r5, 0 - adds r1, r4, 0 - b _08008FEE -_08009012: - strb r0, [r5] - adds r5, 0x1 - adds r0, 0x40 - strb r0, [r5] - adds r5, 0x1 - b _08008FF4 -_0800901E: - strb r0, [r5] - adds r0, r5, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8008FCC - - thumb_func_start StringRef_GetPossiblyUnusedStringVar -@ u8 *StringRef_GetPossiblyUnusedStringVar() -StringRef_GetPossiblyUnusedStringVar: @ 800902C - ldr r0, =gUnknown_020223AC - bx lr - .pool - thumb_func_end StringRef_GetPossiblyUnusedStringVar - - thumb_func_start StringRef_GetPlayerName -@ u8 *StringRef_GetPlayerName() -StringRef_GetPlayerName: @ 8009034 - ldr r0, =gUnknown_03005D90 - ldr r0, [r0] - bx lr - .pool - thumb_func_end StringRef_GetPlayerName - - thumb_func_start StringRef_GetStringVar1 -@ u8 *StringRef_GetStringVar1() -StringRef_GetStringVar1: @ 8009040 - ldr r0, =gUnknown_02021CC4 - bx lr - .pool - thumb_func_end StringRef_GetStringVar1 - - thumb_func_start StringRef_GetStringVar2 -@ u8 *StringRef_GetStringVar2() -StringRef_GetStringVar2: @ 8009048 - ldr r0, =gUnknown_02021DC4 - bx lr - .pool - thumb_func_end StringRef_GetStringVar2 - - thumb_func_start StringRef_GetStringVar3 -@ u8 *StringRef_GetStringVar3() -StringRef_GetStringVar3: @ 8009050 - ldr r0, =gUnknown_02021EC4 - bx lr - .pool - thumb_func_end StringRef_GetStringVar3 - - thumb_func_start StringRef_GetDummiedOutGenderDependentString -@ u8 *StringRef_GetDummiedOutGenderDependentString() -StringRef_GetDummiedOutGenderDependentString: @ 8009058 - push {lr} - ldr r0, =gUnknown_03005D90 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _08009070 - ldr r0, =gUnknown_085E821A - b _08009072 - .pool -_08009070: - ldr r0, =gUnknown_085E8219 -_08009072: - pop {r1} - bx r1 - .pool - thumb_func_end StringRef_GetDummiedOutGenderDependentString - - thumb_func_start StringRef_GetRivalName -@ u8 *StringRef_GetRivalName() -StringRef_GetRivalName: @ 800907C - push {lr} - ldr r0, =gUnknown_03005D90 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _08009094 - ldr r0, =gUnknown_085E8258 - b _08009096 - .pool -_08009094: - ldr r0, =gUnknown_085E8260 -_08009096: - pop {r1} - bx r1 - .pool - thumb_func_end StringRef_GetRivalName - - thumb_func_start StringRef_GetEmeraldString -@ u8 *StringRef_GetEmeraldString() -StringRef_GetEmeraldString: @ 80090A0 - ldr r0, =gUnknown_085E8229 - bx lr - .pool - thumb_func_end StringRef_GetEmeraldString - - thumb_func_start StringRef_GetAquaString -@ u8 *StringRef_GetAquaString() -StringRef_GetAquaString: @ 80090A8 - ldr r0, =gUnknown_085E8231 - bx lr - .pool - thumb_func_end StringRef_GetAquaString - - thumb_func_start StringRef_GetMagmaString -@ u8 *StringRef_GetMagmaString() -StringRef_GetMagmaString: @ 80090B0 - ldr r0, =gUnknown_085E8236 - bx lr - .pool - thumb_func_end StringRef_GetMagmaString - - thumb_func_start StringRef_GetArchieString -@ u8 *StringRef_GetArchieString() -StringRef_GetArchieString: @ 80090B8 - ldr r0, =gUnknown_085E823C - bx lr - .pool - thumb_func_end StringRef_GetArchieString - - thumb_func_start StringRef_GetMaxieString -@ u8 *StringRef_GetMaxieString() -StringRef_GetMaxieString: @ 80090C0 - ldr r0, =gUnknown_085E8243 - bx lr - .pool - thumb_func_end StringRef_GetMaxieString - - thumb_func_start StringRef_GetKyogreString -@ u8 *StringRef_GetKyogreString() -StringRef_GetKyogreString: @ 80090C8 - ldr r0, =gUnknown_085E8249 - bx lr - .pool - thumb_func_end StringRef_GetKyogreString - - thumb_func_start StringRef_GetGroudonString -@ u8 *StringRef_GetGroudonString() -StringRef_GetGroudonString: @ 80090D0 - ldr r0, =gUnknown_085E8250 - bx lr - .pool - thumb_func_end StringRef_GetGroudonString - - thumb_func_start GetExpandedStringRef -@ u8 *GetExpandedStringRef(u8 code) -GetExpandedStringRef: @ 80090D8 - push {lr} - cmp r0, 0xD - bhi _080090F0 - ldr r1, =gStringRefFunctionTable - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _080090F2 - .pool -_080090F0: - ldr r0, =gUnknown_085E8218 -_080090F2: - pop {r1} - bx r1 - .pool - thumb_func_end GetExpandedStringRef - - thumb_func_start RepeatChar -@ u8 *RepeatChar(u8 *dest, u8 c, u16 n) -RepeatChar: @ 80090FC - push {lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0 - cmp r0, r2 - bcs _0800911C -_0800910E: - strb r1, [r3] - adds r3, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r2 - bcc _0800910E -_0800911C: - movs r0, 0xFF - strb r0, [r3] - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end RepeatChar - - thumb_func_start CopyStringPadded -@ u8 *CopyStringPadded(u8 *dest, u8 *src, u8 c, u16 n) -CopyStringPadded: @ 8009128 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r3, 16 - b _08009148 -_08009138: - strb r1, [r4] - adds r5, 0x1 - adds r4, 0x1 - cmp r3, 0 - beq _08009148 - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_08009148: - ldrb r1, [r5] - adds r0, r1, 0 - cmp r0, 0xFF - bne _08009138 - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =0x0000ffff - cmp r3, r0 - beq _0800916C - adds r1, r0, 0 -_0800915E: - strb r2, [r4] - adds r4, 0x1 - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bne _0800915E -_0800916C: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end CopyStringPadded - - thumb_func_start RepeatStringTerminator -@ u8 *RepeatStringTerminator(u8 *dest, u16 n) -RepeatStringTerminator: @ 800917C - push {lr} - lsls r2, r1, 16 - lsrs r2, 16 - movs r1, 0xFF - bl RepeatChar - pop {r1} - bx r1 - thumb_func_end RepeatStringTerminator - - thumb_func_start CopyString_LimitN_Multibyte -@ u8 *CopyString_LimitN_Multibyte(u8 *dest, u8 *src, u32 n) -CopyString_LimitN_Multibyte: @ 800918C - push {r4,r5,lr} - adds r4, r0, 0 - adds r3, r1, 0 - subs r2, 0x1 - movs r5, 0x1 - negs r5, r5 - b _080091B2 -_0800919A: - strb r0, [r4] - adds r3, 0x1 - adds r4, 0x1 - subs r0, r3, 0x1 - ldrb r0, [r0] - cmp r0, 0xF9 - bne _080091B0 - ldrb r0, [r3] - strb r0, [r4] - adds r3, 0x1 - adds r4, 0x1 -_080091B0: - subs r2, 0x1 -_080091B2: - cmp r2, r5 - beq _080091BE - ldrb r0, [r3] - adds r1, r0, 0 - cmp r1, 0xFF - bne _0800919A -_080091BE: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CopyString_LimitN_Multibyte - - thumb_func_start GetStringLength_Multibyte -@ u32 GetStringLength_Multibyte(u8 *s) -GetStringLength_Multibyte: @ 80091CC - push {lr} - adds r2, r0, 0 - movs r3, 0 - b _080091DE -_080091D4: - cmp r1, 0xF9 - bne _080091DA - adds r2, 0x1 -_080091DA: - adds r2, 0x1 - adds r3, 0x1 -_080091DE: - ldrb r1, [r2] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080091D4 - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end GetStringLength_Multibyte - - thumb_func_start WriteColorChangeControlCode -@ u8 *WriteColorChangeControlCode(u8 *dest, u8 colorType, u8 color) -WriteColorChangeControlCode: @ 80091EC - push {lr} - adds r3, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0xFC - strb r0, [r3] - adds r3, 0x1 - cmp r1, 0x1 - beq _0800920E - cmp r1, 0x1 - bcc _08009208 - cmp r1, 0x2 - beq _08009214 - b _08009218 -_08009208: - movs r0, 0x1 - strb r0, [r3] - b _08009216 -_0800920E: - movs r0, 0x3 - strb r0, [r3] - b _08009216 -_08009214: - strb r1, [r3] -_08009216: - adds r3, 0x1 -_08009218: - strb r2, [r3] - adds r3, 0x1 - movs r0, 0xFF - strb r0, [r3] - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end WriteColorChangeControlCode - - thumb_func_start sub_8009228 -@ bool8 sub_8009228(u8 *s) -sub_8009228: @ 8009228 - push {lr} - adds r2, r0, 0 - b _0800923E -_0800922E: - adds r0, r1, 0 - cmp r0, 0xA0 - bhi _0800923C - cmp r0, 0 - beq _0800923C - movs r0, 0x1 - b _08009248 -_0800923C: - adds r2, 0x1 -_0800923E: - ldrb r1, [r2] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0800922E - movs r0, 0 -_08009248: - pop {r1} - bx r1 - thumb_func_end sub_8009228 - - thumb_func_start sub_800924C -@ bool8 sub_800924C(u8 *s, u32 n) -sub_800924C: @ 800924C - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - movs r1, 0 - b _08009268 -_08009256: - adds r0, r2, 0 - cmp r0, 0xA0 - bhi _08009264 - cmp r0, 0 - beq _08009264 - movs r0, 0x1 - b _08009276 -_08009264: - adds r3, 0x1 - adds r1, 0x1 -_08009268: - ldrb r2, [r3] - adds r0, r2, 0 - cmp r0, 0xFF - beq _08009274 - cmp r1, r4 - blt _08009256 -_08009274: - movs r0, 0 -_08009276: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_800924C - - thumb_func_start GetExtendedControlCodeLength -@ u8 GetExtendedControlCodeLength(u8 code) -GetExtendedControlCodeLength: @ 800927C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0 - cmp r1, 0x18 - bhi _0800928E - ldr r0, =gExtendedControlCodeLengths - adds r0, r1, r0 - ldrb r0, [r0] -_0800928E: - pop {r1} - bx r1 - .pool - thumb_func_end GetExtendedControlCodeLength - - thumb_func_start SkipExtendedControlCode -@ u8 *SkipExtendedControlCode(u8 *s) -SkipExtendedControlCode: @ 8009298 - push {r4,lr} - adds r4, r0, 0 - b _080092AC -_0800929E: - adds r4, 0x1 - ldrb r0, [r4] - bl GetExtendedControlCodeLength - lsls r0, 24 - lsrs r0, 24 - adds r4, r0 -_080092AC: - ldrb r0, [r4] - cmp r0, 0xFC - beq _0800929E - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end SkipExtendedControlCode - - thumb_func_start CompareStringWithoutExtendedControlCodes -@ u8 CompareStringWithoutExtendedControlCodes(u8 *s1, u8 *s2) -CompareStringWithoutExtendedControlCodes: @ 80092BC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r6, 0 - b _080092DE -_080092C6: - cmp r1, r0 - bcs _080092D4 - movs r6, 0x1 - negs r6, r6 - cmp r0, 0xFF - bne _080092D4 - movs r6, 0x1 -_080092D4: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080092FE - adds r4, 0x1 - adds r5, 0x1 -_080092DE: - adds r0, r4, 0 - bl SkipExtendedControlCode - adds r4, r0, 0 - adds r0, r5, 0 - bl SkipExtendedControlCode - adds r5, r0, 0 - ldrb r1, [r4] - ldrb r0, [r5] - cmp r1, r0 - bls _080092C6 - movs r6, 0x1 - cmp r1, 0xFF - bne _080092FE - subs r6, 0x2 -_080092FE: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CompareStringWithoutExtendedControlCodes - - thumb_func_start StopMusicWhileStringIsPrinted -@ void StopMusicWhileStringIsPrinted(u8 *s, bool8 stopMusic) -StopMusicWhileStringIsPrinted: @ 8009308 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _08009368 - bl StripExtendedControlCodes - adds r0, r4, 0 - bl GetStringLength - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, r2, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - adds r1, r4, r1 - movs r0, 0xFC - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r4, r3 - movs r0, 0x16 - strb r0, [r3] - adds r0, r2, 0x1 - lsls r0, 24 - adds r2, r4, r2 - movs r1, 0xFF - strb r1, [r2] - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - b _0800935A -_08009350: - adds r1, r2, r4 - ldrb r0, [r1] - strb r0, [r1, 0x2] - subs r0, r2, 0x1 - lsls r0, 24 -_0800935A: - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _08009350 - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x15 - strb r0, [r4, 0x1] -_08009368: - pop {r4} - pop {r0} - bx r0 - thumb_func_end StopMusicWhileStringIsPrinted - - thumb_func_start StripExtendedControlCodes -@ void StripExtendedControlCodes(u8 *s) -StripExtendedControlCodes: @ 8009370 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - movs r6, 0 - ldrb r0, [r5] - cmp r0, 0xFF - beq _080093C0 -_0800937E: - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0xFC - bne _080093A0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, r4 - ldrb r0, [r0] - bl GetExtendedControlCodeLength - lsls r0, 24 - lsrs r0, 24 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - b _080093B8 -_080093A0: - adds r2, r6, 0 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - adds r2, r5, r2 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r1, r5, r1 - ldrb r0, [r1] - strb r0, [r2] -_080093B8: - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0800937E -_080093C0: - adds r1, r5, r6 - movs r0, 0xFF - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end StripExtendedControlCodes - - .align 2, 0 @ Don't pad with nop. |