1 // !!! THIS FILE IS GENERATED. DO NOT EDIT. !!! 2 #include "stubs_asm.h" 3 4 // Camera info: 5 // Main firmware start: 0xfc020000 6 // DRYOS R59 (DRYOS version 2.3, release #0059+p4) @ 0xfc5e2500 ref @ 0xfc048e34 7 // Firmware Ver GM1.00C // Found @ 0xfc3b38a0, "GM1.00C" @ 0xfc3b38ad 8 9 // Values for makefile.inc 10 // PLATFORMOSVER = 59 11 // DIGIC = 60 12 // MEMISOSTART = 0x3976c0 13 // MEMBASEADDR = 0x8000 14 // ARAM_HEAP_START = 0x006ce000# Found @0xfc3edc70 15 // ARAM_HEAP_SIZE = 0x00022000# Found @0xfc3edc44 16 17 // Detected address ranges: 18 // ROM 0xfc000000 - 0xfe000000 (33554432 bytes) 19 // RAM code 0x010e1000 - 0x010fc278 copied from 0xfcdcd810 ( 111224 bytes) 20 // TCM code 0xbfe10800 - 0xbfe1633d copied from 0xfcde8a88 ( 23357 bytes) 21 // RAM data 0x00008000 - 0x000347d4 copied from 0xfcda103c ( 182228 bytes) 22 // EVEC 0x00000000 - 0x00000038 copied from 0xfc05c9f0 ( 56 bytes) 23 24 // Zico Xtensa blobs: 25 // zico_0 0xbff20000 - 0xbff27a50 copied from 0xfcb951dc ( 31312 bytes) 26 // zico_1 0xbff00000 - 0xbff04ad0 copied from 0xfcb9cc34 ( 19152 bytes) 27 // zico_2 0x80a00000 - 0x80b16788 copied from 0xfcba170c (1140616 bytes) 28 29 // Omar ARM blobs: 30 // omar_0 0xdff00000 - 0xdff00f48 copied from 0xfc5e2570 ( 3912 bytes) 31 // omar_1 0x40700000 - 0x407506f4 copied from 0xfc5e34b8 ( 329460 bytes) 32 33 // Found DryOS versions: 34 // 0xfc5e2500 main "DRYOS version 2.3, release #0059+p4" 35 // 0xfc5f92f4 other "DRYOS version 2.3, release #0059+p4" 36 // 0xfcba28dc other "DRYOS version 2.3, release #0058+p8" 37 // 0xfd29b220 other "DRYOS version 2.3, release #0059+p3" 38 39 // CreateTask is not in RAM code 40 // use hook_CreateTask_low instead 41 42 // Values below go in 'platform_camera.h': 43 //#define CAM_DRYOS 1 44 //#define CAM_DRYOS_2_3_R39 1 // Defined for cameras with DryOS version R39 or higher 45 //#define CAM_DRYOS_2_3_R47 1 // Defined for cameras with DryOS version R47 or higher 46 //#define CAM_DRYOS_2_3_R59 1 // Defined for cameras with DryOS version R59 or higher 47 //#define CAM_HAS_WIFI 1 // Firmware has wifi support (only define if camera has hardware) 48 //#undef CAM_UNCACHED_BIT 49 //#define CAM_UNCACHED_BIT 0x40000000 // Found @0xfc1d4d54 50 //#undef CAM_HAS_ND_FILTER // Camera does not have an ND filter 51 // Camera has an iris (CAM_HAS_IRIS_DIAPHRAGM default) 52 53 // physw_event_table 0xfc637df0 Found @0xfc505f7a 54 // Values below go in 'platform_kbd.h': 55 //#define SD_READONLY_FLAG 0x20000000 // Found @0xfc637eb8, levent 0x30a 56 //#define SD_READONLY_IDX 1 57 //#define USB_MASK 0x00800000 // Found @0xfc637f00, levent 0x302 58 //#define USB_IDX 2 59 //#define BATTCOVER_FLAG 0x00400000 // Found @0xfc637ef8, levent 0x305 60 //#define BATTCOVER_IDX 2 61 62 // Keymap values for kbd.c. Additional keys may be present, only common values included here. 63 // WARNING: Key name / function may vary! Values for unknown DryOS versions should not be trusted! 64 //KeyMap keymap[] = { 65 // { 0, KEY_MENU ,0x00000020 }, // Found @0xfc637e18, levent 0x15 66 // { 0, KEY_UP ,0x00000040 }, // Found @0xfc637e20, levent 0x06 67 // { 0, KEY_DOWN ,0x00000080 }, // Found @0xfc637e28, levent 0x07 68 // { 0, KEY_RIGHT ,0x00000100 }, // Found @0xfc637e30, levent 0x09 69 // { 0, KEY_SET ,0x00000200 }, // Found @0xfc637e38, levent 0x0a 70 // { 0, KEY_LEFT ,0x00000400 }, // Found @0xfc637e40, levent 0x08 71 // { 0, KEY_PLAYBACK ,0x00000800 }, // Found @0xfc637e48, levent 0x101 72 // { 0, KEY_ERASE ,0x00001000 }, // Found @0xfc637e50, levent 0x0b 73 // { 0, KEY_VIDEO ,0x00002000 }, // Found @0xfc637e58, levent 0x02 74 // { 0, KEY_WIFI ,0x00010000 }, // Found @0xfc637e60, levent 0x103 75 // { 0, KEY_POWER ,0x00020000 }, // Found @0xfc637e68, levent 0x100 76 // { 1, KEY_SHOOT_FULL ,0x00000c00 }, // Found @0xfc637ea8, levent 0x01 77 // { 1, KEY_SHOOT_FULL_ONLY ,0x00000800 }, // Found @0xfc637ea8, levent 0x01 78 // { 1, KEY_SHOOT_HALF ,0x00000400 }, // Found @0xfc637ea0, levent 0x00 79 // { 0, 0, 0 } 80 //}; 81 82 // canon_mode_list 0xfc98b1d0 Found @0xfc071134 83 // Check modemap values from 'platform/CAMERA/shooting.c': 84 // 33297 0x8211 In firmware but not in current modemap 85 86 // Known propcases 87 // // PROPCASE_AFSTEP 13 88 // #define PROPCASE_FOCUS_STATE 18 89 // #define PROPCASE_AV 23 90 // #define PROPCASE_BV 40 91 // // PROPCASE_DELTA_DIGITALGAIN 85 92 // #define PROPCASE_DELTA_SV 87 93 // // PROPCASE_DELTA_ND 88 94 // // PROPCASE_FELOCK 123 95 // #define PROPCASE_FLASH_ADJUST_MODE 130 96 // #define PROPCASE_FLASH_FIRE 131 97 // // PROPCASE_HSCAPTURE 147 98 // #define PROPCASE_EV_CORRECTION_2 220 99 // #define PROPCASE_ORIENTATION_SENSOR 232 100 // #define PROPCASE_SV_MARKET 260 101 // // PROPCASE_SVFIX 261 102 // #define PROPCASE_TV 277 103 // Guessed propset: 12 104 105 // EXMEM types: 106 // EXMEM_RAMDISK 0 107 // EXMEM_COM 1 108 // EXMEM_FORMATTER 2 109 // EXMEM_FIRMUP 3 110 // EXMEM_FIRMUP_INFLATE 4 111 // EXMEM_FIRMUP_PICTURESTYLE 5 112 // EXMEM_DVLPWORK 6 113 // EXMEM_GPS 7 114 // EXMEM_FACEAUTH 8 115 // EXMEM_OHYEARLOG 9 116 // EXMEM_WIFI 10 117 // EXMEM_MULTI_PLY 11 118 // EXMEM_FEP 12 119 // EXMEM_LENS_FIRMUP 13 120 // EXMEM_LENS_COMPENSATION 14 121 // EXMEM_FILESTORE 15 122 // EXMEM_MOVIE_REC 16 123 // EXMEM_MOVIE_PLY 17 124 // EXMEM_WIDE 18 125 // EXMEM_AUTO_GIS_MODE 19 126 // EXMEM_NP_GIS_MODE 20 127 // EXMEM_TRIPODHDR_MODE 21 128 // EXMEM_HSHQ_MODE 22 129 // EXMEM_CRAW_REC 23 130 // EXMEM_CREATIVE_SHOT 24 131 132 // Values below can be overridden in 'stubs_min.S': 133 DEF(ctypes ,0xfc699f34) // Found @0xfc03746c 134 DEF(physw_run ,0x00008190) // Found @0xfc5897da 135 DEF(physw_sleep_delay ,0x00008198) // (0x8190+0x8) Found @0xfc5897de 136 DEF(physw_status ,0x0003578c) // Found @0xfc589b26 137 DEF(fileio_semaphore ,0x000139b0) // Found @0xfc069a2a 138 DEF(levent_table ,0xfc717e28) // Found @0xfc089ce0 139 DEF(FlashParamsTable ,0xfc98b5b0) // Found @0xfc071148 140 DEF(playrec_mode ,0x0000c144) // (0xc140+0x4) Found @0xfc309b52 141 DEF(jpeg_count_str ,0x00135428) // Found @0xfc07fe00 142 DEF(zoom_busy ,0x0000bcf0) // (0xbcd0+0x20) Found @0xfc0edfea 143 DEF(focus_busy ,0x00013be4) // (0x13bdc+0x8) Found @0xfc3335da 144 DEF(imager_active ,0x0000858c) // (0x8588+0x4) Found @0xfc3aa324 145 DEF(canon_menu_active ,0x0000ce74) // (0xce6c+0x8) Found @0xfc31fdfc 146 DEF(file_counter_var ,0x000138e0) // Found @0xfc17d074 147 DEF(cameracon_state ,0x000089c0) // (0x89b0+0x10) Found @0xfc31bd9c 148 DEF(_nrflag ,0x0001c508) // (0x1c504+0x4) Found @0xfc1ed66e 149 DEF(av_override_semaphore ,0x00020cdc) // Found @0xfc43fa30 150 DEF(active_bitmap_buffer ,0x0000ce28) // (0xcddc+0x4c) Found @0xfc348e00 151 DEF(displaytype ,0x0000964c) // (0x95f0+0x5c) Found @0xfc0e36c4 152 DEF(bitmap_buffer ,0x0000ce2c) // (0xcddc+0x50) Found @0xfc348e06 153 DEF(live_free_cluster_count ,0x0013ab68) // (0x13ab30+0x38) Found @0xfc061e20 154 DEF_CONST(uiprop_count ,0x000000ea) // Found @0xfc06a720 155 DEF(exmem_alloc_table ,0x0003ec6c) // Found @0xfc3b27de 156 DEF(exmem_types_table ,0xfcda5260) // Found @0xfc3b27e2 157 DEF_CONST(exmem_type_count ,0x00000019) // Found @0xfcda5260 158 DEF(debug_logging_ptr ,0x0001bf38) // Found @0xfc1ecaba 159 DEF(debug_logging_flag ,0x0001bf30) // Found @0xfc1ecab4 160 DEF(mzrm_sendmsg_ret_adr ,0xfc3215c9) 161 DEF_CONST(fw_yuv_layer_buf ,0x41141000) // Found @0xfc073dc0 162 // focus_len_table contains zoom focus lengths for use in 'get_focal_length' (main.c). 163 // each entry contains 2 int value(s), the first is the zoom focus length. 164 // there are 127 entries in the table - set NUM_FL to 127 165 //DEF(focus_len_table ,0xfdf3167c) // Found @0xfdf3167c, stubs_min = 0xfdf3167c (0xfdf3167c) 166 167 //NHSTUB(Feof_Fut ,0x00000000) // 0 *** != 0xfc34c961 168 //NHSTUB(Fflush_Fut ,0x00000000) // 0 *** != 0xfc34c989 169 //NHSTUB(GetDrive_TotalClusters ,0x00000000) // 0 *** != 0xfc35260f 170 //NHSTUB(GetFocusLensSubjectDistanceFromLens ,0x00000000) // 0 *** != 0xfc3344bb 171 //NHSTUB(GetImageFolder ,0x00000000) // 0 *** != 0xfc32f3e7 172 //NHSTUB(MakeSDCardBootable ,0x00000000) // 0 *** != 0xfc3529d5 173 //NHSTUB(RenameFile_Fut ,0x00000000) // 0 *** != 0xfc34c711 174 //NHSTUB(SetFileAttributes ,0x00000000) // 0 *** != 0xfc3517fb 175 //NHSTUB(SetFileTimeStamp ,0x00000000) // 0 *** != 0xfc3517b3 176 //NHSTUB(SetParameterData ,0xfc06af67) // 0 *** != 0x00000000 177 //NHSTUB(_pow ,0x00000000) // 0 *** != 0x010f8718 178 //NHSTUB(apex2us ,0x00000000) // 0 *** != 0xfc219833 179 //NHSTUB(exmem_alloc ,0x00000000) // 0 *** != 0xfc3b2ddd 180 //NHSTUB(exmem_ualloc ,0x00000000) // 0 *** != 0xfc3b2d51 181 //NHSTUB(exmem_ufree ,0x00000000) // 0 *** != 0xfc3b2dad 182 //NHSTUB(CancelHPTimer ,0x00000000) // 0 *** != 0xfc3b3591 183 184 NHSTUB(CreateTask_low ,0xbfe10b85) // 0 185 NHSTUB(AllocateUncacheableMemory ,0xfc1d4d25) // 0 186 NHSTUB(Close ,0xfc3514f3) // 0 187 NHSTUB(CreateBinarySemaphore ,0xfc362e91) // 0 188 NHSTUB(CreateTask ,0xfc35c1ab) // 0 189 NHSTUB(DebugAssert ,0xfc3a893d) // 0 190 NHSTUB(DeleteDirectory_Fut ,0xfc34c7bd) // 0 191 NHSTUB(DeleteFile_Fut ,0xfc34c773) // 0 192 NHSTUB(DeleteSemaphore ,0xfc362f15) // 0 193 NHSTUB(DoAELock ,0xfc27fca3) // 0 194 NHSTUB(DoAFLock ,0xfc27f8b5) // 0 195 //NHSTUB(EnterToCompensationEVF ,0x00000000) // 0 == 0x00000000 196 NHSTUB2(ExecuteEventProcedure ,0xfc369261) // 0 197 //NHSTUB(ExitFromCompensationEVF ,0x00000000) // 0 == 0x00000000 198 NHSTUB(ExitTask ,0xfc35c399) // 0 199 //NHSTUB(ExpCtrlTool_StartContiAE ,0x00000000) // 0 == 0x00000000 200 //NHSTUB(ExpCtrlTool_StopContiAE ,0x00000000) // 0 == 0x00000000 201 NHSTUB(Fclose_Fut ,0xfc34c81f) // 0 202 NHSTUB(Fgets_Fut ,0xfc34c8fd) // 0 203 NHSTUB(Fopen_Fut ,0xfc34c7f7) // 0 204 NHSTUB(Fread_Fut ,0xfc34c891) // 0 205 NHSTUB(FreeUncacheableMemory ,0xfc1d4d51) // 0 206 NHSTUB(Fseek_Fut ,0xfc34c92f) // 0 207 NHSTUB(Fwrite_Fut ,0xfc34c8c7) // 0 208 NHSTUB(GetBatteryTemperature ,0xfc3afb1b) // 0 209 NHSTUB(GetCCDTemperature ,0xfc3afac5) // 0 210 NHSTUB(GetCurrentAvValue ,0xfc0edb41) // 0 211 NHSTUB(GetCurrentShutterSpeed ,0xfc3c6b51) // 0 212 NHSTUB(GetUsableMaxAv ,0xfc3dfcf1) // 0 213 NHSTUB(GetUsableMinAv ,0xfc3dfcdf) // 0 214 NHSTUB(get_current_deltasv ,0xfc13c98d) // 0 215 NHSTUB(GetCurrentDriveBaseSvValue ,0xfc334d0d) // 0 216 NHSTUB(GetDrive_ClusterSize ,0xfc352135) // 0 217 NHSTUB(GetFocusLensSubjectDistance ,0xfc3341c1) // 0 218 NHSTUB(GetKbdState ,0xfc5060cd) // 0 219 NHSTUB(GetMemInfo ,0xfc504c9d) // 0 220 NHSTUB(GetOpticalTemperature ,0xfc3afb6f) // 0 221 NHSTUB(GetParameterData ,0xfc06afdf) // 0 222 NHSTUB(GetPropertyCase ,0xfc35b665) // 0 223 NHSTUB(GetSystemTime ,0xfc442a25) // 0 224 NHSTUB(GetVRAMHPixelsSize ,0xfc0e0cd5) // 0 225 NHSTUB(GetVRAMVPixelsSize ,0xfc0e0cdd) // 0 226 NHSTUB(GetZoomLensCurrentPoint ,0xfc0ee23d) // 0 227 NHSTUB(GetZoomLensCurrentPosition ,0xfc183349) // 0 228 NHSTUB(GiveSemaphore ,0xfc362ffd) // 0 229 NHSTUB(IsStrobeChargeCompleted ,0xfc11ebbd) // 0 230 NHSTUB(LEDDrive ,0xfc3e9dc9) // 0 231 NHSTUB(LocalTime ,0xfc3b3ad5) // 0 232 NHSTUB(LockMainPower ,0xfc0fdddf) // 0 233 NHSTUB(MakeDirectory_Fut ,0xfc351867) // 0 234 NHSTUB(MoveFocusLensToDistance ,0xfc52e705) // 0 235 NHSTUB(MoveIrisWithAv ,0xfc43fa1d) // 0 236 NHSTUB(MoveZoomLensWithPoint ,0xfc43fd63) // 0 237 NHSTUB(Open ,0xfc3514b5) // 0 238 NHSTUB(PB2Rec ,0xfc31c543) // 0 239 NHSTUB(PT_MoveDigitalZoomToWide ,0xfc27f087) // 0 240 NHSTUB(PT_MoveOpticalZoomAt ,0xfc3ead69) // 0 241 NHSTUB(MoveOpticalZoomAt ,0xfc27ef87) // 0 242 NHSTUB(PT_PlaySound ,0xfc344929) // 0 243 NHSTUB(PostLogicalEventForNotPowerType ,0xfc35bef1) // 0 244 NHSTUB(PostLogicalEventToUI ,0xfc35bf25) // 0 245 NHSTUB(PutInNdFilter ,0xfc52e9a5) // 0 246 NHSTUB(PutOutNdFilter ,0xfc52e9cb) // 0 247 NHSTUB(Read ,0xfc3a9269) // 0 248 NHSTUB(ReadFastDir ,0xfc436cd1) // 0 249 NHSTUB(Rec2PB ,0xfc31c611) // 0 250 //NHSTUB(Restart ,0x00000000) // 0 == 0x00000000 251 NHSTUB(ScreenLock ,0xfc3484c1) // 0 252 NHSTUB(ScreenUnlock ,0xfc3485cb) // 0 253 NHSTUB(SetAE_ShutterSpeed ,0xfc52be69) // 0 254 NHSTUB(SetAutoShutdownTime ,0xfc0fde2f) // 0 255 NHSTUB(SetCurrentCaptureModeType ,0xfc355e67) // 0 256 NHSTUB(SetDate ,0xfc52d38f) // 0 257 NHSTUB(SetLogicalEventActive ,0xfc3411fd) // 0 258 NHSTUB(SetPropertyCase ,0xfc35b511) // 0 259 NHSTUB(SetScriptMode ,0xfc341235) // 0 260 NHSTUB(SleepTask ,0xfc3690b9) // 0 261 NHSTUB(TakeSemaphore ,0xfc362f85) // 0 262 //NHSTUB(TurnOffBackLight ,0x00000000) // 0 == 0x00000000 263 //NHSTUB(TurnOnBackLight ,0x00000000) // 0 == 0x00000000 264 NHSTUB(TurnOnDisplay ,0xfc166ec7) // 0 265 NHSTUB(TurnOffDisplay ,0xfc0e3701) // 0 266 NHSTUB(UnlockAE ,0xfc27fcc1) // 0 267 NHSTUB(UnlockAF ,0xfc27f8dd) // 0 268 NHSTUB(UnlockMainPower ,0xfc0fdd75) // 0 269 //NHSTUB(UnsetZoomForMovie ,0x00000000) // 0 == 0x00000000 270 NHSTUB(VbattGet ,0xfc0dbcbb) // 0 271 NHSTUB(Write ,0xfc35198f) // 0 272 //NHSTUB(WriteSDCard ,0x00000000) // 0 == 0x00000000 273 NHSTUB(_log ,0x010f8090) // 0 274 NHSTUB(_log10 ,0x010f85b0) // 0 275 NHSTUB(_sqrt ,0x010fa798) // 0 276 NHSTUB(add_ptp_handler ,0xfc322223) // 0 277 NHSTUB(close ,0xfc3a9163) // 0 278 NHSTUB(free ,0xfc369e93) // 0 279 NHSTUB(kbd_p1_f ,0xfc589b1f) // 0 280 NHSTUB(kbd_p1_f_cont ,0xfc589b27) // 0 281 NHSTUB(kbd_p2_f ,0xfc589535) // 0 282 NHSTUB(kbd_read_keys ,0xfc589ae9) // 0 283 NHSTUB(kbd_read_keys_r2 ,0xfc505f77) // 0 284 NHSTUB(lseek ,0xfc3516d1) // 0 285 NHSTUB(malloc ,0xfc369e5d) // 0 286 NHSTUB(memcmp ,0xfc36a039) // 0 287 NHSTUB(memcpy ,0xfc3b47f9) // 0 288 NHSTUB(memset ,0xfc5117b9) // 0 289 NHSTUB(mktime_ext ,0xfc506e95) // 0 290 NHSTUB(open ,0xfc3a90f3) // 0 291 NHSTUB(OpenFastDir ,0xfc436c31) // 0 292 NHSTUB(closedir ,0xfc436bf9) // 0 293 NHSTUB(get_fstype ,0xfc3520cf) // 0 294 NHSTUB(qsort ,0xfc3ee291) // 0 295 NHSTUB(rand ,0xfc3b47db) // 0 296 //NHSTUB(reboot_fw_update ,0x00000000) // 0 == 0x00000000 297 NHSTUB(set_control_event ,0xfc340ef1) // 0 298 NHSTUB(srand ,0xfc3b47d5) // 0 299 NHSTUB(stat ,0xfc351709) // 0 300 NHSTUB(strcat ,0xfc369dc1) // 0 301 NHSTUB(strchr ,0xfc3b48e1) // 0 302 NHSTUB(strcmp ,0xfc369ee9) // 0 303 NHSTUB(strcpy ,0xfc369ec5) // 0 304 NHSTUB(strftime ,0xfc3b4351) // 0 305 NHSTUB(strlen ,0xfc369fd1) // 0 306 NHSTUB(strncmp ,0xfc3b48b7) // 0 307 NHSTUB(strncpy ,0xfc369f6b) // 0 308 NHSTUB(strrchr ,0xfc1021e5) // 0 309 NHSTUB(strtol ,0xfc50706b) // 0 310 NHSTUB(strtolx ,0xfc506f29) // 0 311 DEF(task_CaptSeq ,0xfc0f2b07) // 0 312 DEF(task_DvlpSeqTask ,0xfc18f013) // 0 313 DEF(task_ExpDrv ,0xfc2af0a3) // 0 314 DEF(task_InitFileModules ,0xfc0972a5) // 0 315 DEF(task_MovieRecord ,0xfc18a5e3) // 0 316 DEF(task_PhySw ,0xfc5897d9) // 0 317 DEF(task_TricInitTask ,0xfc521901) // 0 318 DEF(hook_CreateTask_low ,0xbfe10b84) // 0 319 NHSTUB(time ,0xfc101e5b) // 0 320 NHSTUB(vsprintf ,0xfc1021bf) // 0 321 NHSTUB(EngDrvRead ,0xfc3630d5) // 0 322 NHSTUB(PTM_GetCurrentItem ,0xfc35ab07) // 0 323 NHSTUB(DisableISDriveError ,0xfc4409f1) // 0 324 NHSTUB(SetHPTimerAfterNow ,0xfc3b34f9) // 0 325 NHSTUB(SetEventFlag ,0xfc369b95) // 0 326 NHSTUB(transfer_src_overlay ,0xfc348195) // 0 327 NHSTUB(bzero ,0x010f54d8) // 0 328 NHSTUB(memset32 ,0x010f54dc) // 0 329 NHSTUB(get_dial_hw_position ,0xfc3e4391) // 0 330 NHSTUB(PT_MFOn ,0xfc280b13) // 0 331 NHSTUB(PT_MFOff ,0xfc280b43) // 0 332 NHSTUB(GetAdChValue ,0xfc3acb6b) // 0 333 NHSTUB(EnableHDMIPower ,0xfc0e4be7) // 0 334 NHSTUB(DisableHDMIPower ,0xfc0e4c1d) // 0 335 NHSTUB(SetVideoOutType ,0xfc52c3d9) // 0 336 NHSTUB(GetVideoOutType ,0xfc52c365) // 0 337 NHSTUB(IsWirelessConnect ,0xfc2fdeb3) // 0