;CX75v13
;Библиотека функций
;Functon Library
;(c) avkiev
;(p) Smelter,SMeeTBB
;Version: 160406
;PatchID: 1268
;Details: http://patches.kibab.com/patches/details.php5?id=1268
/*

*/
;Этот патч сам по себе ничего не делает. Он предназначен для облегчения создания и портирования других патчей.
;В патче собрано 200 самых часто-используемых функций, 28 переменных и 28 констант.
;После применения патча для вызова (например) функции GetWeek достаточно написать "bl A0FC0008".
;Для получения в R7 адреса переменной RamCap нужно будет написать "bl A0FC0640". На любом телефоне и на любой прошивке.
;После портирования этого патча на определенную прошивку - для портирования других патчей
;в большинстве случаев достаточно будет поменять только место врезки.
;Для портирования этого патча на другие прошивки используйте Smelter - Инструменты - Библиотека функций.

;It is auxiliary patch. It consist of 200 most useable function, 28 variables and 28 constants.
;After applying this patch for calling (for example) GetWeek - you should write "bl A0FC0008".
;For getting in R7 address of variable RamCap you sould write "bl A0FC0640". In any mobile. In any firmware.
;After porting this patch to some firmware - in most cases for porting another patches you just need to change a EntryPoint.
;For porting this patch use Smelter - Tools - Function library.

;004F3847 = LDR R7, [...]; BX R7
;004FF746 = LDR R7, [...]; MOV PC,LR

+0FC0000
#pragma enable old_equal_ff
;----------------------------------------------------------------------
;Functions
;----------------------------------------------------------------------

