;
*Big digital clock on the main screen v7*;(c) avkiev
;S75v32
;(!) MS-dispatcher
#pragma enable old_equal_ff
0061400: 01B53048FFF7FCFB3BD0FFF745F93868
0061410: 002836D0FEF700FF0130717CC14030D3
0061420: 0020F071311DFEF7EBFD7478B5780098
0061430: 8069211C2A1C131C2433012788B40B1C
0061440: 6633FEF771FE88BC317900F01BF8F078
0061450: 022809D0012803D0F068C143F16003D4
0061460: 0B2000F016F8183C0C34717900F00AF8
0061470: 307C002805D0B179403C1C35F57100F0
0061480: 01F801BD01B50A20FEF7CAFD00F001F8
0061490: 00E002B5FFF74CF9F379002B01D0FFF7
00614A0: 4BF93A1870B40BBC1433002780B4FEF7
00614B0: 3FFE80BC1834F379002B00D0103C01BD
00614C0: 0xB1C2D3E4,0x0100AB02,0xA0061401,00000000,"\
{p=`Big Digital Clock` ver=7 cp=avkiev id=0100AB02}\
{1 xy Position x=15 y=100}\
{3 o Colon `Blink`=0 `On`=1 `Off`=2}\
{16 cb `Show seconds` v=1}\
{17.0 cb `Show in lock` v=1}\
{17.1 cb `Show in unlock`}\
{20 h Color ml=4 v=FFFFFFFF}\
",00
#pragma disable old_equal_ff
;
*Master-patch v8*;S75;(c) avkiev
;(r) 1nvisible, chaos
;(!) Library (+API)
;This patch is made to control other patches settings from mobile without connecting it to the computer.
;You must create the folder 0:\Misc\Patches\ptc before installing it
;Run Scaner on startup
;Entrypoint must be aligned to word (4 bytes). If no - subtract 2 and insert NOP
02F9980: 4968041CDB4B0904 00498847,0xA0060C81 ; S75v32
;Run Refresher instead of REMOTE_SYNCHRONIZATION
04342DC: 0xA03775CD 0xA0060C61 ; S75v32
+0060000
#pragma enable old_equal_ff
;Bufferizator
C00: 90B5FFF78DFD3C68002C1FD026688642
C10: 03D01034002EF9D118E06668002E0BD1
C20: 88B0021C68467AA1FFF742FA6846211D
C30: FFF72AFA08B0666834788020204005D0
C40: FFF7E6F901218140214000D10026301C
C50: 90BD
;Refresher
C60: 90B5FFF75DFD3C68103C103420680028
C70: 05D06068FFF718FA00206060F5E790BD
;Scaner
C80: F1B50124A002FFF70BFA061CFFF748FD
C90: 3E60E003FFF704FA071C41B410214A03
CA0: 514C504D20684D4B984242D04A4B9842
CB0: 3FD0474B98423CD0464B984239D0484B
CC0: 984234D0A3182068A84203D100F060F8
CD0: 0F20844364189C42F5D1444B9C42E1D1
CE0: 3D1C53A022A10131FFF796FC00203060
CF0: 009E3FA00A010321090201316B46FFF7
D00: A7F9041C311CAA1B6B46FFF7A9F9201C
D10: 6946FFF7A9F9301CFFF7C6F9F7BC01BC
D20: 696861231B02E3330904043000479300
D30: E418A418D1E7
;Dispatcher
D40: 3FB5FFF7EDFC3D68103D103528680028
D50: 0AD0E878B042F8D1AF6860B460BC3FBC
D60: 88B0B84760BCF0E73FBD
;Auxiliary
D70: 00B5041C1B49043422688A42FBD1A768
D80: E71BA7602F1C00F003F83D1C00BD
D90: 00B56068306000207060A068B060E068
DA0: F060E079002805D1A068002802D0FEB4
DB0: 8047FEBC103410362078387001340137
DC0: 0028F9D1013F0A203870013700BD
;Data
DD0: "EELI","EEFU","FFS_","FFS",00 ; Skip 128K
DE0: 0x0000BBBB,0xB1C2D3E4,0xA0000000,0xA2000000 ; LGP (skip 640K), Magic, From, To
DF0: "0:\\Misc\\Patches\\ptc\\configs.txt",00
E10: "0:\\Misc\\Patches\\ptc\\%08x.ptc",00
E30: "0:\\Misc\\Patches\\Dis\\*.dis",00
#pragma disable old_equal_ff
DE8: 0xA0000000 0xA0060000 ; From
DEC: 0xA2000000 0xA0080000 ; To
+0
;Bufferizator. PatchTable must exists before calling.
;All patches call Bufferizator for getting own options and buffer.
;Input: R0 - PatchId
;If buffer already was allocated - return it in R0 and R6 (Z=0).
;If else - tryes allocate buffer by reading according ptc-file (0:\Misc\Patches\%08x.ptc).
;If success - return it in R0 and R6 (Z=0), and write it in PatchTable.
;If no - return 0 in R0 and R6 (Z=1).
;If patch was disabled globally or in current profile - set Z=1.
;Example of calling Bufferizator from patch:
; LoadReg 0, config+4 ; r0-PatchId
; bl Bufferizator
; beq NoPatch
;
;Refresher. You should assign it to any button (Remote Synchronization).
;It need for hot-refreshing patches options after running MasterMidlet.
;After calling Bufferizator - memory will allocate again, by help reading according ptc-file.
;
;Scaner. Scans whole flash, searchs configs, merge theirs in file (max=32K), runs theirs startups,
;creates PatchTable (max=1K=64 patches), address of PatchTable writes in RAM.
;
;Dispatcher
;It is procedure from master-patch, which calls all patches with ID's high byte equal to parameter, which passed via R6.
;It needs for calling several patches from one entrypoint.
;MasterMidlet:
avkiev.kiev.ua/Siemens/Soft/Master_S75.rar;
*Functions and variables library*;S75v32 -;12.05.2006
;(!) API
;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 A0060008".
;For getting in R7 address of variable RamCap you sould write "bl A0060640". 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
+0060000
#pragma enable old_equal_ff
000: 004F3847,0xA08FAB2F ; f000: GetDateTime
008: 004F3847,0xA026BB47 ; f001: GetWeek
010: 004F3847,0xA0287E0B ; f002: GetProfile
;018: 004F3847,0x ; f003: SetProfile
020: 004F3847,0xA0FC2ADC ; f004: dwMODdw
028: 004F3847,0xA026CB85 ; f005: DecToHex
;030: 004F3847,0x ; f006: GetAkku
038: 004F3847,0xA006F071 ; f007: GetLP
040: 004F3847,0xA01B40B4 ; f008: SetIllumination
048: 004F3847,0xA0231A04 ; f009: SwitchPhoneOff
;
050: 004F3847,0xA0250320 ; f010: fopen
058: 004F3847,0xA02503A0 ; f011: fread
060: 004F3847,0xA02504D0 ; f012: fwrite
068: 004F3847,0xA0250274 ; f013: fclose
070: 004F3847,0xA02502A4 ; f014: fflush
078: 004F3847,0xA02502D4 ; f015: lseek
;080: 004F3847,0x ; f016: mkdir
088: 004F3847,0xA006F011 ; f017: OpenReadCloseFile
;090: 004F3847,0x ; f018: GetFileAttrib
;098: 004F3847,0x ; f019: SetFileAttrib
;
0A0: 004F3847,0xA0094B50 ; f020: malloc
0A8: 004F3847,0xA0094BAC ; f021: mfree
0B0: 004F3847,0xA0FC16DD ; f022: sPrintf
0B8: 004F3847,0xA0FC3149 ; f023: strcat
0C0: 004F3847,0xA0FC3169 ; f024: strchr
0C8: 004F3847,0xA0FC318C ; f025: strcmp
0D0: 004F3847,0xA0FC3229 ; f026: strcopy
0D8: 004F3847,0xA0FC32A9 ; f027: StrLen
0E0: 004F3847,0xA01F529D ; f028: wsAppendChar
0E8: 004F3847,0xA01F5251 ; f029: wsInsertChar
;
;0F0: 004F3847,0x ; f030: GetPITaddr
;0F8: 004F3847,0x ; f031: DrawMainScreen
;100: 004F3847,0x ; f032: DrawScreenSaver
108: 004F3847,0xA09739E7 ; f033: GetImgHeight
110: 004F3847,0xA09739F7 ; f034: GetImgWidth
118: 004F3847,0xA029A5E5 ; f035: DrawImg
120: 004F3847,0xA09FEF7F ; f036: DrawImage2
128: 004F3847,0xA0299ADF ; f037: DrawCanvas
130: 004F3847,0xA09FEEA9 ; f038: DrawImgBW
138: 004F3847,0xA0299D05 ; f039: AddIconToIconbar
;
;140: 004F3847,0x ; f040: getEELiteMaxID
;148: 004F3847,0x ; f041: getEEFullMaxID
;150: 004F3847,0x ; f042: GetEELiteBlockAddress
;158: 004F3847,0x ; f043: getEELiteBlockSizeVersion
;160: 004F3847,0x ; f044: getEEFullBlockSizeVersion
;168: 004F3847,0x ; f045: StartWriteEELiteBlock
;170: 004F3847,0x ; f046: FinishWriteEELiteBlock
;178: 004F3847,0x ; f047: DeleteEELiteBlock
;180: 004F3847,0x ; f048: WriteEELiteBlock
188: 004F3847,0xA0FC33F1 ; f049: StrChrRev
;
;190: 004F3847,0x ; f050: PlaySound
198: 004F3847,0xA027670C ; f051: PlaySound2
1A0: 004F3847,0xA0B32FC0 ; f052: PlaySoundLoop
;1A8: 004F3847,0x ; f053: AlarmClockRing
;1B0: 004F3847,0x ; f054: GetATCmdString
1B8: 004F3847,0xA09A2AA5 ; f055: OriginalATCGSN
;1C0: 004F3847,0x ; f056: PostAtCommand
1C8: 004F3847,0xA08E4E5D ; f057: SendATAnswerStr
;1D0: 004F3847,0x ; f058: mfree_high
1D8: 004F3847,0xA0FC2445 ; f059: MemChr
;
;1E0: 004F3847,0x ; f060: SetFileSize
;1E8: 004F3847,0x ; f061: editOrNewTXTModule
;1F0: 004F3847,0x ; f062: LoadProcesses
1F8: 004F3847,0xA096EC21 ; f063: SelectColor
;200: 004F3847,0x ; f064: GetVibraStatus
;208: 004F3847,0x ; f065: GetProvider
;210: 004F3847,0x ; f066: IsScreenSaver
218: 004F3847,0xA08FE55F ; f067: IsUnlocked
;220: 004F3847,0x ; f068: TempLigntOn
;228: 004F3847,0x ; f069: GetWavLen
;
;230: 004F3847,0x ; f070: HasNewSMS
;238: 004F3847,0x ; f071: HasFlashSMS
;240: 004F3847,0x ; f072: ReadNewSMS
;248: 004F3847,0x ; f073: ReadFlashSMS
;250: 004F3847,0x ; f074: PlayFile
;258: 004F3847,0x ; f075: StartMidlet
;260: 004F3847,0x ; f076: GetMissedCallsCount
268: 004F3847,0xA0093278 ; f077: CallAfterTimer
;270: 004F3847,0x ; f078: ShowMsgInR1_3
;278: 004F3847,0x ; f079: ShowMsgInR1_4
;
;280: 004F3847,0x ; f080: ShowMsgInR1_7
288: 004F3847,0xA0D4B2AF ; f081: GetNetAccessMode
;290: 004F3847,0x ; f082: GetIlluminationDataTable
298: 004F3847,0xA0FC2469 ; f083: memcmp
2A0: 004F3847,0xA02BEA8D ; f084: StrToInt
;2A8: 004F3847,0x ; f085: SwitchVibraOnOff
;2B0: 004F3847,0x ; f086:
;2B8: 004F3847,0x ; f087: IsCallAfterTimerStillRunning
2C0: 004F3847,0xA001838C ; f088: ClearMemory
;2C8: 004F3847,0x ; f089: MemCopy
;
;2D0: 004F3847,0x ; f090: KeypressOn
;2D8: 004F3847,0x ; f091: KeypressOff
;2E0: 004F3847,0x ; f092: GetCPUClock
;2E8: 004F3847,0x ; f093: GetCPULoad
;2F0: 004F3847,0x ; f094: GetMMIMemUsed
;2F8: 004F3847,0x ; f095: GetNonPermMemAvail
;300: 004F3847,0x ; f096: ShowMainMenu
;308: 004F3847,0x ; f097: ShowNativeMenu
;310: 004F3847,0x ; f098:
;318: 004F3847,0x ; f099: MS_Wallpaper_Flush
;
;320: 004F3847,0x ; f100: TriggerUpdate
;328: 004F3847,0x ; f101: EndCall
;330: 004F3847,0x ; f102: EndCallBusy
;338: 004F3847,0x ; f103: IsDirectCallActive
;340: 004F3847,0x ; f104: GetScreenSaverRAM
;348: 004F3847,0x ; f105: LockShed
;350: 004F3847,0x ; f106: UnLockShed
358: 004F3847,0xA024FDF0 ; f107: FindFirstFile
360: 004F3847,0xA024FE70 ; f108: FindNextFile
368: 004F3847,0xA024FD38 ; f109: FindClose
;
;370: 004F3847,0x ; f110: IsCalling
;378: 004F3847,0x ; f111: RefreshGPRSTraffic
;380: 004F3847,0x ; f112: GetGPRSTrafficPointer
;388: 004F3847,0x ; f113: DrawFrame
;390: 004F3847,0x ; f114: SetCurrentSecondOfCall
;398: 004F3847,0x ; f115: GetTypeOfCall
;3A0: 004F3847,0x ; f116: GetFunctionPointer
;3A8: 004F3847,0x ; f117: SetWindowMetrics
;3B0: 004F3847,0x ; f118: SetWindowText
;3B8: 004F3847,0x ; f119: SetWindowColor
;
;3C0: 004F3847,0x ; f120: PushWindowBuffer
;3C8: 004F3847,0x ; f121:
;3D0: 004F3847,0x ; f122:
;3D8: 004F3847,0x ; f123: GetProfileFilter
;3E0: 004F3847,0x ; f124: SetVibration
;3E8: 004F3847,0x ; f125: IsIncognitoCall
;3F0: 004F3847,0x ; f126:
;3F8: 004F3847,0x ; f127:
400: 004F3847,0xA05DBC51 ; f128: GetCallsList
;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,0x ; f160: Unicode_sprintf
;508: 004F3847,0x ; f161: Unicode_CopyStr2Str
;510: 004F3847,0x ; f162: Unicode_GetCharByPosition
518: 004F3847,0xA0250A60 ; f163: ws_2str
;520: 004F3847,0x ; f164:
;528: 004F3847,0x ; f165:
;530: 004F3847,0x ; f166:
;538: 004F3847,0x ; f167:
;540: 004F3847,0x ; f168:
;548: 004F3847,0x ; f169:
;
;550: 004F3847,0x ; f170:
;558: 004F3847,0x ; 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:
;
5F0: 004F3847,0xA0060C81 ; f190: RunScaner
;5F8: 004F3847,0x ; f191: SpellTime
;600: 004F3847,0x ; f192: MiniGPS
608: 004F3847,0xA0060D41 ; f193: RunDispatcher
;610: 004F3847,0x ; f194: GetAllPatchesByInject
618: 004F3847,0xA006F0B1 ; f195: ProcessFiles
;620: 004F3847,0x ; f196:
;628: 004F3847,0x ; f197:
;630: 004F3847,0x ; f198:
;638: 004F3847,0x ; f199:
;
;640: 004FF746,0x ; v00: RamCap
;648: 004FF746,0x ; v01:
;650: 004FF746,0x ; v02: RamNet
;658: 004FF746,0x ; v03:
;660: 004FF746,0x ; v04: RamMissedCalls
;668: 004FF746,0x ; v05: RamMissedSMS
;670: 004FF746,0x ; v06: RamDateTime
;678: 004FF746,0x ; v07: RamAlarm
;680: 004FF746,0x ; v08: RamAccPoint
;688: 004FF746,0x ; v09: RamScreensaver
;
;690: 004FF746,0x ; v10: RamAutoTime
698: 004FF746,0xA8A80000 ; v11: RamStby
;6A0: 004FF746,0x ; v12: RamMissedMes
;6A8: 004FF746,0x ; v13: RamIsLocked
;6B0: 004FF746,0x ; v14: RamNetOnline
;6B8: 004FF746,0x ; v15: RamScreenBrightness
;6C0: 004FF746,0x ; v16: RamMenuAnywhere
;6C8: 004FF746,0x ; v17: RamShutdownMode
;6D0: 004FF746,0x ; v18: RamIsShutdown
;6D8: 004FF746,0x ; 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,0xA8B533C4 ; v27: RamProfileNum
;
720: 004FF746,0xA8A80000 ; z00: FreeRAM
728: 004FF746,0x0000123D ; z01: LP_MonthsShort
730: 004FF746,0x00000260 ; z02: Pic_Big0
738: 004FF746,0x00000830 ; z03: Pic_Little0
;740: 004FF746,0x ; z04: Pic_Extra
;748: 004FF746,0x ; z05: Pic_Profiles
;750: 004FF746,0x ; z06: Pic_Vibra
;758: 004FF746,0x ; z07: Pic_Call
;760: 004FF746,0x ; z08: Pic_AdvNet
;768: 004FF746,0x ; z09: LP_MonthsLong
;
;770: 004FF746,0x ; z10: LP_Weekdays
;778: 004FF746,0x ; 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,0x ; z20: Additional_PIT_address
;7C8: 004FF746,0x ; z21: Additional_PIT_start
;7D0: 004FF746,0x ; z22: Additional_PIT_end
;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
;
*Replace Name of Mobile in *#06# to "S75LE"*;s75v32
; (c) Spider13
08108E: 5337350033 5337354C45; S75LE (Limited Edition)