000: 004F3847,0xA07D801B   ; f000: GetDateTime
008: 004F3847,0xA0208397   ; f001: GetWeek
010: 004F3847,0xA02BF391   ; f002: GetProfile
018: 004F3847,0xA02BF23F   ; f003: SetProfile
020: 004F3847,0xA0EF24EC   ; f004: dwMODdw
028: 004F3847,0xA020EAF5   ; f005: DecToHex
030: 004F3847,0xA0819BA8   ; f006: GetAkku
038: 004F3847,0xA0A83159   ; f007: GetLP
040: 004F3847,0xA081AA3C   ; f008: SetIllumination
048: 004F3847,0xA0A97E0C   ; f009: SwitchPhoneOff
;
050: 004F3847,0xA07CAE9C   ; f010: fopen
058: 004F3847,0xA07CAEDC   ; f011: fread
060: 004F3847,0xA07CAFC4   ; f012: fwrite
068: 004F3847,0xA07CADF0   ; f013: fclose
070: 004F3847,0xA07CAE20   ; f014: fflush
078: 004F3847,0xA07CAE50   ; f015: lseek
080: 004F3847,0xA08DC8D4   ; f016: mkdir
088: 004F3847,0xA08F769B   ; f017: OpenReadCloseFile
090: 004F3847,0xA08DCDC8   ; f018: GetFileAttrib
098: 004F3847,0xA08DC8D4   ; f019: SetFileAttrib
;
0A0: 004F3847,0xA0203B60   ; f020: malloc
0A8: 004F3847,0xA0203BC8   ; f021: mfree
0B0: 004F3847,0xA0EF11AD   ; f022: sPrintf
0B8: 004F3847,0xA0EF2A95   ; f023: strcat
0C0: 004F3847,0xA0EF2AB5   ; f024: strchr
0C8: 004F3847,0xA0EF2AD8   ; f025: strcmp
0D0: 004F3847,0xA0EF2B75   ; f026: strcopy
0D8: 004F3847,0xA0EF2BF5   ; f027: StrLen
0E0: 004F3847,0xA07BC0E9   ; f028: wsAppendChar
0E8: 004F3847,0xA07BC09D   ; f029: wsInsertChar
;
0F0: 004F3847,0xA0800055   ; f030: GetPITaddr
0F8: 004F3847,0xA02CCC6F   ; f031: DrawMainScreen
100: 004F3847,0xA0CD18AD   ; f032: DrawScreenSaver
108: 004F3847,0xA080019B   ; f033: GetImgHeight
110: 004F3847,0xA08001AB   ; f034: GetImgWidth
118: 004F3847,0xA02A933B   ; f035: DrawImg
120: 004F3847,0xA07F6A31   ; f036: DrawImage2
128: 004F3847,0xA02A9315   ; f037: DrawCanvas
130: 004F3847,0xA07F6971   ; f038: DrawImgBW
138: 004F3847,0xA02A8BFD   ; f039: AddIconToIconbar
;
140: 004F3847,0xA081BC60   ; f040: getEELiteMaxID
148: 004F3847,0xA07C97F4   ; f041: getEEFullMaxID
150: 004F3847,0xA081BB1C   ; f042: GetEELiteBlockAddress
158: 004F3847,0xA081BC04   ; f043: getEELiteBlockSizeVersion
160: 004F3847,0xA07C9438   ; f044: getEEFullBlockSizeVersion
168: 004F3847,0xA081BC94   ; f045: StartWriteEELiteBlock
170: 004F3847,0xA081BD10   ; f046: FinishWriteEELiteBlock
178: 004F3847,0xA081BC6C   ; f047: DeleteEELiteBlock
180: 004F3847,0xA081BCCC   ; f048: WriteEELiteBlock
;188: 004F3847,0x   ; f049: 
;
190: 004F3847,0xA02FC2FC   ; f050: PlaySound
198: 004F3847,0xA02F1BF4   ; f051: PlaySound2
1A0: 004F3847,0xA02B49BC   ; f052: PlaySoundLoop
1A8: 004F3847,0xA0589813   ; f053: AlarmClockRing
1B0: 004F3847,0xA04F2049   ; f054: GetATCmdString
1B8: 004F3847,0xA0593B87   ; f055: OriginalATCGSN
1C0: 004F3847,0xA04F19E5   ; f056: PostAtCommand
1C8: 004F3847,0xA04F3137   ; f057: SendATAnswerStr
1D0: 004F3847,0xA08FB239   ; f058: mfree_high
1D8: 004F3847,0xA0EF1E89   ; f059: MemChr
;
1E0: 004F3847,0xA07CAF1C   ; f060: SetFileSize
1E8: 004F3847,0xA050DA7B   ; f061: editOrNewTXTModule
1F0: 004F3847,0xA04EE215   ; f062: LoadProcesses
1F8: 004F3847,0xA07F7699   ; f063: SelectColor
200: 004F3847,0xA03266CB   ; f064: GetVibraStatus
208: 004F3847,0xA08355C7   ; f065: GetProvider
210: 004F3847,0xA02CFFD1   ; f066: IsScreenSaver
218: 004F3847,0xA07FF1F3   ; f067: IsUnlocked
220: 004F3847,0xA0859DF5   ; f068: TempLigntOn
228: 004F3847,0xA0351658   ; f069: GetWavLen
;
230: 004F3847,0xA02CF4C9   ; f070: HasNewSMS
238: 004F3847,0xA02CE605   ; f071: HasFlashSMS
240: 004F3847,0xA02CB04F   ; f072: ReadNewSMS
248: 004F3847,0xA050FB26   ; f073: ReadFlashSMS
250: 004F3847,0xA02F46F8   ; f074: PlayFile
258: 004F3847,0xA088D214   ; f075: StartMidlet
260: 004F3847,0xA05573B1   ; f076: GetMissedCallsCount
268: 004F3847,0xA020AE5C   ; f077: CallAfterTimer
270: 004F3847,0xA07C20D3   ; f078: SMessageBox_OK_2
278: 004F3847,0xA07C20E3   ; f079: MessageBox_Warning
;
280: 004F3847,0xA07C214B   ; f080: MessageBox_Question_Yes_No_2
288: 004F3847,0xA0B3F6A5   ; f081: GetNetAccessMode
290: 004F3847,0xA081B0E8   ; f082: GetIlluminationDataTable
298: 004F3847,0xA0EF1EAB   ; f083: memcmp
2A0: 004F3847,0xA020EB31   ; f084: StrToInt
2A8: 004F3847,0xA03266E1   ; f085: SwitchVibraOnOff
;2B0: 004F3847,0x   ; f086: 
2B8: 004F3847,0xA020AF68   ; f087: IsCallAfterTimerStillRunning
2C0: 004F3847,0xA0219E88   ; f088: ClearMemory
2C8: 004F3847,0xA0EF2378   ; f089: MemCopy
;
2D0: 004F3847,0xA07FEA6F   ; f090: KeypressOn
2D8: 004F3847,0xA07FEB9D   ; f091: KeypressOff
2E0: 004F3847,0xA03B50F5   ; f092: GetCPUClock
2E8: 004F3847,0xA03B512F   ; f093: GetCPULoad
2F0: 004F3847,0xA03B50FD   ; f094: GetMMIMemUsed
2F8: 004F3847,0xA03B5107   ; f095: GetNonPermMemAvail
;300: 004F3847,0x   ; f096: 
;308: 004F3847,0x   ; f097: 
;310: 004F3847,0x   ; f098: 
;318: 004F3847,0x   ; f099: 
; 
320: 004F3847,0xA0626594   ; f100: EndUpdateScreen
328: 004F3847,0xA0833035   ; f101: EndCall
330: 004F3847,0xA07CBF17   ; f102: EndCallBusy
338: 004F3847,0xA02A8649   ; f103: IsDirectCallActive
340: 004F3847,0xA02A5D93   ; f104: GetScreenSaverRAM
348: 004F3847,0xA020C064   ; f105: LockShed
350: 004F3847,0xA020C0EC   ; f106: UnLockShed
358: 004F3847,0xA07CABD4   ; f107: FindFirstFile
360: 004F3847,0xA07CAC10   ; f108: FindNextFile
368: 004F3847,0xA07CAB5C   ; f109: FindClose
;
370: 004F3847,0xA0AADF43   ; f110: IsCalling
378: 004F3847,0xA02C9B73   ; f111: RefreshGPRSTraffic
380: 004F3847,0xA02C9B91   ; f112: GetGPRSTrafficPointer
388: 004F3847,0xA07F53C7   ; f113: DrawFrame
;390: 004F3847,0x   ; f114: SetCurrentSecondOfCall
;398: 004F3847,0x   ; f115: GetTypeOfCall
3A0: 004F3847,0xA0326EA3   ; f116: GetFunctionPointer
3A8: 004F3847,0xA07FC305   ; f117: SetWindowMetrics
3B0: 004F3847,0xA089A9D5   ; f118: SetWindowText
3B8: 004F3847,0xA08981B3   ; f119: SetWindowColor
;
3C0: 004F3847,0xA07D8E97   ; f120: GetTimeFormat
3C8: 004F3847,0xA07FB65B   ; f121: PushWindowBuffer
3D0: 004F3847,0xA0898249   ; f122: ClearWindowBuffer
;3D8: 004F3847,0x   ; f123: 
;3E0: 004F3847,0x   ; f124: 
;3E8: 004F3847,0x   ; f125: 
;3F0: 004F3847,0x   ; f126: 
;3F8: 004F3847,0x   ; f127: 
;400: 004F3847,0x   ; f128: 
;408: 004F3847,0x   ; f129: 
;
;410: 004F3847,0x   ; f130: 
;418: 004F3847,0x   ; f131: 
;420: 004F3847,0x   ; f132: 
;428: 004F3847,0x   ; f133: 
;430: 004F3847,0x   ; f134: 
;438: 004F3847,0x   ; f135: 
;440: 004F3847,0x   ; f136: 
;448: 004F3847,0x   ; f137: 
;450: 004F3847,0x   ; f138: 
;458: 004F3847,0x   ; f139: 
;
;460: 004F3847,0x   ; f140: 
;468: 004F3847,0x   ; f141: 
;470: 004F3847,0x   ; f142: 
;478: 004F3847,0x   ; f143: 
;480: 004F3847,0x   ; f144: 
;488: 004F3847,0x   ; f145: 
;490: 004F3847,0x   ; f146: 
;498: 004F3847,0x   ; f147: 
;4A0: 004F3847,0x   ; f148: 
;4A8: 004F3847,0x   ; f149: 
;
;4B0: 004F3847,0x   ; f150: 
;4B8: 004F3847,0x   ; f151: 
;4C0: 004F3847,0x   ; f152: 
;4C8: 004F3847,0x   ; f153: 
;4D0: 004F3847,0x   ; f154: 
;4D8: 004F3847,0x   ; f155: 
;4E0: 004F3847,0x   ; f156: 
;4E8: 004F3847,0x   ; f157: 
;4F0: 004F3847,0x   ; f158: 
;4F8: 004F3847,0x   ; f159: 
;
500: 004F3847,0xA07BB64B   ; f160: Uncicode_sprintf
508: 004F3847,0xA0208A21   ; f161: Unicode_CopyStr2Str
510: 004F3847,0xA07BBBDB   ; f162: Unicode_GetCharByPosition
;518: 004F3847,0x   ; f163: 
;520: 004F3847,0x   ; f164: 
;528: 004F3847,0x   ; f165: 
;530: 004F3847,0x   ; f166: 
;538: 004F3847,0x   ; f167: 
;540: 004F3847,0x   ; f168: 
;548: 004F3847,0x   ; f169: 
;
;----------API functions-----------------------------------------------
550: 004F3847,0xA0FCF001   ; f170: OpenWriteCloseFile
558: 004F3847,0xA0FCF051   ; f171: Hex2Int
;560: 004F3847,0x   ; f172: 
;568: 004F3847,0x   ; f173: 
;570: 004F3847,0x   ; f174: 
;578: 004F3847,0x   ; f175: 
;580: 004F3847,0x   ; f176: 
;588: 004F3847,0x   ; f177: 
;590: 004F3847,0x   ; f178: 
;598: 004F3847,0x   ; f179: 
;
;5A0: 004F3847,0x   ; f180: 
;5A8: 004F3847,0x   ; f181: 
;5B0: 004F3847,0x   ; f182: 
;5B8: 004F3847,0x   ; f183: 
;5C0: 004F3847,0x   ; f184: 
;5C8: 004F3847,0x   ; f185: 
;5D0: 004F3847,0x   ; f186: 
;5D8: 004F3847,0x   ; f187: 
;5E0: 004F3847,0x   ; f188: 
;5E8: 004F3847,0x   ; f189: 
;
;----------Main MP Functions & System Patches--------------------------
5F0: 004F3847,0xA0FC0C81   ; f190: RunScaner
5F8: 004F3847,0xA0FC3001   ; f191: SpellTime
;600: 004F3847,0xA1F80607  ; f192: MiniGPS 0.8
600: 004F3847,0xA0FC7601   ; f192: MiniGPS 1.02b
;608: 004F3847,0x   ; f193: 
610: 004F3847,0xA0FC12A1   ; f194: GetAllPatchesByInject  
;618: 004F3847,0x   ; f195: 
;620: 004F3847,0x   ; f196: 
;628: 004F3847,0x   ; f197: 
;630: 004F3847,0x   ; f198: 
;638: 004F3847,0x   ; f199: 
;
640: 004FF746,0xA850D364   ; v00: RamCap
648: 004FF746,0xA850D366   ; v01: RamLS
650: 004FF746,0xA851A9D0   ; v02: RamNet
658: 004FF746,0xA851A9D6   ; v03: RamNetRX 
660: 004FF746,0xA8411778   ; v04: RamMissedCalls
668: 004FF746,0xA841176C   ; v05: RamMissedSMS
670: 004FF746,0xA84D12BC   ; v06: RamDateTime
678: 004FF746,0xA8526624   ; v07: RamAlarm
680: 004FF746,0xA8559370   ; v08: RamAccPoint
688: 004FF746,0xA84CB500   ; v09: RamScreensaver
;
690: 004FF746,0xA84D12E4   ; v10: RamAutoTime
698: 004FF746,0xA84CB508   ; v11: RamStby
6A0: 004FF746,0xA841175C   ; v12: RamMissedMes
6A8: 004FF746,0xA84FF8F0   ; v13: RamIsLocked
6B0: 004FF746,0xA84CFC60   ; v14: RamNetOnline
;6B8: 004FF746,0x   ; v15: 
;6C0: 004FF746,0x   ; v16: 
;6C8: 004FF746,0x   ; v17: 
6D0: 004FF746,0xA85597BC   ; v18: RamIsShutdown
6D8: 004FF746,0xA84CB534   ; v19: RamMainscreenAccuIcon
;
;6E0: 004FF746,0x   ; v20: 
;6E8: 004FF746,0x   ; v21: 
;6F0: 004FF746,0x   ; v22: 
;6F8: 004FF746,0x   ; v23: 
;700: 004FF746,0x   ; v24: 
;708: 004FF746,0x   ; v25: 
;710: 004FF746,0x   ; v26: 
718: 004FF746,0xA851BC5C   ; v27: RamProfileNum
;
720: 004FF746,0xA8780000   ; z00: FreeRAM
728: 004FF746,0x000012FC   ; z01: LP_MonthShort
730: 004FF746,0x000004FF   ; z02: Pic_Big0
738: 004FF746,0x0000047A   ; z03: Pic_Little0
740: 004FF746,0x0000050D   ; z04: Pic_Extra
748: 004FF746,0x00000565   ; z05: Pic_Profiles
750: 004FF746,0x00000313   ; z06: Pic_Vibra
758: 004FF746,0x000004B6   ; z07: Pic_Call
760: 004FF746,0x0000056C   ; z08: Pic_AdvNet
768: 004FF746,0x000011EA   ; z09: LP_MonthsLong
;
770: 004FF746,0x00000427   ; z10: LP_Weekdays
778: 004FF746,0x0000057D   ; z11: Pic_Calendar
;780: 004FF746,0x   ; z12: Pic_AccuGraph
;788: 004FF746,0x   ; z13: 
;790: 004FF746,0x   ; z14: 
;798: 004FF746,0x   ; z15: 
;7A0: 004FF746,0x   ; z16: 
;7A8: 004FF746,0x   ; z17: 
;7B0: 004FF746,0x   ; z18: 
;7B8: 004FF746,0x   ; z19: 
;
7C0: 004FF746,0xA0FD0050 ; z20: Additional PIT address
7C8: 004FF746,0x00000557 ; z21: Additional PIT start num
7D0: 004FF746,0x000005BB ; z22: Additional PIT end num
;7D8: 004FF746,0x   ; z23: 
;7E0: 004FF746,0x   ; z24: 
;7E8: 004FF746,0x   ; z25: 
;7F0: 004FF746,0x   ; z26: 
;7F8: 004FF746,0x   ; z27: 
#pragma disable old_equal_ff
+0
;------------------------- end -------------------------

