Internal_Datalogger but with USB support removed (for MAX40108 Demo board), proof of concept that MAX32625 can be used successfully with VDDB(USB) left unpowered, as long as the USB library is not used.
Dependencies: max32625pico CmdLine
Diff: DataLogger_Internal.cpp
- Revision:
- 55:477ba09475d7
- Parent:
- 54:ba36cb18504f
- Child:
- 56:8469ffda6119
diff -r ba36cb18504f -r 477ba09475d7 DataLogger_Internal.cpp --- a/DataLogger_Internal.cpp Wed Nov 17 16:57:17 2021 -0800 +++ b/DataLogger_Internal.cpp Fri Dec 31 15:51:16 2021 -0800 @@ -87,25 +87,25 @@ uint32_t g_board_serial_number = 0xFFFFFFFF; // BOARD_SERIAL_NUMBER; // data unique to certain boards based on serial number # if (BOARD_SERIAL_NUMBER) == 0 - #warning "(BOARD_SERIAL_NUMBER) == 0" + #warning "info: (BOARD_SERIAL_NUMBER) == 0" // # elif (BOARD_SERIAL_NUMBER) == 1 - #warning "(BOARD_SERIAL_NUMBER) == 1" + #warning "info: (BOARD_SERIAL_NUMBER) == 1" // # elif (BOARD_SERIAL_NUMBER) == 2 - #warning "(BOARD_SERIAL_NUMBER) == 2" + #warning "info: (BOARD_SERIAL_NUMBER) == 2" // # elif (BOARD_SERIAL_NUMBER) == 3 - #warning "(BOARD_SERIAL_NUMBER) == 3" + #warning "info: (BOARD_SERIAL_NUMBER) == 3" // # elif (BOARD_SERIAL_NUMBER) == 4 - #warning "(BOARD_SERIAL_NUMBER) == 4" + #warning "info: (BOARD_SERIAL_NUMBER) == 4" // # elif (BOARD_SERIAL_NUMBER) == 5 - #warning "(BOARD_SERIAL_NUMBER) == 5" + #warning "info: (BOARD_SERIAL_NUMBER) == 5" // # elif (BOARD_SERIAL_NUMBER) == 6 - #warning "(BOARD_SERIAL_NUMBER) == 6" + #warning "info: (BOARD_SERIAL_NUMBER) == 6" // # else #warning "BOARD_SERIAL_NUMBER defined but not recognized" @@ -216,524 +216,714 @@ // FlashIAP flash; // error: 'FlashIAP' does not name a type //-------------------------------------------------- +// assign a unique 32-bit header for each flash save element #312 +typedef enum flash_item_id_enum_t { + flash_blank_ff = 0xffffffff, + flash_wiped_00 = 0x00000000, + // + flash_g_board_serial_number = 0x04000053, + // + flash_calibration_05_V0 = 0x08001053, + flash_calibration_05_V1 = 0x08001153, + flash_calibration_05_V2 = 0x08001253, + flash_calibration_05_V3 = 0x08001353, + flash_calibration_05_V4 = 0x08001453, + flash_calibration_05_V5 = 0x08001553, + flash_calibration_05_normValue_0_10 = 0x08002053, + flash_calibration_05_normValue_0_11 = 0x08002153, + flash_calibration_05_normValue_0_12 = 0x08002253, + flash_calibration_05_normValue_0_13 = 0x08002353, + flash_calibration_05_normValue_0_14 = 0x08002453, + flash_calibration_05_normValue_0_15 = 0x08002553, + flash_calibration_95_V0 = 0x08003053, + flash_calibration_95_V1 = 0x08003153, + flash_calibration_95_V2 = 0x08003253, + flash_calibration_95_V3 = 0x08003353, + flash_calibration_95_V4 = 0x08003453, + flash_calibration_95_V5 = 0x08003553, + flash_calibration_95_normValue_0_10 = 0x08004053, + flash_calibration_95_normValue_0_11 = 0x08004153, + flash_calibration_95_normValue_0_12 = 0x08004253, + flash_calibration_95_normValue_0_13 = 0x08004353, + flash_calibration_95_normValue_0_14 = 0x08004453, + flash_calibration_95_normValue_0_15 = 0x08004553, + // + flash_Platform_AIN_Average_N = 0x04000153, + // + flash_Datalogger_action_table_row_count = 0x04000253, + flash_Datalogger_action_table = 0x41005053, + // + flash_onButton1_command_table_00 = 0x42061053, + flash_onButton1_command_table_01 = 0x42061153, + flash_onButton1_command_table_02 = 0x42061253, + flash_onButton1_command_table_03 = 0x42061353, + flash_onButton1_command_table_04 = 0x42061453, + flash_onButton1_command_table_05 = 0x42061553, + flash_onButton1_command_table_06 = 0x42061653, + flash_onButton1_command_table_07 = 0x42061753, + flash_onButton1_command_table_08 = 0x42061853, + flash_onButton1_command_table_09 = 0x42061953, + // + flash_onButton2_command_table_00 = 0x42062053, + flash_onButton2_command_table_01 = 0x42062153, + flash_onButton2_command_table_02 = 0x42062253, + flash_onButton2_command_table_03 = 0x42062353, + flash_onButton2_command_table_04 = 0x42062453, + flash_onButton2_command_table_05 = 0x42062553, + flash_onButton2_command_table_06 = 0x42062653, + flash_onButton2_command_table_07 = 0x42062753, + flash_onButton2_command_table_08 = 0x42062853, + flash_onButton2_command_table_09 = 0x42062953, + // + flash_onButton3_command_table_00 = 0x42063053, + flash_onButton3_command_table_01 = 0x42063153, + flash_onButton3_command_table_02 = 0x42063253, + flash_onButton3_command_table_03 = 0x42063353, + flash_onButton3_command_table_04 = 0x42063453, + flash_onButton3_command_table_05 = 0x42063553, + flash_onButton3_command_table_06 = 0x42063653, + flash_onButton3_command_table_07 = 0x42063753, + flash_onButton3_command_table_08 = 0x42063853, + flash_onButton3_command_table_09 = 0x42063953, + // + flash_onButton4_command_table_00 = 0x42064053, + flash_onButton4_command_table_01 = 0x42064153, + flash_onButton4_command_table_02 = 0x42064253, + flash_onButton4_command_table_03 = 0x42064353, + flash_onButton4_command_table_04 = 0x42064453, + flash_onButton4_command_table_05 = 0x42064553, + flash_onButton4_command_table_06 = 0x42064653, + flash_onButton4_command_table_07 = 0x42064753, + flash_onButton4_command_table_08 = 0x42064853, + flash_onButton4_command_table_09 = 0x42064953, + // + flash_onButton5_command_table_00 = 0x42065053, + flash_onButton5_command_table_01 = 0x42065153, + flash_onButton5_command_table_02 = 0x42065253, + flash_onButton5_command_table_03 = 0x42065353, + flash_onButton5_command_table_04 = 0x42065453, + flash_onButton5_command_table_05 = 0x42065553, + flash_onButton5_command_table_06 = 0x42065653, + flash_onButton5_command_table_07 = 0x42065753, + flash_onButton5_command_table_08 = 0x42065853, + flash_onButton5_command_table_09 = 0x42065953, + // + flash_onButton6_command_table_00 = 0x42066053, + flash_onButton6_command_table_01 = 0x42066153, + flash_onButton6_command_table_02 = 0x42066253, + flash_onButton6_command_table_03 = 0x42066353, + flash_onButton6_command_table_04 = 0x42066453, + flash_onButton6_command_table_05 = 0x42066553, + flash_onButton6_command_table_06 = 0x42066653, + flash_onButton6_command_table_07 = 0x42066753, + flash_onButton6_command_table_08 = 0x42066853, + flash_onButton6_command_table_09 = 0x42066953, + // + flash_onButton7_command_table_00 = 0x42067053, + flash_onButton7_command_table_01 = 0x42067153, + flash_onButton7_command_table_02 = 0x42067253, + flash_onButton7_command_table_03 = 0x42067353, + flash_onButton7_command_table_04 = 0x42067453, + flash_onButton7_command_table_05 = 0x42067553, + flash_onButton7_command_table_06 = 0x42067653, + flash_onButton7_command_table_07 = 0x42067753, + flash_onButton7_command_table_08 = 0x42067853, + flash_onButton7_command_table_09 = 0x42067953, + // + flash_onButton8_command_table_00 = 0x42068053, + flash_onButton8_command_table_01 = 0x42068153, + flash_onButton8_command_table_02 = 0x42068253, + flash_onButton8_command_table_03 = 0x42068353, + flash_onButton8_command_table_04 = 0x42068453, + flash_onButton8_command_table_05 = 0x42068553, + flash_onButton8_command_table_06 = 0x42068653, + flash_onButton8_command_table_07 = 0x42068753, + flash_onButton8_command_table_08 = 0x42068853, + flash_onButton8_command_table_09 = 0x42068953, + // + flash_onButton9_command_table_00 = 0x42069053, + flash_onButton9_command_table_01 = 0x42069153, + flash_onButton9_command_table_02 = 0x42069253, + flash_onButton9_command_table_03 = 0x42069353, + flash_onButton9_command_table_04 = 0x42069453, + flash_onButton9_command_table_05 = 0x42069553, + flash_onButton9_command_table_06 = 0x42069653, + flash_onButton9_command_table_07 = 0x42069753, + flash_onButton9_command_table_08 = 0x42069853, + flash_onButton9_command_table_09 = 0x42069953, + // + flash_Platform_AIN_customChannelHeader_ch0 = 0x42079053, + flash_Platform_AIN_customChannelHeader_ch1 = 0x42079153, + flash_Platform_AIN_customChannelHeader_ch2 = 0x42079253, + flash_Platform_AIN_customChannelHeader_ch3 = 0x42079353, + flash_Platform_AIN_customChannelHeader_ch4 = 0x42079453, + flash_Platform_AIN_customChannelHeader_ch5 = 0x42079553, + // + flash_Platform_MathOffsetA0 = 0x08071053, + flash_Platform_MathOffsetA1 = 0x08071153, + flash_Platform_MathOffsetA2 = 0x08071253, + flash_Platform_MathOffsetA3 = 0x08071353, + flash_Platform_MathOffsetA4 = 0x08071453, + flash_Platform_MathOffsetA5 = 0x08071553, + // + flash_Platform_MathGainMulA0 = 0x08072053, + flash_Platform_MathGainMulA1 = 0x08072153, + flash_Platform_MathGainMulA2 = 0x08072253, + flash_Platform_MathGainMulA3 = 0x08072353, + flash_Platform_MathGainMulA4 = 0x08072453, + flash_Platform_MathGainMulA5 = 0x08072553, + // + flash_Platform_MathGainDivA0 = 0x08073053, + flash_Platform_MathGainDivA1 = 0x08073153, + flash_Platform_MathGainDivA2 = 0x08073253, + flash_Platform_MathGainDivA3 = 0x08073353, + flash_Platform_MathGainDivA4 = 0x08073453, + flash_Platform_MathGainDivA5 = 0x08073553, + // + flash_Platform_MathUnitString_ch0 = 0x42078053, + flash_Platform_MathUnitString_ch1 = 0x42078153, + flash_Platform_MathUnitString_ch2 = 0x42078253, + flash_Platform_MathUnitString_ch3 = 0x42078353, + flash_Platform_MathUnitString_ch4 = 0x42078453, + flash_Platform_MathUnitString_ch5 = 0x42078553, + // +} flash_item_id_enum_t; +//-------------------------------------------------- +// flash_LE_bytes(bigEndianValue) -> four bytes in little-endian order, for flash memory +#define flash_LE_bytes(itemBE) (((itemBE))&0xFF),(((itemBE)>>8)&0xFF),(((itemBE)>>16)&0xFF),(((itemBE)>>24)&0xFF) +//-------------------------------------------------- // MAX40108 calibration values assign absolute address // Note this data is little-endian, least significant byte first const char flash_page_configuration_back_up[8192] __attribute__((aligned(8192))) = { // 0x04000053, 0xffffffff, 0xffffffff, 0xffffffff, // g_board_serial_number is blank 0xFFFFFFFF // 3, ___2, ___1, ___0, ___7, ___6, ___5, ___4, ___b, ___a, ___9, ___8, ___f, ___e, ___d, ___c, - 0x53, 0x00, 0x00, 0x04, 0xcf, 0x74, 0xd3, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0x04000053 g_board_serial_number %A sn=2111009999 -- serial number - 0x53, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0xa6, 0x0a, 0xec, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08001053 calibration_05_V[0] - 0x53, 0x11, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0xa6, 0x0a, 0xec, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08001153 calibration_05_V[1] - 0x53, 0x12, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0xa6, 0x0a, 0xec, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08001253 calibration_05_V[2] - 0x53, 0x13, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0xa6, 0x0a, 0xec, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08001353 calibration_05_V[3] - 0x53, 0x14, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x75, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08001453 calibration_05_V[4] - 0x53, 0x15, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x75, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08001553 calibration_05_V[5] - 0x53, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x58, 0x3a, 0x69, 0xe7, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08002053 calibration_05_normValue_0_1[0] - 0x53, 0x21, 0x00, 0x08, 0x00, 0x00, 0x00, 0x58, 0x3a, 0x69, 0xe7, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08002153 calibration_05_normValue_0_1[1] - 0x53, 0x22, 0x00, 0x08, 0x00, 0x00, 0x00, 0x58, 0x3a, 0x69, 0xe7, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08002253 calibration_05_normValue_0_1[2] - 0x53, 0x23, 0x00, 0x08, 0x00, 0x00, 0x00, 0x58, 0x3a, 0x69, 0xe7, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08002353 calibration_05_normValue_0_1[3] - 0x53, 0x24, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb0, 0xa3, 0x8e, 0xc7, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08002453 calibration_05_normValue_0_1[4] - 0x53, 0x25, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb0, 0xa3, 0x8e, 0xc7, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08002553 calibration_05_normValue_0_1[5] - 0x53, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x75, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08003053 calibration_95_V[0] - 0x53, 0x31, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x75, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08003153 calibration_95_V[1] - 0x53, 0x32, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x75, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08003253 calibration_95_V[2] - 0x53, 0x33, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x75, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08003353 calibration_95_V[3] - 0x53, 0x34, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x33, 0x33, 0xfa, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08003453 calibration_95_V[4] - 0x53, 0x35, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x33, 0x33, 0xfa, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08003553 calibration_95_V[5] - 0x53, 0x40, 0x00, 0x08, 0x00, 0x00, 0xe0, 0xbb, 0xc8, 0x22, 0xed, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08004053 calibration_95_normValue_0_1[0] - 0x53, 0x41, 0x00, 0x08, 0x00, 0x00, 0xe0, 0xbb, 0xc8, 0x22, 0xed, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08004153 calibration_95_normValue_0_1[1] - 0x53, 0x42, 0x00, 0x08, 0x00, 0x00, 0xe0, 0xbb, 0xc8, 0x22, 0xed, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08004253 calibration_95_normValue_0_1[2] - 0x53, 0x43, 0x00, 0x08, 0x00, 0x00, 0xe0, 0xbb, 0xc8, 0x22, 0xed, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08004353 calibration_95_normValue_0_1[3] - 0x53, 0x44, 0x00, 0x08, 0x00, 0x00, 0x00, 0x98, 0x44, 0x92, 0xd1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08004453 calibration_95_normValue_0_1[4] - 0x53, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, 0x98, 0x44, 0x92, 0xd1, 0x3f, 0xff, 0xff, 0xff, 0xff, // 0x08004553 calibration_95_normValue_0_1[5] + flash_LE_bytes(flash_g_board_serial_number), flash_LE_bytes(0x7dd374cf), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // 0x04000053 g_board_serial_number %A sn=2111009999 -- serial number + 0x53, 0x10, 0x00, 0x08, flash_LE_bytes(0x40000000), flash_LE_bytes(0x3fec0aa6), flash_LE_bytes(flash_blank_ff), // 0x08001053 calibration_05_V[0] + 0x53, 0x11, 0x00, 0x08, flash_LE_bytes(0x40000000), flash_LE_bytes(0x3fec0aa6), flash_LE_bytes(flash_blank_ff), // 0x08001153 calibration_05_V[1] + 0x53, 0x12, 0x00, 0x08, flash_LE_bytes(0x40000000), flash_LE_bytes(0x3fec0aa6), flash_LE_bytes(flash_blank_ff), // 0x08001253 calibration_05_V[2] + 0x53, 0x13, 0x00, 0x08, flash_LE_bytes(0x40000000), flash_LE_bytes(0x3fec0aa6), flash_LE_bytes(flash_blank_ff), // 0x08001353 calibration_05_V[3] + 0x53, 0x14, 0x00, 0x08, flash_LE_bytes(0x00000000), flash_LE_bytes(0x3ff175f7), flash_LE_bytes(flash_blank_ff), // 0x08001453 calibration_05_V[4] + 0x53, 0x15, 0x00, 0x08, flash_LE_bytes(0x00000000), flash_LE_bytes(0x3ff175f7), flash_LE_bytes(flash_blank_ff), // 0x08001553 calibration_05_V[5] + 0x53, 0x20, 0x00, 0x08, flash_LE_bytes(0x58000000), flash_LE_bytes(0x3fe7693a), flash_LE_bytes(flash_blank_ff), // 0x08002053 calibration_05_normValue_0_1[0] + 0x53, 0x21, 0x00, 0x08, flash_LE_bytes(0x58000000), flash_LE_bytes(0x3fe7693a), flash_LE_bytes(flash_blank_ff), // 0x08002153 calibration_05_normValue_0_1[1] + 0x53, 0x22, 0x00, 0x08, flash_LE_bytes(0x58000000), flash_LE_bytes(0x3fe7693a), flash_LE_bytes(flash_blank_ff), // 0x08002253 calibration_05_normValue_0_1[2] + 0x53, 0x23, 0x00, 0x08, flash_LE_bytes(0x58000000), flash_LE_bytes(0x3fe7693a), flash_LE_bytes(flash_blank_ff), // 0x08002353 calibration_05_normValue_0_1[3] + 0x53, 0x24, 0x00, 0x08, flash_LE_bytes(0xb0000000), flash_LE_bytes(0x3fc78ea3), flash_LE_bytes(flash_blank_ff), // 0x08002453 calibration_05_normValue_0_1[4] + 0x53, 0x25, 0x00, 0x08, flash_LE_bytes(0xb0000000), flash_LE_bytes(0x3fc78ea3), flash_LE_bytes(flash_blank_ff), // 0x08002553 calibration_05_normValue_0_1[5] + 0x53, 0x30, 0x00, 0x08, flash_LE_bytes(0x00000000), flash_LE_bytes(0x3ff175f7), flash_LE_bytes(flash_blank_ff), // 0x08003053 calibration_95_V[0] + 0x53, 0x31, 0x00, 0x08, flash_LE_bytes(0x00000000), flash_LE_bytes(0x3ff175f7), flash_LE_bytes(flash_blank_ff), // 0x08003153 calibration_95_V[1] + 0x53, 0x32, 0x00, 0x08, flash_LE_bytes(0x00000000), flash_LE_bytes(0x3ff175f7), flash_LE_bytes(flash_blank_ff), // 0x08003253 calibration_95_V[2] + 0x53, 0x33, 0x00, 0x08, flash_LE_bytes(0x00000000), flash_LE_bytes(0x3ff175f7), flash_LE_bytes(flash_blank_ff), // 0x08003353 calibration_95_V[3] + 0x53, 0x34, 0x00, 0x08, flash_LE_bytes(0x40000000), flash_LE_bytes(0x3ffa3333), flash_LE_bytes(flash_blank_ff), // 0x08003453 calibration_95_V[4] + 0x53, 0x35, 0x00, 0x08, flash_LE_bytes(0x40000000), flash_LE_bytes(0x3ffa3333), flash_LE_bytes(flash_blank_ff), // 0x08003553 calibration_95_V[5] + 0x53, 0x40, 0x00, 0x08, flash_LE_bytes(0xbbe00000), flash_LE_bytes(0x3fed22c8), flash_LE_bytes(flash_blank_ff), // 0x08004053 calibration_95_normValue_0_1[0] + 0x53, 0x41, 0x00, 0x08, flash_LE_bytes(0xbbe00000), flash_LE_bytes(0x3fed22c8), flash_LE_bytes(flash_blank_ff), // 0x08004153 calibration_95_normValue_0_1[1] + 0x53, 0x42, 0x00, 0x08, flash_LE_bytes(0xbbe00000), flash_LE_bytes(0x3fed22c8), flash_LE_bytes(flash_blank_ff), // 0x08004253 calibration_95_normValue_0_1[2] + 0x53, 0x43, 0x00, 0x08, flash_LE_bytes(0xbbe00000), flash_LE_bytes(0x3fed22c8), flash_LE_bytes(flash_blank_ff), // 0x08004353 calibration_95_normValue_0_1[3] + 0x53, 0x44, 0x00, 0x08, flash_LE_bytes(0x98000000), flash_LE_bytes(0x3fd19244), flash_LE_bytes(flash_blank_ff), // 0x08004453 calibration_95_normValue_0_1[4] + 0x53, 0x45, 0x00, 0x08, flash_LE_bytes(0x98000000), flash_LE_bytes(0x3fd19244), flash_LE_bytes(flash_blank_ff), // 0x08004553 calibration_95_normValue_0_1[5] // WIP #312 initial values in flash_page_configuration_back_up[] - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0xffffffff blank space to permit saving more data - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000261a0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000261b0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000261c0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000261d0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000261e0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000261f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026200 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026300 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026400 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026500 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026600 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026700 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026800 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026900 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000269f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026a00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026af0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026b00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026bf0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026c00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026cf0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026d00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026df0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026e00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026ef0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026f00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00026ff0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027000 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000270f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027100 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000271f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027200 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000272f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027300 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000273f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027400 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000274f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027500 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000275f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027600 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000276f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027700 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000277f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027800 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000278f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027900 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x000279f0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027a00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027af0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027b00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027bf0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027c00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027cf0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027d00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027df0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027e00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027ef0 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // FLA19 0x00027f00 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff // FLA19 0x00027ff0 + // + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_customChannelHeader_ch + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_MathOffsetA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_MathGainMulA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_MathGainDivA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_MathUnitString + // + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_AIN_customChannelHeader_ch + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathOffsetA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathGainMulA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathGainDivA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathUnitString + // + // MAX32625 flash peek/poke support (MAX40108 demo) #312 -- more items could be added here + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // 0xffffffff blank space to permit saving more data + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000261a0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000261b0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000261c0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000261d0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000261e0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000261f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026200 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026300 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026400 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026500 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026600 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026700 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026800 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026900 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000269f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026a00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026af0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026b00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026bf0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026c00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026cf0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026d00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026df0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026e00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026ef0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026f00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00026ff0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027000 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000270f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027100 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000271f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027200 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000272f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027300 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000273f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027400 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000274f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027500 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000275f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027600 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000276f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027700 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000277f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027800 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000278f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027900 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x000279f0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027a00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027af0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027b00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027bf0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027c00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027cf0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027d00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027df0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027e00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027ef0 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), // FLA19 0x00027f00 + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), + flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff), flash_LE_bytes(flash_blank_ff) // FLA19 0x00027ff0 }; // WIP #312 map values in flash_page_configuration_back_up[] // such as board serial number, %A calibration values, @@ -938,7 +1128,53 @@ #if defined(SPI_ADC_DeviceName) // SPI connected ADC #include "MAX11410.h" #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC - +//-------------------------------------------------- +// Option to Datalog SPI connected ADC analog inputs with offset/gain applied +// MAX40108 Datalog Math #362 -- define compile-time option SPI_AIN_MATH +#if defined(SPI_ADC_DeviceName) // SPI connected ADC +#ifndef SPI_AIN_MATH +#define SPI_AIN_MATH 1 +#endif // SPI_AIN_MATH +#endif // defined(SPI_ADC_DeviceName) // SPI connected ADC +//-------------------------------------------------- +// Optional custom per-channel header suffix +// This could be used to identify external hardware attached to each input +#if defined(SPI_ADC_DeviceName) // SPI connected ADC +#ifndef HAS_SPI_AIN_customChannelHeader +#define HAS_SPI_AIN_customChannelHeader 1 +#endif +#if HAS_SPI_AIN_customChannelHeader +#define SPI_AIN_customChannelHeader_MAXLENGTH 20 +#endif +#endif // defined(SPI_ADC_DeviceName) // SPI connected ADC + +//-------------------------------------------------- +// Option to Datalog Arduino platform analog inputs +#ifndef LOG_PLATFORM_AIN +#define LOG_PLATFORM_AIN 6 +//~ #undef LOG_PLATFORM_AIN +#endif +//-------------------------------------------------- +// Option to Datalog Arduino platform analog inputs with offset/gain applied +// MAX40108 Datalog Math #362 -- define compile-time option PLATFORM_AIN_MATH +#if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs +#ifndef PLATFORM_AIN_MATH +#define PLATFORM_AIN_MATH 1 +#endif // PLATFORM_AIN_MATH +#endif // defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs +//-------------------------------------------------- +// Option to customize channel names in datalog header line +// This could be used to identify external hardware attached to each input +#if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs +#ifndef HAS_Platform_AIN_customChannelHeader +#define HAS_Platform_AIN_customChannelHeader 1 +#endif +#if HAS_Platform_AIN_customChannelHeader // Optional custom per-channel header suffix +#define Platform_AIN_customChannelHeader_MAXLENGTH 20 +#endif +#endif // defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs + +//-------------------------------------------------- #if defined(TARGET) // TARGET_NAME macros from targets/TARGET_Maxim/TARGET_MAX32625/device/mxc_device.h // Create a string definition for the TARGET @@ -2919,6 +3155,7 @@ condition_if_AINn_ge_threshold, // (SPI_AIN_Voltage[channel] >= threhsold) condition_if_AINn_le_threshold, // (SPI_AIN_Voltage[channel] <= threhsold) condition_if_AINn_ne_threshold, // (SPI_AIN_Voltage[channel] != threhsold) +// WIP Datalog Math -- if channel has its math enabled, compare with the math-adjusted version. Keep it simple. #362 } condition_enum_t; // // Datalogger_RunActionTable() structure @@ -2934,10 +3171,10 @@ // data unique to certain boards based on serial number // channels A0/A4(CSA*100/3.34=mA), A1/A5(1V0), A2(WE), A3(CE) # if (BOARD_SERIAL_NUMBER) == 1 - #warning "(BOARD_SERIAL_NUMBER) == 1 -- logic uses A3(CE) instead of A2(WE)" + #warning "info: (BOARD_SERIAL_NUMBER) == 1 -- logic uses A3(CE) instead of A2(WE)" const int channel_WE = 3; // use channel_CE instead on proto board s/n 1 for diagnostics; easier to sweep values # elif (BOARD_SERIAL_NUMBER) == 5 - #warning "(BOARD_SERIAL_NUMBER) == 5 -- logic uses A3(CE) instead of A2(WE)" + #warning "info: (BOARD_SERIAL_NUMBER) == 5 -- logic uses A3(CE) instead of A2(WE)" const int channel_WE = 3; // use channel_CE instead on proto board s/n 1 for diagnostics; easier to sweep values # else // BOARD_SERIAL_NUMBER data unique to certain boards based on serial number const int channel_WE = 2; @@ -3123,6 +3360,29 @@ extern char onButton9_command_table_08[]; extern char onButton9_command_table_09[]; // +#if SPI_AIN_MATH + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_customChannelHeader_ch forward declaration +#endif // SPI_AIN_MATH +// +#if PLATFORM_AIN_MATH + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_AIN_customChannelHeader_ch forward declaration +extern char Platform_AIN_customChannelHeader_ch0[]; +extern char Platform_AIN_customChannelHeader_ch1[]; +extern char Platform_AIN_customChannelHeader_ch2[]; +extern char Platform_AIN_customChannelHeader_ch3[]; +extern char Platform_AIN_customChannelHeader_ch4[]; +extern char Platform_AIN_customChannelHeader_ch5[]; +extern double Platform_MathOffsetA[]; +extern double Platform_MathGainMulA[]; +extern double Platform_MathGainDivA[]; +extern char Platform_MathUnitString_ch0[]; +extern char Platform_MathUnitString_ch1[]; +extern char Platform_MathUnitString_ch2[]; +extern char Platform_MathUnitString_ch3[]; +extern char Platform_MathUnitString_ch4[]; +extern char Platform_MathUnitString_ch5[]; +#endif // PLATFORM_AIN_MATH + // // MAX32625 flash peek/poke support (MAX40108 demo) #312 #if HAS_FLASH_LOAD_SAVE // WIP #312 flash_page_configuration_back_up[] records map to variables @@ -3134,153 +3394,201 @@ } configuration_back_up_t; // WIP #312 unique recordType key values are defined by configuration_back_up_list[] configuration_back_up_t configuration_back_up_list[] = { - { 0xFFFFFFFF, NULL, 0, "blank" }, // Ignore 0xFFFFFFFF blank records + { flash_blank_ff, NULL, 0, "blank" }, // Ignore 0xFFFFFFFF blank records // #ifdef BOARD_SERIAL_NUMBER // WIP #312 flash load/save g_board_serial_number BOARD_SERIAL_NUMBER - { 0x04000053, &g_board_serial_number, sizeof(g_board_serial_number ), "g_board_serial_number" }, + { flash_g_board_serial_number, &g_board_serial_number, sizeof(g_board_serial_number), "g_board_serial_number" }, #endif // BOARD_SERIAL_NUMBER data unique to certain boards based on serial number // WIP #312 flash load/save board ID string message // - { 0x08001053, &calibration_05_V[0], sizeof(calibration_05_V[0] ), "calibration_05_V[0]" }, - { 0x08001153, &calibration_05_V[1], sizeof(calibration_05_V[1] ), "calibration_05_V[1]" }, - { 0x08001253, &calibration_05_V[2], sizeof(calibration_05_V[2] ), "calibration_05_V[2]" }, - { 0x08001353, &calibration_05_V[3], sizeof(calibration_05_V[3] ), "calibration_05_V[3]" }, - { 0x08001453, &calibration_05_V[4], sizeof(calibration_05_V[4] ), "calibration_05_V[4]" }, - { 0x08001553, &calibration_05_V[5], sizeof(calibration_05_V[5] ), "calibration_05_V[5]" }, - { 0x08002053, &calibration_05_normValue_0_1[0], sizeof(calibration_05_normValue_0_1[0] ), "calibration_05_normValue_0_1[0]" }, - { 0x08002153, &calibration_05_normValue_0_1[1], sizeof(calibration_05_normValue_0_1[1] ), "calibration_05_normValue_0_1[1]" }, - { 0x08002253, &calibration_05_normValue_0_1[2], sizeof(calibration_05_normValue_0_1[2] ), "calibration_05_normValue_0_1[2]" }, - { 0x08002353, &calibration_05_normValue_0_1[3], sizeof(calibration_05_normValue_0_1[3] ), "calibration_05_normValue_0_1[3]" }, - { 0x08002453, &calibration_05_normValue_0_1[4], sizeof(calibration_05_normValue_0_1[4] ), "calibration_05_normValue_0_1[4]" }, - { 0x08002553, &calibration_05_normValue_0_1[5], sizeof(calibration_05_normValue_0_1[5] ), "calibration_05_normValue_0_1[5]" }, - { 0x08003053, &calibration_95_V[0], sizeof(calibration_95_V[0] ), "calibration_95_V[0]" }, - { 0x08003153, &calibration_95_V[1], sizeof(calibration_95_V[1] ), "calibration_95_V[1]" }, - { 0x08003253, &calibration_95_V[2], sizeof(calibration_95_V[2] ), "calibration_95_V[2]" }, - { 0x08003353, &calibration_95_V[3], sizeof(calibration_95_V[3] ), "calibration_95_V[3]" }, - { 0x08003453, &calibration_95_V[4], sizeof(calibration_95_V[4] ), "calibration_95_V[4]" }, - { 0x08003553, &calibration_95_V[5], sizeof(calibration_95_V[5] ), "calibration_95_V[5]" }, - { 0x08004053, &calibration_95_normValue_0_1[0], sizeof(calibration_95_normValue_0_1[0] ), "calibration_95_normValue_0_1[0]" }, - { 0x08004153, &calibration_95_normValue_0_1[1], sizeof(calibration_95_normValue_0_1[1] ), "calibration_95_normValue_0_1[1]" }, - { 0x08004253, &calibration_95_normValue_0_1[2], sizeof(calibration_95_normValue_0_1[2] ), "calibration_95_normValue_0_1[2]" }, - { 0x08004353, &calibration_95_normValue_0_1[3], sizeof(calibration_95_normValue_0_1[3] ), "calibration_95_normValue_0_1[3]" }, - { 0x08004453, &calibration_95_normValue_0_1[4], sizeof(calibration_95_normValue_0_1[4] ), "calibration_95_normValue_0_1[4]" }, - { 0x08004553, &calibration_95_normValue_0_1[5], sizeof(calibration_95_normValue_0_1[5] ), "calibration_95_normValue_0_1[5]" }, + { flash_calibration_05_V0, &calibration_05_V[0], sizeof(calibration_05_V[0]), "calibration_05_V[0]" }, + { flash_calibration_05_V1, &calibration_05_V[1], sizeof(calibration_05_V[1]), "calibration_05_V[1]" }, + { flash_calibration_05_V2, &calibration_05_V[2], sizeof(calibration_05_V[2]), "calibration_05_V[2]" }, + { flash_calibration_05_V3, &calibration_05_V[3], sizeof(calibration_05_V[3]), "calibration_05_V[3]" }, + { flash_calibration_05_V4, &calibration_05_V[4], sizeof(calibration_05_V[4]), "calibration_05_V[4]" }, + { flash_calibration_05_V5, &calibration_05_V[5], sizeof(calibration_05_V[5]), "calibration_05_V[5]" }, + { flash_calibration_05_normValue_0_10, &calibration_05_normValue_0_1[0], sizeof(calibration_05_normValue_0_1[0]), "calibration_05_normValue_0_1[0]" }, + { flash_calibration_05_normValue_0_11, &calibration_05_normValue_0_1[1], sizeof(calibration_05_normValue_0_1[1]), "calibration_05_normValue_0_1[1]" }, + { flash_calibration_05_normValue_0_12, &calibration_05_normValue_0_1[2], sizeof(calibration_05_normValue_0_1[2]), "calibration_05_normValue_0_1[2]" }, + { flash_calibration_05_normValue_0_13, &calibration_05_normValue_0_1[3], sizeof(calibration_05_normValue_0_1[3]), "calibration_05_normValue_0_1[3]" }, + { flash_calibration_05_normValue_0_14, &calibration_05_normValue_0_1[4], sizeof(calibration_05_normValue_0_1[4]), "calibration_05_normValue_0_1[4]" }, + { flash_calibration_05_normValue_0_15, &calibration_05_normValue_0_1[5], sizeof(calibration_05_normValue_0_1[5]), "calibration_05_normValue_0_1[5]" }, + { flash_calibration_95_V0, &calibration_95_V[0], sizeof(calibration_95_V[0]), "calibration_95_V[0]" }, + { flash_calibration_95_V1, &calibration_95_V[1], sizeof(calibration_95_V[1]), "calibration_95_V[1]" }, + { flash_calibration_95_V2, &calibration_95_V[2], sizeof(calibration_95_V[2]), "calibration_95_V[2]" }, + { flash_calibration_95_V3, &calibration_95_V[3], sizeof(calibration_95_V[3]), "calibration_95_V[3]" }, + { flash_calibration_95_V4, &calibration_95_V[4], sizeof(calibration_95_V[4]), "calibration_95_V[4]" }, + { flash_calibration_95_V5, &calibration_95_V[5], sizeof(calibration_95_V[5]), "calibration_95_V[5]" }, + { flash_calibration_95_normValue_0_10, &calibration_95_normValue_0_1[0], sizeof(calibration_95_normValue_0_1[0]), "calibration_95_normValue_0_1[0]" }, + { flash_calibration_95_normValue_0_11, &calibration_95_normValue_0_1[1], sizeof(calibration_95_normValue_0_1[1]), "calibration_95_normValue_0_1[1]" }, + { flash_calibration_95_normValue_0_12, &calibration_95_normValue_0_1[2], sizeof(calibration_95_normValue_0_1[2]), "calibration_95_normValue_0_1[2]" }, + { flash_calibration_95_normValue_0_13, &calibration_95_normValue_0_1[3], sizeof(calibration_95_normValue_0_1[3]), "calibration_95_normValue_0_1[3]" }, + { flash_calibration_95_normValue_0_14, &calibration_95_normValue_0_1[4], sizeof(calibration_95_normValue_0_1[4]), "calibration_95_normValue_0_1[4]" }, + { flash_calibration_95_normValue_0_15, &calibration_95_normValue_0_1[5], sizeof(calibration_95_normValue_0_1[5]), "calibration_95_normValue_0_1[5]" }, // // forward declaration - { 0x04000153, &Platform_AIN_Average_N, sizeof(Platform_AIN_Average_N ), "Platform_AIN_Average_N" }, + { flash_Platform_AIN_Average_N, &Platform_AIN_Average_N, sizeof(Platform_AIN_Average_N), "Platform_AIN_Average_N" }, // // WIP #312 @L Datalogger_action_table_row_count - { 0x04000253, &Datalogger_action_table_row_count, sizeof(Datalogger_action_table_row_count ), "Datalogger_action_table_row_count" }, + { flash_Datalogger_action_table_row_count, &Datalogger_action_table_row_count, sizeof(Datalogger_action_table_row_count), "Datalogger_action_table_row_count" }, // WIP #312 @L Datalogger_action_table_enabled - only 1 byte, write will fail - // { 0x01000353, &Datalogger_action_table_enabled, sizeof(Datalogger_action_table_enabled ), "Datalogger_action_table_enabled" }, + // { 0x01000353, &Datalogger_action_table_enabled, sizeof(Datalogger_action_table_enabled), "Datalogger_action_table_enabled" }, // WIP #312 @L Datalogger_action_table[0] __ bytes - { 0x41005053, &Datalogger_action_table, sizeof(Datalogger_action_table ), "Datalogger_action_table" }, - //{ 0x08____53, &Datalogger_action_table[1], sizeof(Datalogger_action_table[1] ), "Datalogger_action_table[1]" }, + { flash_Datalogger_action_table, &Datalogger_action_table, sizeof(Datalogger_action_table), "Datalogger_action_table" }, + //{ 0x08____53, &Datalogger_action_table[1], sizeof(Datalogger_action_table[1]), "Datalogger_action_table[1]" }, // // forward declaration // WIP #312 %B onButton1_command_table_00[0] __ bytes -- string - { 0x42061053, &onButton1_command_table_00, COMMAND_TABLE_COL_MAX, "onButton1_command_table_00" }, - { 0x42061153, &onButton1_command_table_01, COMMAND_TABLE_COL_MAX, "onButton1_command_table_01" }, - { 0x42061253, &onButton1_command_table_02, COMMAND_TABLE_COL_MAX, "onButton1_command_table_02" }, - { 0x42061353, &onButton1_command_table_03, COMMAND_TABLE_COL_MAX, "onButton1_command_table_03" }, - { 0x42061453, &onButton1_command_table_04, COMMAND_TABLE_COL_MAX, "onButton1_command_table_04" }, - { 0x42061553, &onButton1_command_table_05, COMMAND_TABLE_COL_MAX, "onButton1_command_table_05" }, - { 0x42061653, &onButton1_command_table_06, COMMAND_TABLE_COL_MAX, "onButton1_command_table_06" }, - { 0x42061753, &onButton1_command_table_07, COMMAND_TABLE_COL_MAX, "onButton1_command_table_07" }, - { 0x42061853, &onButton1_command_table_08, COMMAND_TABLE_COL_MAX, "onButton1_command_table_08" }, - { 0x42061953, &onButton1_command_table_09, COMMAND_TABLE_COL_MAX, "onButton1_command_table_09" }, + { flash_onButton1_command_table_00, &onButton1_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_00" }, + { flash_onButton1_command_table_01, &onButton1_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_01" }, + { flash_onButton1_command_table_02, &onButton1_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_02" }, + { flash_onButton1_command_table_03, &onButton1_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_03" }, + { flash_onButton1_command_table_04, &onButton1_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_04" }, + { flash_onButton1_command_table_05, &onButton1_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_05" }, + { flash_onButton1_command_table_06, &onButton1_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_06" }, + { flash_onButton1_command_table_07, &onButton1_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_07" }, + { flash_onButton1_command_table_08, &onButton1_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_08" }, + { flash_onButton1_command_table_09, &onButton1_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton1_command_table_09" }, // WIP #312 %B onButton2_command_table_00[0] __ bytes -- string - { 0x42062053, &onButton2_command_table_00, COMMAND_TABLE_COL_MAX, "onButton2_command_table_00" }, - { 0x42062153, &onButton2_command_table_01, COMMAND_TABLE_COL_MAX, "onButton2_command_table_01" }, - { 0x42062253, &onButton2_command_table_02, COMMAND_TABLE_COL_MAX, "onButton2_command_table_02" }, - { 0x42062353, &onButton2_command_table_03, COMMAND_TABLE_COL_MAX, "onButton2_command_table_03" }, - { 0x42062453, &onButton2_command_table_04, COMMAND_TABLE_COL_MAX, "onButton2_command_table_04" }, - { 0x42062553, &onButton2_command_table_05, COMMAND_TABLE_COL_MAX, "onButton2_command_table_05" }, - { 0x42062653, &onButton2_command_table_06, COMMAND_TABLE_COL_MAX, "onButton2_command_table_06" }, - { 0x42062753, &onButton2_command_table_07, COMMAND_TABLE_COL_MAX, "onButton2_command_table_07" }, - { 0x42062853, &onButton2_command_table_08, COMMAND_TABLE_COL_MAX, "onButton2_command_table_08" }, - { 0x42062953, &onButton2_command_table_09, COMMAND_TABLE_COL_MAX, "onButton2_command_table_09" }, + { flash_onButton2_command_table_00, &onButton2_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_00" }, + { flash_onButton2_command_table_01, &onButton2_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_01" }, + { flash_onButton2_command_table_02, &onButton2_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_02" }, + { flash_onButton2_command_table_03, &onButton2_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_03" }, + { flash_onButton2_command_table_04, &onButton2_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_04" }, + { flash_onButton2_command_table_05, &onButton2_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_05" }, + { flash_onButton2_command_table_06, &onButton2_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_06" }, + { flash_onButton2_command_table_07, &onButton2_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_07" }, + { flash_onButton2_command_table_08, &onButton2_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_08" }, + { flash_onButton2_command_table_09, &onButton2_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton2_command_table_09" }, // WIP #312 %B onButton3_command_table_00[0] __ bytes -- string - { 0x42063053, &onButton3_command_table_00, COMMAND_TABLE_COL_MAX, "onButton3_command_table_00" }, - { 0x42063153, &onButton3_command_table_01, COMMAND_TABLE_COL_MAX, "onButton3_command_table_01" }, - { 0x42063253, &onButton3_command_table_02, COMMAND_TABLE_COL_MAX, "onButton3_command_table_02" }, - { 0x42063353, &onButton3_command_table_03, COMMAND_TABLE_COL_MAX, "onButton3_command_table_03" }, - { 0x42063453, &onButton3_command_table_04, COMMAND_TABLE_COL_MAX, "onButton3_command_table_04" }, - { 0x42063553, &onButton3_command_table_05, COMMAND_TABLE_COL_MAX, "onButton3_command_table_05" }, - { 0x42063653, &onButton3_command_table_06, COMMAND_TABLE_COL_MAX, "onButton3_command_table_06" }, - { 0x42063753, &onButton3_command_table_07, COMMAND_TABLE_COL_MAX, "onButton3_command_table_07" }, - { 0x42063853, &onButton3_command_table_08, COMMAND_TABLE_COL_MAX, "onButton3_command_table_08" }, - { 0x42063953, &onButton3_command_table_09, COMMAND_TABLE_COL_MAX, "onButton3_command_table_09" }, + { flash_onButton3_command_table_00, &onButton3_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_00" }, + { flash_onButton3_command_table_01, &onButton3_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_01" }, + { flash_onButton3_command_table_02, &onButton3_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_02" }, + { flash_onButton3_command_table_03, &onButton3_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_03" }, + { flash_onButton3_command_table_04, &onButton3_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_04" }, + { flash_onButton3_command_table_05, &onButton3_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_05" }, + { flash_onButton3_command_table_06, &onButton3_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_06" }, + { flash_onButton3_command_table_07, &onButton3_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_07" }, + { flash_onButton3_command_table_08, &onButton3_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_08" }, + { flash_onButton3_command_table_09, &onButton3_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton3_command_table_09" }, // WIP #312 %B onButton4_command_table_00[0] __ bytes -- string - { 0x42064053, &onButton4_command_table_00, COMMAND_TABLE_COL_MAX, "onButton4_command_table_00" }, - { 0x42064153, &onButton4_command_table_01, COMMAND_TABLE_COL_MAX, "onButton4_command_table_01" }, - { 0x42064253, &onButton4_command_table_02, COMMAND_TABLE_COL_MAX, "onButton4_command_table_02" }, - { 0x42064353, &onButton4_command_table_03, COMMAND_TABLE_COL_MAX, "onButton4_command_table_03" }, - { 0x42064453, &onButton4_command_table_04, COMMAND_TABLE_COL_MAX, "onButton4_command_table_04" }, - { 0x42064553, &onButton4_command_table_05, COMMAND_TABLE_COL_MAX, "onButton4_command_table_05" }, - { 0x42064653, &onButton4_command_table_06, COMMAND_TABLE_COL_MAX, "onButton4_command_table_06" }, - { 0x42064753, &onButton4_command_table_07, COMMAND_TABLE_COL_MAX, "onButton4_command_table_07" }, - { 0x42064853, &onButton4_command_table_08, COMMAND_TABLE_COL_MAX, "onButton4_command_table_08" }, - { 0x42064953, &onButton4_command_table_09, COMMAND_TABLE_COL_MAX, "onButton4_command_table_09" }, + { flash_onButton4_command_table_00, &onButton4_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_00" }, + { flash_onButton4_command_table_01, &onButton4_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_01" }, + { flash_onButton4_command_table_02, &onButton4_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_02" }, + { flash_onButton4_command_table_03, &onButton4_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_03" }, + { flash_onButton4_command_table_04, &onButton4_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_04" }, + { flash_onButton4_command_table_05, &onButton4_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_05" }, + { flash_onButton4_command_table_06, &onButton4_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_06" }, + { flash_onButton4_command_table_07, &onButton4_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_07" }, + { flash_onButton4_command_table_08, &onButton4_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_08" }, + { flash_onButton4_command_table_09, &onButton4_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton4_command_table_09" }, // WIP #312 %B onButton5_command_table_00[0] __ bytes -- string - { 0x42065053, &onButton5_command_table_00, COMMAND_TABLE_COL_MAX, "onButton5_command_table_00" }, - { 0x42065153, &onButton5_command_table_01, COMMAND_TABLE_COL_MAX, "onButton5_command_table_01" }, - { 0x42065253, &onButton5_command_table_02, COMMAND_TABLE_COL_MAX, "onButton5_command_table_02" }, - { 0x42065353, &onButton5_command_table_03, COMMAND_TABLE_COL_MAX, "onButton5_command_table_03" }, - { 0x42065453, &onButton5_command_table_04, COMMAND_TABLE_COL_MAX, "onButton5_command_table_04" }, - { 0x42065553, &onButton5_command_table_05, COMMAND_TABLE_COL_MAX, "onButton5_command_table_05" }, - { 0x42065653, &onButton5_command_table_06, COMMAND_TABLE_COL_MAX, "onButton5_command_table_06" }, - { 0x42065753, &onButton5_command_table_07, COMMAND_TABLE_COL_MAX, "onButton5_command_table_07" }, - { 0x42065853, &onButton5_command_table_08, COMMAND_TABLE_COL_MAX, "onButton5_command_table_08" }, - { 0x42065953, &onButton5_command_table_09, COMMAND_TABLE_COL_MAX, "onButton5_command_table_09" }, + { flash_onButton5_command_table_00, &onButton5_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_00" }, + { flash_onButton5_command_table_01, &onButton5_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_01" }, + { flash_onButton5_command_table_02, &onButton5_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_02" }, + { flash_onButton5_command_table_03, &onButton5_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_03" }, + { flash_onButton5_command_table_04, &onButton5_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_04" }, + { flash_onButton5_command_table_05, &onButton5_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_05" }, + { flash_onButton5_command_table_06, &onButton5_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_06" }, + { flash_onButton5_command_table_07, &onButton5_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_07" }, + { flash_onButton5_command_table_08, &onButton5_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_08" }, + { flash_onButton5_command_table_09, &onButton5_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton5_command_table_09" }, // WIP #312 %B onButton6_command_table_00[0] __ bytes -- string - { 0x42066053, &onButton6_command_table_00, COMMAND_TABLE_COL_MAX, "onButton6_command_table_00" }, - { 0x42066153, &onButton6_command_table_01, COMMAND_TABLE_COL_MAX, "onButton6_command_table_01" }, - { 0x42066253, &onButton6_command_table_02, COMMAND_TABLE_COL_MAX, "onButton6_command_table_02" }, - { 0x42066353, &onButton6_command_table_03, COMMAND_TABLE_COL_MAX, "onButton6_command_table_03" }, - { 0x42066453, &onButton6_command_table_04, COMMAND_TABLE_COL_MAX, "onButton6_command_table_04" }, - { 0x42066553, &onButton6_command_table_05, COMMAND_TABLE_COL_MAX, "onButton6_command_table_05" }, - { 0x42066653, &onButton6_command_table_06, COMMAND_TABLE_COL_MAX, "onButton6_command_table_06" }, - { 0x42066753, &onButton6_command_table_07, COMMAND_TABLE_COL_MAX, "onButton6_command_table_07" }, - { 0x42066853, &onButton6_command_table_08, COMMAND_TABLE_COL_MAX, "onButton6_command_table_08" }, - { 0x42066953, &onButton6_command_table_09, COMMAND_TABLE_COL_MAX, "onButton6_command_table_09" }, + { flash_onButton6_command_table_00, &onButton6_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_00" }, + { flash_onButton6_command_table_01, &onButton6_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_01" }, + { flash_onButton6_command_table_02, &onButton6_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_02" }, + { flash_onButton6_command_table_03, &onButton6_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_03" }, + { flash_onButton6_command_table_04, &onButton6_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_04" }, + { flash_onButton6_command_table_05, &onButton6_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_05" }, + { flash_onButton6_command_table_06, &onButton6_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_06" }, + { flash_onButton6_command_table_07, &onButton6_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_07" }, + { flash_onButton6_command_table_08, &onButton6_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_08" }, + { flash_onButton6_command_table_09, &onButton6_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton6_command_table_09" }, // WIP #312 %B onButton7_command_table_00[0] __ bytes -- string - { 0x42067053, &onButton7_command_table_00, COMMAND_TABLE_COL_MAX, "onButton7_command_table_00" }, - { 0x42067153, &onButton7_command_table_01, COMMAND_TABLE_COL_MAX, "onButton7_command_table_01" }, - { 0x42067253, &onButton7_command_table_02, COMMAND_TABLE_COL_MAX, "onButton7_command_table_02" }, - { 0x42067353, &onButton7_command_table_03, COMMAND_TABLE_COL_MAX, "onButton7_command_table_03" }, - { 0x42067453, &onButton7_command_table_04, COMMAND_TABLE_COL_MAX, "onButton7_command_table_04" }, - { 0x42067553, &onButton7_command_table_05, COMMAND_TABLE_COL_MAX, "onButton7_command_table_05" }, - { 0x42067653, &onButton7_command_table_06, COMMAND_TABLE_COL_MAX, "onButton7_command_table_06" }, - { 0x42067753, &onButton7_command_table_07, COMMAND_TABLE_COL_MAX, "onButton7_command_table_07" }, - { 0x42067853, &onButton7_command_table_08, COMMAND_TABLE_COL_MAX, "onButton7_command_table_08" }, - { 0x42067953, &onButton7_command_table_09, COMMAND_TABLE_COL_MAX, "onButton7_command_table_09" }, + { flash_onButton7_command_table_00, &onButton7_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_00" }, + { flash_onButton7_command_table_01, &onButton7_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_01" }, + { flash_onButton7_command_table_02, &onButton7_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_02" }, + { flash_onButton7_command_table_03, &onButton7_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_03" }, + { flash_onButton7_command_table_04, &onButton7_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_04" }, + { flash_onButton7_command_table_05, &onButton7_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_05" }, + { flash_onButton7_command_table_06, &onButton7_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_06" }, + { flash_onButton7_command_table_07, &onButton7_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_07" }, + { flash_onButton7_command_table_08, &onButton7_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_08" }, + { flash_onButton7_command_table_09, &onButton7_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton7_command_table_09" }, // WIP #312 %B onButton8_command_table_00[0] __ bytes -- string - { 0x42068053, &onButton8_command_table_00, COMMAND_TABLE_COL_MAX, "onButton8_command_table_00" }, - { 0x42068153, &onButton8_command_table_01, COMMAND_TABLE_COL_MAX, "onButton8_command_table_01" }, - { 0x42068253, &onButton8_command_table_02, COMMAND_TABLE_COL_MAX, "onButton8_command_table_02" }, - { 0x42068353, &onButton8_command_table_03, COMMAND_TABLE_COL_MAX, "onButton8_command_table_03" }, - { 0x42068453, &onButton8_command_table_04, COMMAND_TABLE_COL_MAX, "onButton8_command_table_04" }, - { 0x42068553, &onButton8_command_table_05, COMMAND_TABLE_COL_MAX, "onButton8_command_table_05" }, - { 0x42068653, &onButton8_command_table_06, COMMAND_TABLE_COL_MAX, "onButton8_command_table_06" }, - { 0x42068753, &onButton8_command_table_07, COMMAND_TABLE_COL_MAX, "onButton8_command_table_07" }, - { 0x42068853, &onButton8_command_table_08, COMMAND_TABLE_COL_MAX, "onButton8_command_table_08" }, - { 0x42068953, &onButton8_command_table_09, COMMAND_TABLE_COL_MAX, "onButton8_command_table_09" }, + { flash_onButton8_command_table_00, &onButton8_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_00" }, + { flash_onButton8_command_table_01, &onButton8_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_01" }, + { flash_onButton8_command_table_02, &onButton8_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_02" }, + { flash_onButton8_command_table_03, &onButton8_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_03" }, + { flash_onButton8_command_table_04, &onButton8_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_04" }, + { flash_onButton8_command_table_05, &onButton8_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_05" }, + { flash_onButton8_command_table_06, &onButton8_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_06" }, + { flash_onButton8_command_table_07, &onButton8_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_07" }, + { flash_onButton8_command_table_08, &onButton8_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_08" }, + { flash_onButton8_command_table_09, &onButton8_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton8_command_table_09" }, // WIP #312 %B onButton9_command_table_00[0] __ bytes -- string - { 0x42069053, &onButton9_command_table_00, COMMAND_TABLE_COL_MAX, "onButton9_command_table_00" }, - { 0x42069153, &onButton9_command_table_01, COMMAND_TABLE_COL_MAX, "onButton9_command_table_01" }, - { 0x42069253, &onButton9_command_table_02, COMMAND_TABLE_COL_MAX, "onButton9_command_table_02" }, - { 0x42069353, &onButton9_command_table_03, COMMAND_TABLE_COL_MAX, "onButton9_command_table_03" }, - { 0x42069453, &onButton9_command_table_04, COMMAND_TABLE_COL_MAX, "onButton9_command_table_04" }, - { 0x42069553, &onButton9_command_table_05, COMMAND_TABLE_COL_MAX, "onButton9_command_table_05" }, - { 0x42069653, &onButton9_command_table_06, COMMAND_TABLE_COL_MAX, "onButton9_command_table_06" }, - { 0x42069753, &onButton9_command_table_07, COMMAND_TABLE_COL_MAX, "onButton9_command_table_07" }, - { 0x42069853, &onButton9_command_table_08, COMMAND_TABLE_COL_MAX, "onButton9_command_table_08" }, - { 0x42069953, &onButton9_command_table_09, COMMAND_TABLE_COL_MAX, "onButton9_command_table_09" }, + { flash_onButton9_command_table_00, &onButton9_command_table_00, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_00" }, + { flash_onButton9_command_table_01, &onButton9_command_table_01, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_01" }, + { flash_onButton9_command_table_02, &onButton9_command_table_02, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_02" }, + { flash_onButton9_command_table_03, &onButton9_command_table_03, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_03" }, + { flash_onButton9_command_table_04, &onButton9_command_table_04, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_04" }, + { flash_onButton9_command_table_05, &onButton9_command_table_05, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_05" }, + { flash_onButton9_command_table_06, &onButton9_command_table_06, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_06" }, + { flash_onButton9_command_table_07, &onButton9_command_table_07, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_07" }, + { flash_onButton9_command_table_08, &onButton9_command_table_08, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_08" }, + { flash_onButton9_command_table_09, &onButton9_command_table_09, (uint32_t)COMMAND_TABLE_COL_MAX, "onButton9_command_table_09" }, // WIP #312 %B onButton9_command_table[0] __ bytes // - { 0x00000000, NULL, 0, "wiped" }, // Ignore 0x00000000 wiped records; end of table + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_customChannelHeader_ch + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_MathOffsetA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_MathGainMulA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_AIN_MathGainDivA + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- SPI_MathUnitString + // +#if PLATFORM_AIN_MATH + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_AIN_customChannelHeader_ch + // { 0x08070053, &Platform_AIN_customChannelHeader_ch, sizeof(Platform_AIN_customChannelHeader_ch), "Platform_AIN_customChannelHeader_ch" }, + { flash_Platform_AIN_customChannelHeader_ch0, &Platform_AIN_customChannelHeader_ch0, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_AIN_customChannelHeader_ch0" }, + // + { flash_Platform_AIN_customChannelHeader_ch1, &Platform_AIN_customChannelHeader_ch1, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_AIN_customChannelHeader_ch1" }, + { flash_Platform_AIN_customChannelHeader_ch2, &Platform_AIN_customChannelHeader_ch2, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_AIN_customChannelHeader_ch2" }, + { flash_Platform_AIN_customChannelHeader_ch3, &Platform_AIN_customChannelHeader_ch3, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_AIN_customChannelHeader_ch3" }, + { flash_Platform_AIN_customChannelHeader_ch4, &Platform_AIN_customChannelHeader_ch4, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_AIN_customChannelHeader_ch4" }, + { flash_Platform_AIN_customChannelHeader_ch5, &Platform_AIN_customChannelHeader_ch5, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_AIN_customChannelHeader_ch5" }, + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathOffsetA + { flash_Platform_MathOffsetA0, &Platform_MathOffsetA[0], sizeof(Platform_MathOffsetA[0]), "Platform_MathOffsetA[0]" }, + { flash_Platform_MathOffsetA1, &Platform_MathOffsetA[1], sizeof(Platform_MathOffsetA[1]), "Platform_MathOffsetA[1]" }, + { flash_Platform_MathOffsetA2, &Platform_MathOffsetA[2], sizeof(Platform_MathOffsetA[2]), "Platform_MathOffsetA[2]" }, + { flash_Platform_MathOffsetA3, &Platform_MathOffsetA[3], sizeof(Platform_MathOffsetA[3]), "Platform_MathOffsetA[3]" }, + { flash_Platform_MathOffsetA4, &Platform_MathOffsetA[4], sizeof(Platform_MathOffsetA[4]), "Platform_MathOffsetA[4]" }, + { flash_Platform_MathOffsetA5, &Platform_MathOffsetA[5], sizeof(Platform_MathOffsetA[5]), "Platform_MathOffsetA[5]" }, + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathGainMulA + { flash_Platform_MathGainMulA0, &Platform_MathGainMulA[0], sizeof(Platform_MathGainMulA[0]), "Platform_MathGainMulA[0]" }, + { flash_Platform_MathGainMulA1, &Platform_MathGainMulA[1], sizeof(Platform_MathGainMulA[1]), "Platform_MathGainMulA[1]" }, + { flash_Platform_MathGainMulA2, &Platform_MathGainMulA[2], sizeof(Platform_MathGainMulA[2]), "Platform_MathGainMulA[2]" }, + { flash_Platform_MathGainMulA3, &Platform_MathGainMulA[3], sizeof(Platform_MathGainMulA[3]), "Platform_MathGainMulA[3]" }, + { flash_Platform_MathGainMulA4, &Platform_MathGainMulA[4], sizeof(Platform_MathGainMulA[4]), "Platform_MathGainMulA[4]" }, + { flash_Platform_MathGainMulA5, &Platform_MathGainMulA[5], sizeof(Platform_MathGainMulA[5]), "Platform_MathGainMulA[5]" }, + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathGainDivA + { flash_Platform_MathGainDivA0, &Platform_MathGainDivA[0], sizeof(Platform_MathGainDivA[0]), "Platform_MathGainDivA[0]" }, + { flash_Platform_MathGainDivA1, &Platform_MathGainDivA[1], sizeof(Platform_MathGainDivA[1]), "Platform_MathGainDivA[1]" }, + { flash_Platform_MathGainDivA2, &Platform_MathGainDivA[2], sizeof(Platform_MathGainDivA[2]), "Platform_MathGainDivA[2]" }, + { flash_Platform_MathGainDivA3, &Platform_MathGainDivA[3], sizeof(Platform_MathGainDivA[3]), "Platform_MathGainDivA[3]" }, + { flash_Platform_MathGainDivA4, &Platform_MathGainDivA[4], sizeof(Platform_MathGainDivA[4]), "Platform_MathGainDivA[4]" }, + { flash_Platform_MathGainDivA5, &Platform_MathGainDivA[5], sizeof(Platform_MathGainDivA[5]), "Platform_MathGainDivA[5]" }, + // MAX32625 flash peek/poke support (MAX40108 demo) #312 #363 -- Platform_MathUnitString + // { 0x08070453, &Platform_MathUnitString, sizeof(Platform_MathUnitString), "Platform_MathUnitString" }, + { flash_Platform_MathUnitString_ch0, &Platform_MathUnitString_ch0, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_MathUnitString_ch0" }, + { flash_Platform_MathUnitString_ch1, &Platform_MathUnitString_ch1, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_MathUnitString_ch1" }, + { flash_Platform_MathUnitString_ch2, &Platform_MathUnitString_ch2, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_MathUnitString_ch2" }, + { flash_Platform_MathUnitString_ch3, &Platform_MathUnitString_ch3, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_MathUnitString_ch3" }, + { flash_Platform_MathUnitString_ch4, &Platform_MathUnitString_ch4, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_MathUnitString_ch4" }, + { flash_Platform_MathUnitString_ch5, &Platform_MathUnitString_ch5, (uint32_t)Platform_AIN_customChannelHeader_MAXLENGTH, "Platform_MathUnitString_ch5" }, +#endif // PLATFORM_AIN_MATH + // + // MAX32625 flash peek/poke support (MAX40108 demo) #312 -- more items could be added here + { flash_wiped_00, NULL, 0, "wiped" }, // Ignore 0x00000000 wiped records; end of table }; const uint32_t save_arg_01_pageErase = 0x00000001; // page erase and rewrite const uint32_t load_arg_01_brief = 0x00000001; // brief list loaded values @@ -3291,6 +3599,14 @@ const uint32_t save_arg_20_action_table = 0x00000020; // save Datalogger_action_table const uint32_t save_arg_40_command_table = 0x00000040; // save onButtonX_command_table const uint32_t save_arg_80_reserved = 0x00000080; // reserved +const uint32_t save_arg_100_reserved = 0x00000100; // reserved +const uint32_t save_arg_200_reserved = 0x00000200; // reserved +const uint32_t save_arg_400_reserved = 0x00000400; // reserved +const uint32_t save_arg_800_reserved = 0x00000800; // reserved +const uint32_t save_arg_1000_reserved = 0x000001000; // reserved +const uint32_t save_arg_2000_reserved = 0x000002000; // reserved +const uint32_t save_arg_4000_reserved = 0x000004000; // reserved +const uint32_t save_arg_8000_reserved = 0x000008000; // reserved const uint32_t save_arg_default = 0 | save_arg_01_pageErase // | save_arg_02_verbose @@ -3300,6 +3616,14 @@ | save_arg_20_action_table | save_arg_40_command_table // | save_arg_80_reserved + // | save_arg_100_reserved + // | save_arg_200_reserved + // | save_arg_400_reserved + // | save_arg_800_reserved + // | save_arg_1000_reserved + // | save_arg_2000_reserved + // | save_arg_4000_reserved + // | save_arg_8000_reserved ; const uint32_t load_arg_default = 0 | load_arg_01_brief @@ -3310,6 +3634,14 @@ | save_arg_20_action_table | save_arg_40_command_table // | save_arg_80_reserved + // | save_arg_100_reserved + // | save_arg_200_reserved + // | save_arg_400_reserved + // | save_arg_800_reserved + // | save_arg_1000_reserved + // | save_arg_2000_reserved + // | save_arg_4000_reserved + // | save_arg_8000_reserved ; const uint32_t load_arg_startup = 0 // | load_arg_01_brief @@ -3320,6 +3652,14 @@ | save_arg_20_action_table | save_arg_40_command_table // | save_arg_80_reserved + // | save_arg_100_reserved + // | save_arg_200_reserved + // | save_arg_400_reserved + // | save_arg_800_reserved + // | save_arg_1000_reserved + // | save_arg_2000_reserved + // | save_arg_4000_reserved + // | save_arg_8000_reserved ; // WIP #312 store values into flash_page_configuration_back_up[] from calibration_05_V[] etc. Default save everything. // @param[in] save_arg %F save=0x00000001 = page erase and rewrite, else append in next available blank space within page @@ -3347,6 +3687,14 @@ if ((save_arg & save_arg_20_action_table) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_20_action_table", save_arg_20_action_table); } if ((save_arg & save_arg_40_command_table) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_40_command_table", save_arg_40_command_table); } if ((save_arg & save_arg_80_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_80_reserved", save_arg_80_reserved); } + if ((save_arg & save_arg_100_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_100_reserved", save_arg_100_reserved); } + if ((save_arg & save_arg_200_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_200_reserved", save_arg_200_reserved); } + if ((save_arg & save_arg_400_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_400_reserved", save_arg_400_reserved); } + if ((save_arg & save_arg_800_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_800_reserved", save_arg_800_reserved); } + if ((save_arg & save_arg_1000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_1000_reserved", save_arg_1000_reserved); } + if ((save_arg & save_arg_2000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_2000_reserved", save_arg_2000_reserved); } + if ((save_arg & save_arg_4000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_4000_reserved", save_arg_4000_reserved); } + if ((save_arg & save_arg_8000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_8000_reserved", save_arg_8000_reserved); } } // WIP #312 %F save=save_arg could filter which items to append to flash file // initialize flash memory interface @@ -3438,6 +3786,30 @@ { // @param[in] save_arg %F save=0x00000080 = reserved } + if ((save_arg & save_arg_100_reserved) != 0) + { + } + if ((save_arg & save_arg_200_reserved) != 0) + { + } + if ((save_arg & save_arg_400_reserved) != 0) + { + } + if ((save_arg & save_arg_800_reserved) != 0) + { + } + if ((save_arg & save_arg_1000_reserved) != 0) + { + } + if ((save_arg & save_arg_2000_reserved) != 0) + { + } + if ((save_arg & save_arg_4000_reserved) != 0) + { + } + if ((save_arg & save_arg_8000_reserved) != 0) + { + } // address of next 16-byte-aligned record start address uint32_t file_addr_next = (file_addr + 16) &~ 0x0000000F; @@ -3495,6 +3867,62 @@ // print " skip"; // } } + if ((save_arg & save_arg_100_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_200_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_400_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_800_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_1000_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_2000_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_4000_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } + if ((save_arg & save_arg_8000_reserved) != 0) + { + // WIP #312 -- save a subset of configuration_back_up_list[] + // if (configuration_back_up_list[i].recordType __not_match__ __something__) { + // print " skip"; + // } + } // if ((save_arg & save_arg_01_pageErase) == 0) { @@ -3533,7 +3961,7 @@ } // compare with the 32-bit value we intend to store int is_record_a_duplicate = true; - for (int compareOffset = 0; compareOffset*4 < configuration_back_up_list[i].length_bytes; compareOffset++) + for (unsigned int compareOffset = 0; compareOffset*4 < configuration_back_up_list[i].length_bytes; compareOffset++) { uint32_t saved_data_word = *((uint32_t*)file_addr_previous_record+1+compareOffset); uint32_t new_data_word = *((uint32_t*)configuration_back_up_list[i].addr+compareOffset); @@ -3663,6 +4091,14 @@ if ((load_arg & save_arg_20_action_table) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_20_action_table", save_arg_20_action_table); } if ((load_arg & save_arg_40_command_table) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_40_command_table", save_arg_40_command_table); } if ((load_arg & save_arg_80_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_80_reserved", save_arg_80_reserved); } + if ((load_arg & save_arg_100_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_100_reserved", save_arg_100_reserved); } + if ((load_arg & save_arg_200_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_200_reserved", save_arg_200_reserved); } + if ((load_arg & save_arg_400_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_400_reserved", save_arg_400_reserved); } + if ((load_arg & save_arg_800_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_800_reserved", save_arg_800_reserved); } + if ((load_arg & save_arg_1000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_1000_reserved", save_arg_1000_reserved); } + if ((load_arg & save_arg_2000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_2000_reserved", save_arg_2000_reserved); } + if ((load_arg & save_arg_4000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_4000_reserved", save_arg_4000_reserved); } + if ((load_arg & save_arg_8000_reserved) != 0) { cmdLine.serial().printf("\r\n 0x%lx: save_arg_8000_reserved", save_arg_8000_reserved); } } // WIP #312 %F load=load_arg could filter which items to accept from flash file @@ -3730,8 +4166,7 @@ } if ((load_arg & save_arg_02_verbose) != 0) { - - for (int j = 0; j <= configuration_back_up_list[i].length_bytes; j += 4) + for (unsigned int j = 0; j <= configuration_back_up_list[i].length_bytes; j += 4) { cmdLine.serial().printf("\r\n%5s 0x%8.8lx: 0x%8.8lx", poke_access_list[poke_access_list_index].name, @@ -3806,19 +4241,88 @@ double SPI_AIN_Voltage[NUM_DUT_ANALOG_IN_CHANNELS]; // Optional custom per-channel header suffix // This could be used to identify external hardware attached to each input -#ifndef HAS_SPI_AIN_customChannelHeader -#define HAS_SPI_AIN_customChannelHeader 0 -#endif #if HAS_SPI_AIN_customChannelHeader // Optional custom per-channel header suffix -const char* const SPI_AIN_customChannelHeader_ch[NUM_DUT_ANALOG_IN_CHANNELS] = { - "", // MAX40108: AIN0_1V0_current_ 0.591202*100/3.34 = 17.70065868263473mA - "", // MAX40108: AIN1_1V0_voltage - "WE", // MAX40108: AIN2_WE - "CE", // MAX40108: AIN3_CE - "*100/3.34=mA", // MAX40108: AIN4_*100/3.34=mA - "CELL_VOLTAGE", // MAX40108: AIN5_CELL_VOLTAGE +// WIP Editable customChannelHeader strings #363 - SPI_AIN_customChannelHeader_ch +char SPI_AIN_customChannelHeader_ch0[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch1[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch2[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch3[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch4[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch5[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch6[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch7[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch8[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +char SPI_AIN_customChannelHeader_ch9[SPI_AIN_customChannelHeader_MAXLENGTH] = ""; +static char* SPI_AIN_customChannelHeader_ch[NUM_SPI_ANALOG_IN_CHANNELS] = { + SPI_AIN_customChannelHeader_ch0, + SPI_AIN_customChannelHeader_ch1, + SPI_AIN_customChannelHeader_ch2, + SPI_AIN_customChannelHeader_ch3, + SPI_AIN_customChannelHeader_ch4, + SPI_AIN_customChannelHeader_ch5, + SPI_AIN_customChannelHeader_ch6, + SPI_AIN_customChannelHeader_ch7, + SPI_AIN_customChannelHeader_ch8, + SPI_AIN_customChannelHeader_ch9, }; #endif // HAS_SPI_AIN_customChannelHeader +// +// MAX40108 Datalog Math #362 -- SPI_AIN_Enable_Math_ch[] SPI_AIN_MATH +#if SPI_AIN_MATH +uint8_t SPI_AIN_Enable_Math_ch[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + Platform_AIN_Disable, +}; +#endif // SPI_AIN_MATH +// +// MAX40108 Datalog Math #362 -- SPI_AIN_MathOffsetA[] SPI_AIN_MATH +#if SPI_AIN_MATH +double SPI_AIN_MathOffsetA[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + 1.0, +}; +#endif // SPI_AIN_MATH +// +// MAX40108 Datalog Math #362 -- SPI_AIN_MathGainMulA[] SPI_AIN_MATH +#if SPI_AIN_MATH +double SPI_AIN_MathGainMulA[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + 1.0, +}; +#endif // SPI_AIN_MATH +// +// MAX40108 Datalog Math #362 -- SPI_AIN_MathGainDivA[] SPI_AIN_MATH +#if SPI_AIN_MATH +double SPI_AIN_MathGainDivA[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + 1.0, +}; +#endif // SPI_AIN_MATH +// +// MAX40108 Datalog Math #362 -- SPI_AIN_MathUnitString[] SPI_AIN_MATH +#if SPI_AIN_MATH +// WIP Editable customChannelHeader strings #363 - SPI_AIN_MathUnitString +#define SPI_AIN_MathUnitString_MAXLENGTH 20 +char SPI_AIN_MathUnitString_ch0[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch1[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch2[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch3[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch4[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch5[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch6[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch7[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch8[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +char SPI_AIN_MathUnitString_ch9[SPI_AIN_MathUnitString_MAXLENGTH] = ""; +static char* SPI_AIN_MathUnitString[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + SPI_AIN_MathUnitString_ch0, + SPI_AIN_MathUnitString_ch1, + SPI_AIN_MathUnitString_ch2, + SPI_AIN_MathUnitString_ch3, + SPI_AIN_MathUnitString_ch4, + SPI_AIN_MathUnitString_ch5, + SPI_AIN_MathUnitString_ch6, + SPI_AIN_MathUnitString_ch7, + SPI_AIN_MathUnitString_ch8, + SPI_AIN_MathUnitString_ch9, +}; +#endif // SPI_AIN_MATH +// #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC // ---------- Measure_Voltage_custom_props in Measure_Voltage @pre and in class properties ---------- #if defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -3967,15 +4471,13 @@ //-------------------------------------------------- // Option to Datalog Arduino platform analog inputs -#ifndef LOG_PLATFORM_AIN -#define LOG_PLATFORM_AIN 6 -//~ #undef LOG_PLATFORM_AIN -#endif #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs //#ifndef NUM_PLATFORM_ANALOG_IN_CHANNELS //#define NUM_PLATFORM_ANALOG_IN_CHANNELS 6 //#endif const int NUM_PLATFORM_ANALOG_IN_CHANNELS = 6; +// +// Option to Datalog Arduino platform analog inputs const double adc_full_scale_voltage[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { analogInPin_fullScaleVoltage[0], // 1.2, analogInPin_fullScaleVoltage[1], // 1.2, @@ -3989,15 +4491,39 @@ Platform_AIN_Disable = 0, Platform_AIN_Enable_LSB = 1, Platform_AIN_Enable_Volt = 2, +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_LSB - display math result instead of LSB in channel# position + Platform_AIN_Enable_Math_LSB = 3, +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_Volt - display math result instead of volts in channel# position + Platform_AIN_Enable_Math_Volt = 4, } Platform_AIN_Enable_t; uint8_t Platform_Enable_ch[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { Platform_AIN_Enable_Volt, // AIN0 2=Volt Platform_AIN_Enable_Volt, // AIN1 2=Volt +#if PLATFORM_AIN_MATH + Platform_AIN_Enable_Math_Volt, // Math ch2 Volt enable, offset 0.74, gainMul R206=10000, gainDiv 1, units nA +#else // PLATFORM_AIN_MATH Platform_AIN_Enable_Volt, // AIN2 2=Volt +#endif // PLATFORM_AIN_MATH Platform_AIN_Enable_Volt, // AIN3 2=Volt +#if PLATFORM_AIN_MATH + Platform_AIN_Enable_Math_Volt, // Math ch4 Volt enable, offset 0, gainMul 100, gainDiv 3.34, units mA +#else // PLATFORM_AIN_MATH Platform_AIN_Enable_Volt, // AIN4 2=Volt +#endif // PLATFORM_AIN_MATH Platform_AIN_Enable_Volt, // AIN5 2=Volt }; +// MAX40108 Datalog Math #362 -- Platform_Enable_Math_ch[] PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH +uint8_t Platform_Enable_Math_ch[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + Platform_AIN_Disable, + Platform_AIN_Disable, + Platform_AIN_Disable, // Math ch2 Volt enable, offset 0.74, gainMul R206=10000, gainDiv 1, units nA + Platform_AIN_Disable, + Platform_AIN_Disable, // Math ch4 Volt enable, offset 0, gainMul 100, gainDiv 3.34, units mA + Platform_AIN_Disable, +}; +#endif // PLATFORM_AIN_MATH +// // Option to report average value of Arduino platform analog inputs #ifndef USE_Platform_AIN_Average #define USE_Platform_AIN_Average 1 @@ -4109,19 +4635,101 @@ #endif // HAS_Platform_AIN_Calibration // Option to customize channel names in datalog header line // This could be used to identify external hardware attached to each input -#ifndef HAS_Platform_AIN_customChannelHeader -#define HAS_Platform_AIN_customChannelHeader 1 -#endif #if HAS_Platform_AIN_customChannelHeader // Optional custom per-channel header suffix -const char* const Platform_AIN_customChannelHeader_ch[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { - "=AIN4", // MAX40108: AIN0_1V0_current_ 0.591202*100/3.34 = 17.70065868263473mA - "=AIN5", // MAX40108: AIN1_1V0_voltage - "WE", // MAX40108: AIN2_WE - "CE", // MAX40108: AIN3_CE - "*100/3.34=mA", // MAX40108: AIN4_*100/3.34=mA - "CELL_VOLTAGE", // MAX40108: AIN5_CELL_VOLTAGE +// WIP Editable customChannelHeader strings #363 - Platform_AIN_customChannelHeader_ch +#if MAX40108_DEMO +char Platform_AIN_customChannelHeader_ch0[Platform_AIN_customChannelHeader_MAXLENGTH] = "=AIN4"; // MAX40108: AIN0_1V0_current_ 0.591202*100/3.34 = 17.70065868263473mA +char Platform_AIN_customChannelHeader_ch1[Platform_AIN_customChannelHeader_MAXLENGTH] = "=AIN5"; // MAX40108: AIN1_1V0_voltage +char Platform_AIN_customChannelHeader_ch2[Platform_AIN_customChannelHeader_MAXLENGTH] = "WE"; // MAX40108: AIN2_WE +char Platform_AIN_customChannelHeader_ch3[Platform_AIN_customChannelHeader_MAXLENGTH] = "CE"; // MAX40108: AIN3_CE +#if PLATFORM_AIN_MATH +char Platform_AIN_customChannelHeader_ch4[Platform_AIN_customChannelHeader_MAXLENGTH] = "BATTmA"; // MAX40108: AIN4_*100/3.34=mA +#else // PLATFORM_AIN_MATH +char Platform_AIN_customChannelHeader_ch4[Platform_AIN_customChannelHeader_MAXLENGTH] = "*100/3.34=mA"; // MAX40108: AIN4_*100/3.34=mA +#endif // PLATFORM_AIN_MATH +char Platform_AIN_customChannelHeader_ch5[Platform_AIN_customChannelHeader_MAXLENGTH] = "BATTV"; // MAX40108: AIN5_CELL_VOLTAGE +#else // MAX40108_DEMO ---------- +char Platform_AIN_customChannelHeader_ch0[Platform_AIN_customChannelHeader_MAXLENGTH] = "=AIN4"; +char Platform_AIN_customChannelHeader_ch1[Platform_AIN_customChannelHeader_MAXLENGTH] = "=AIN5"; +char Platform_AIN_customChannelHeader_ch2[Platform_AIN_customChannelHeader_MAXLENGTH] = ""; +char Platform_AIN_customChannelHeader_ch3[Platform_AIN_customChannelHeader_MAXLENGTH] = ""; +char Platform_AIN_customChannelHeader_ch4[Platform_AIN_customChannelHeader_MAXLENGTH] = ""; +char Platform_AIN_customChannelHeader_ch5[Platform_AIN_customChannelHeader_MAXLENGTH] = ""; +#endif // MAX40108_DEMO ---------- +static char* Platform_AIN_customChannelHeader_ch[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + Platform_AIN_customChannelHeader_ch0, + Platform_AIN_customChannelHeader_ch1, + Platform_AIN_customChannelHeader_ch2, + Platform_AIN_customChannelHeader_ch3, + Platform_AIN_customChannelHeader_ch4, + Platform_AIN_customChannelHeader_ch5, }; #endif // HAS_Platform_AIN_customChannelHeader +// MAX40108 Datalog Math #362 -- Platform_MathOffsetA[] PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH +double Platform_MathOffsetA[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + 0, + 0, + 0.74, // Math ch2 Volt enable, offset 0.74, gainMul R206=10000, gainDiv 1, units nA + 0, + 0, // Math ch4 Volt enable, offset 0, gainMul 100, gainDiv 3.34, units mA + 0, +}; +#endif // PLATFORM_AIN_MATH +// +// MAX40108 Datalog Math #362 -- Platform_MathGainMulA[] PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH +double Platform_MathGainMulA[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + 1.0, + 1.0, + 10000.0, // Math ch2 Volt enable, offset 0.74, gainMul R206=10000, gainDiv 1, units nA + 1.0, + 100.0, // Math ch4 Volt enable, offset 0, gainMul 100, gainDiv 3.34, units mA + 1.0, +}; +#endif // PLATFORM_AIN_MATH +// +// MAX40108 Datalog Math #362 -- Platform_MathGainDivA[] PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH +double Platform_MathGainDivA[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + 1.0, + 1.0, + 1.0, // Math ch2 Volt enable, offset 0.74, gainMul R206=10000, gainDiv 1, units nA + 1.0, + 3.34, // Math ch4 Volt enable, offset 0, gainMul 100, gainDiv 3.34, units mA + 1.0, +}; +#endif // PLATFORM_AIN_MATH +// +// MAX40108 Datalog Math #362 -- Platform_MathUnitString[] PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH +// WIP Editable customChannelHeader strings #363 - Platform_MathUnitString +#define Platform_MathUnitString_MAXLENGTH 20 +#if MAX40108_DEMO +char Platform_MathUnitString_ch0[Platform_MathUnitString_MAXLENGTH] = "mA"; // MAX40108: AIN0_1V0_current_ 0.591202*100/3.34 = 17.70065868263473mA +char Platform_MathUnitString_ch1[Platform_MathUnitString_MAXLENGTH] = "V"; // MAX40108: AIN1_1V0_voltage +char Platform_MathUnitString_ch2[Platform_MathUnitString_MAXLENGTH] = "nA"; // MAX40108: AIN2_WE // Math ch2 Volt enable, offset 0.74, gainMul R206=10000, gainDiv 1, units nA +char Platform_MathUnitString_ch3[Platform_MathUnitString_MAXLENGTH] = "V"; // MAX40108: AIN3_CE +char Platform_MathUnitString_ch4[Platform_MathUnitString_MAXLENGTH] = "mA"; // MAX40108: AIN4_*100/3.34=mA // Math ch4 Volt enable, offset 0, gainMul 100, gainDiv 3.34, units mA +char Platform_MathUnitString_ch5[Platform_MathUnitString_MAXLENGTH] = "V"; // MAX40108: AIN5_CELL_VOLTAGE +#else // MAX40108_DEMO ---------- +char Platform_MathUnitString_ch0[Platform_MathUnitString_MAXLENGTH] = ""; +char Platform_MathUnitString_ch1[Platform_MathUnitString_MAXLENGTH] = ""; +char Platform_MathUnitString_ch2[Platform_MathUnitString_MAXLENGTH] = ""; +char Platform_MathUnitString_ch3[Platform_MathUnitString_MAXLENGTH] = ""; +char Platform_MathUnitString_ch4[Platform_MathUnitString_MAXLENGTH] = ""; +char Platform_MathUnitString_ch5[Platform_MathUnitString_MAXLENGTH] = ""; +#endif // MAX40108_DEMO ---------- +static char* Platform_MathUnitString[NUM_PLATFORM_ANALOG_IN_CHANNELS] = { + Platform_MathUnitString_ch0, + Platform_MathUnitString_ch1, + Platform_MathUnitString_ch2, + Platform_MathUnitString_ch3, + Platform_MathUnitString_ch4, + Platform_MathUnitString_ch5, +}; +#endif // PLATFORM_AIN_MATH +// //-------------------------------------------------- // Option to log platform analog inputs as raw LSB code #ifndef LOG_PLATFORM_ANALOG_IN_LSB @@ -4179,7 +4787,7 @@ # elif HAS_DAPLINK_SERIAL // TODO WIP Command forwarding to DAPLINK serial TX/RX cmdLine_DAPLINKserial #257 # else // neither HAS_AUX_SERIAL HAS_DAPLINK_SERIAL -#warning "USE_AUX_SERIAL_CMD_FORWARDING should not be enabled without HAS_AUX_SERIAL or HAS_DAPLINK_SERIAL" +#warning "info: USE_AUX_SERIAL_CMD_FORWARDING should not be enabled without HAS_AUX_SERIAL or HAS_DAPLINK_SERIAL" # endif // HAS_AUX_SERIAL HAS_DAPLINK_SERIAL # if HAS_AUX_SERIAL // TODO WIP Command forwarding to AUX serial TX/RX cmdLine_AUXserial #257 @@ -7087,6 +7695,13 @@ edit_condition_channel = channel_index; } // +// MAX40108 Datalog Math #362 -- parse_action_table_args() support condition_if_MathAn_gt_threshold gt lt eq ne etc. +#if PLATFORM_AIN_MATH +#endif // PLATFORM_AIN_MATH +#if SPI_AIN_MATH +#endif // SPI_AIN_MATH +// + // } // end for (channel_index...) // } @@ -7789,6 +8404,7 @@ break; } // switch(Datalogger_action_table[i].action) //~ cmdLine.serial().printf(" condition %d", Datalogger_action_table[i].condition); + // WIP Datalog Math -- if channel has its math enabled, compare with the math-adjusted version. Keep it simple. #362 switch(Datalogger_action_table[i].condition) { case condition_always: @@ -7887,6 +8503,36 @@ ) { // it's me +#if HAS_SPI_AIN_customChannelHeader +// WIP Editable customChannelHeader strings #363 - LS__ header= -- update SPI_AIN_customChannelHeader_ch + // menu LS__ header=xyzzy -- custom channel header + if (cmdLine.parse_and_remove_key("header", + SPI_AIN_customChannelHeader_ch[channel_index], + SPI_AIN_customChannelHeader_ch_MAXLENGTH)) + { + cmdLine.serial().printf("\r\n LS%d%c header=%s", channel_index, cmdLine[3], SPI_AIN_customChannelHeader_ch[channel_index]); + // SPI_AIN_customChannelHeader_ch[channel_index] was updated + if (cmdLine[2] == '-' /* all channels */) + { // LS-_ header= -- all channels custom header + cmdLine.serial().printf("\r\n LS%c%c -- all channels", cmdLine[2], cmdLine[3]); + for (int cx = 0; cx < NUM_DUT_ANALOG_IN_CHANNELS; cx++) + { + if (cx != channel_index) + { + // strncpy(char* dst, const char* src, size_t n) + strncpy(SPI_AIN_customChannelHeader_ch[cx], + SPI_AIN_customChannelHeader_ch[channel_index], + SPI_AIN_customChannelHeader_MAXLENGTH); + cmdLine.serial().printf("\r\n LS%d%c header=%s", cx, cmdLine[3], SPI_AIN_customChannelHeader_ch[cx]); + } + } + } + else + { + cmdLine.serial().printf("\r\n LS%c%c -- single channel", cmdLine[2], cmdLine[3]); + } + } +#endif // HAS_SPI_AIN_customChannelHeader // test cmdLine[3] to determine action // Platform_Enable_ch[channel_index] = Platform_AIN_xxxxx; switch (cmdLine[3]) @@ -7901,6 +8547,58 @@ SPI_AIN_Enable_ch[channel_index] = SPI_AIN_Enable_Volt; break; // +#if SPI_AIN_MATH +// MAX40108 Datalog Math #362 -- menu LS_M_ SPI_AIN Math channels configuration SPI_AIN_MATH + case 'M': case 'm': + switch (cmdLine[4]) + { + case 'D': case 'd': + SPI_AIN_Enable_Math_ch[channel_index] = Platform_AIN_Disable; + break; + case 'L': case 'l': + SPI_AIN_Enable_Math_ch[channel_index] = Platform_AIN_Enable_LSB; + break; + case 'V': case 'v': + SPI_AIN_Enable_Math_ch[channel_index] = Platform_AIN_Enable_Volt; + break; + default: + SPI_AIN_Enable_ch[channel_index] = Platform_AIN_Enable_Math_Volt; + break; + } +// +// MAX40108 Datalog Math #362 -- menu LS_M_ parse mul=? update SPI_AIN_MathGainMulA[ch] SPI_AIN_MATH + cmdLine.parse_double("mul", SPI_AIN_MathGainMulA[channel_index]); +// +// MAX40108 Datalog Math #362 -- menu LS_M_ parse div=? update SPI_AIN_MathGainDivA[ch] SPI_AIN_MATH + cmdLine.parse_double("div", SPI_AIN_MathGainDivA[channel_index]); +// +// MAX40108 Datalog Math #362 -- menu LS_M_ parse unit=nA update SPI_AIN_MathUnitString[ch] SPI_AIN_MATH + // cmdLine.parse_key("unit", SPI_AIN_MathUnitString[channel_index]); +// WIP Editable customChannelHeader strings #363 - LS_M unit= -- update SPI_AIN_MathUnitString + if (cmdLine.parse_and_remove_key("unit", + SPI_AIN_MathUnitString[channel_index], + SPI_AIN_MathUnitString_MAXLENGTH)) + { + // SPI_AIN_MathUnitString[channel_index] was updated + } +// +// MAX40108 Datalog Math #362 -- menu LS_M_ parse o=? update SPI_AIN_MathOffsetA[ch] SPI_AIN_MATH +// parse o=? last, otherwise can't have unit string with letter "o" in it due to conflict... + cmdLine.parse_double("o", SPI_AIN_MathOffsetA[channel_index]); +// +// MAX40108 Datalog Math #362 -- menu LS_M_ always print the values of o=? mul=? div=? unit=nA SPI_AIN_MATH + cmdLine.serial().printf("\r\n", channel_index); + // if (cmdLine[2] == '-' /* all channels */) { + cmdLine.serial().printf("LS%dM", channel_index); + // } + cmdLine.serial().printf(" o=%6.6f", SPI_AIN_MathOffsetA[channel_index]); + cmdLine.serial().printf(" mul=%6.6f", SPI_AIN_MathGainMulA[channel_index]); + cmdLine.serial().printf(" div=%6.6f", SPI_AIN_MathGainDivA[channel_index]); + cmdLine.serial().printf(" unit=%s", SPI_AIN_MathUnitString[channel_index]); +// + break; +// MAX40108 Datalog Math #362 -- menu LS_M_ SPI_AIN Math channels configuration SPI_AIN_MATH +#endif // SPI_AIN_MATH // // TODO: MAX11410 verb for configuring SPI_AIN_Cfg_v_ctrl_ch[channel_index] case 'C': case 'c': @@ -7974,6 +8672,36 @@ ) { // it's me +#if HAS_Platform_AIN_customChannelHeader +// WIP Editable customChannelHeader strings #363 - LA__ header= -- update Platform_AIN_customChannelHeader_ch + // menu LA__ header=xyzzy -- custom channel header + if (cmdLine.parse_and_remove_key("header", + Platform_AIN_customChannelHeader_ch[channel_index], + Platform_AIN_customChannelHeader_MAXLENGTH)) + { + cmdLine.serial().printf("\r\n LA%d%c header=%s", channel_index, cmdLine[3], Platform_AIN_customChannelHeader_ch[channel_index]); + // Platform_AIN_customChannelHeader_ch[channel_index] was updated + if (cmdLine[2] == '-' /* all channels */) + { // LA-_ header= -- all channels custom header + cmdLine.serial().printf("\r\n LA%c%c -- all channels", cmdLine[2], cmdLine[3]); + for (int cx = 0; cx < NUM_PLATFORM_ANALOG_IN_CHANNELS; cx++) + { + if (cx != channel_index) + { + // strncpy(char* dst, const char* src, size_t n) + strncpy(Platform_AIN_customChannelHeader_ch[cx], + Platform_AIN_customChannelHeader_ch[channel_index], + Platform_AIN_customChannelHeader_MAXLENGTH); + cmdLine.serial().printf("\r\n LA%d%c header=%s", cx, cmdLine[3], Platform_AIN_customChannelHeader_ch[cx]); + } + } + } + else + { + cmdLine.serial().printf("\r\n LA%c%c -- single channel", cmdLine[2], cmdLine[3]); + } + } +#endif // HAS_Platform_AIN_customChannelHeader // test cmdLine[3] to determine action // Platform_Enable_ch[channel_index] = Platform_AIN_xxxxx; switch (cmdLine[3]) @@ -7991,6 +8719,65 @@ Platform_Enable_ch[channel_index] = Platform_AIN_Enable_Volt; break; #endif // LOG_PLATFORM_ANALOG_IN_VOLTS +#if PLATFORM_AIN_MATH +// MAX40108 Datalog Math #362 -- menu LA_M_ Platform_AIN Math channels configuration PLATFORM_AIN_MATH + case 'M': case 'm': + switch (cmdLine[4]) + { + case 'D': case 'd': + Platform_Enable_Math_ch[channel_index] = Platform_AIN_Disable; + break; +#if LOG_PLATFORM_ANALOG_IN_LSB + case 'L': case 'l': + Platform_Enable_Math_ch[channel_index] = Platform_AIN_Enable_LSB; + break; +#endif // LOG_PLATFORM_ANALOG_IN_LSB +#if LOG_PLATFORM_ANALOG_IN_VOLTS + case 'V': case 'v': + Platform_Enable_Math_ch[channel_index] = Platform_AIN_Enable_Volt; + break; +#endif // LOG_PLATFORM_ANALOG_IN_VOLTS + default: + Platform_Enable_ch[channel_index] = Platform_AIN_Enable_Math_Volt; + break; + } +// +// MAX40108 Datalog Math #362 -- menu LA_M_ parse mul=? update Platform_MathGainMulA[ch] PLATFORM_AIN_MATH + cmdLine.parse_double("mul", Platform_MathGainMulA[channel_index]); +// +// MAX40108 Datalog Math #362 -- menu LA_M_ parse div=? update Platform_MathGainDivA[ch] PLATFORM_AIN_MATH + cmdLine.parse_double("div", Platform_MathGainDivA[channel_index]); +// +// MAX40108 Datalog Math #362 -- menu LA_M_ parse unit=nA update Platform_MathUnitString[ch] PLATFORM_AIN_MATH +// WIP Editable customChannelHeader strings #363 - LA_M unit= -- update Platform_MathUnitString + if (cmdLine.parse_and_remove_key("unit", + Platform_MathUnitString[channel_index], + Platform_MathUnitString_MAXLENGTH)) + { + // Platform_MathUnitString[channel_index] was updated + } +// +// MAX40108 Datalog Math #362 -- menu LA_M_ parse o=? update Platform_MathOffsetA[ch] PLATFORM_AIN_MATH +// parse o=? last, otherwise can't have unit string with letter "o" in it due to conflict... + cmdLine.parse_double("o", Platform_MathOffsetA[channel_index]); +// +// MAX40108 Datalog Math #362 -- menu LA_M_ always print the values of o=? mul=? div=? unit=nA PLATFORM_AIN_MATH + cmdLine.serial().printf("\r\n"); + // if (cmdLine[2] == '-' /* all channels */) { + cmdLine.serial().printf("LA%dM", channel_index); + // } + cmdLine.serial().printf(" o=%6.6f", Platform_MathOffsetA[channel_index]); + cmdLine.serial().printf(" mul=%6.6f", Platform_MathGainMulA[channel_index]); + cmdLine.serial().printf(" div=%6.6f", Platform_MathGainDivA[channel_index]); + cmdLine.serial().printf(" unit=%s", Platform_MathUnitString[channel_index]); +#if HAS_Platform_AIN_customChannelHeader + cmdLine.serial().printf(" header=%s", Platform_AIN_customChannelHeader_ch[channel_index]); +#endif // HAS_Platform_AIN_customChannelHeader +// + break; +// MAX40108 Datalog Math #362 -- menu LA_M_ Platform_AIN Math channels configuration PLATFORM_AIN_MATH +#endif // PLATFORM_AIN_MATH +// } } // end if cmdLine[2] channel_index } // end for channel_index @@ -8084,6 +8871,15 @@ cmdLine.serial().printf("\r\n LS3V -- Datalog SPI ADC channel channel 3 Volt"); cmdLine.serial().printf("\r\n LS4L -- Datalog SPI ADC channel channel 4 LSB"); // +// MAX40108 Datalog Math #362 -- menu L expanded help menu: LS_CD ; LS_CL ; LS_CV o=? mul=? div=? unit=nA SPI_AIN_MATH +#if SPI_AIN_MATH + cmdLine.serial().printf("\r\n LS2M o=? mul=? div=? unit=nA -- math (AIN2V+o)*mul/div"); +#endif // SPI_AIN_MATH +// WIP Editable customChannelHeader strings #363 -- menu L expanded help menu LA__ header=xyzzy +#if HAS_SPI_AIN_customChannelHeader // Optional custom per-channel header suffix + cmdLine.serial().printf("\r\n LS- header=xyzzy -- custom per-channel header suffix"); +#endif // HAS_SPI_AIN_customChannelHeader // Optional custom per-channel header suffix +// // MAX11410 verb for configuring SPI_AIN_Cfg_v_filter_ch[channel_index] // cmdLine.serial().print(F("\r\n LS-CF34 -- Datalog SPI ADC channel channel 5 v_filter 0x34")); cmdLine.serial().printf("\r\n LS-CF34 -- Datalog SPI ADC channel '-'(all) v_filter 0x34"); @@ -8104,6 +8900,7 @@ // cmdLine.serial().print(F("\r\n LS5CP00 -- Datalog SPI ADC channel channel 5 v_pga 0x00")); cmdLine.serial().printf("\r\n LS-CP00 -- Datalog SPI ADC channel '-'(all) v_pga 0x00"); // +// #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC // #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs @@ -8124,6 +8921,15 @@ #if LOG_PLATFORM_ANALOG_IN_LSB cmdLine.serial().printf("\r\n LA4L -- Datalog Platform-AIN channel 4 LSB"); #endif // LOG_PLATFORM_ANALOG_IN_LSB +// MAX40108 Datalog Math #362 -- menu L expanded help menu: LA_CD ; LA_CL ; LA_CV o=? mul=? div=? unit=nA PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH + cmdLine.serial().printf("\r\n LA2M o=? mul=? div=? unit=nA -- math (AIN2V+o)*mul/div"); +#endif // PLATFORM_AIN_MATH +// WIP Editable customChannelHeader strings #363 -- menu L expanded help menu LA__ header=xyzzy +#if HAS_Platform_AIN_customChannelHeader // Optional custom per-channel header suffix + cmdLine.serial().printf("\r\n LA- header=xyzzy -- custom per-channel header suffix"); +#endif // HAS_Platform_AIN_customChannelHeader // Optional custom per-channel header suffix + // #endif // defined(LOG_PLATFORM_AIN) #endif // USE_DATALOGGER_TRIGGER support Datalog trigger # if HAS_AUX_SERIAL @@ -8245,6 +9051,7 @@ } #if HAS_SPI_AIN_customChannelHeader // Optional custom per-channel header suffix // Optional custom per-channel header suffix + // WIP Editable customChannelHeader strings #363 - Datalogger_PrintHeader SPI_AIN_customChannelHeader_ch if (SPI_AIN_customChannelHeader_ch[channel_index] && SPI_AIN_customChannelHeader_ch[channel_index][0]) { // not a null pointer, and not an empty string cmdLine.serial().printf("_%s", SPI_AIN_customChannelHeader_ch[channel_index]); @@ -8273,6 +9080,16 @@ cmdLine_DAPLINKserial.serial().printf(",\"PART_ID\""); # endif // HAS_DAPLINK_SERIAL #endif // VERIFY_PART_ID_IN_LOOP +// MAX40108 Datalog Math #362 -- Datalogger_PrintHeader() SPI_AIN_MATH +#if SPI_AIN_MATH + // SPI_AIN_Enable_Math_ch[] option to report math + // based on g_MAX11410_device.AINcode[] or SPI_AIN_Voltage[] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] +#endif // SPI_AIN_MATH +// #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs for (int channel_index = 0; channel_index < NUM_PLATFORM_ANALOG_IN_CHANNELS; channel_index++) { @@ -8294,8 +9111,53 @@ // _V column header suffix cmdLine.serial().printf("_V"); } +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_LSB - display math result instead of LSB in channel# position +#if PLATFORM_AIN_MATH + if (Platform_Enable_ch[channel_index] == Platform_AIN_Enable_Math_LSB) { + // _LSB column header suffix + cmdLine.serial().printf("_LSB"); + if (Platform_MathOffsetA[channel_index] > 0) { + cmdLine.serial().printf("-%4.2f", Platform_MathOffsetA[channel_index]); + } + else if (Platform_MathOffsetA[channel_index] < 0) { + cmdLine.serial().printf("+%4.2f", -Platform_MathOffsetA[channel_index]); + } + if (Platform_MathGainMulA[channel_index] != 1.0) { + cmdLine.serial().printf("*%4.2f", Platform_MathGainMulA[channel_index]); + } + if (Platform_MathGainDivA[channel_index] != 1.0) { + cmdLine.serial().printf("/%4.2f", Platform_MathGainDivA[channel_index]); + } + if (Platform_MathUnitString[channel_index][0] != '\0') { + cmdLine.serial().printf("_%s", Platform_MathUnitString[channel_index]); + } + } +#endif // PLATFORM_AIN_MATH +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_Volt - display math result instead of volts in channel# position +#if PLATFORM_AIN_MATH + if (Platform_Enable_ch[channel_index] == Platform_AIN_Enable_Math_Volt) { + // _V column header suffix + cmdLine.serial().printf("_V"); + if (Platform_MathOffsetA[channel_index] > 0) { + cmdLine.serial().printf("-%4.2f", Platform_MathOffsetA[channel_index]); + } + else if (Platform_MathOffsetA[channel_index] < 0) { + cmdLine.serial().printf("+%4.2f", -Platform_MathOffsetA[channel_index]); + } + if (Platform_MathGainMulA[channel_index] != 1.0) { + cmdLine.serial().printf("*%4.2f", Platform_MathGainMulA[channel_index]); + } + if (Platform_MathGainDivA[channel_index] != 1.0) { + cmdLine.serial().printf("/%4.2f", Platform_MathGainDivA[channel_index]); + } + if (Platform_MathUnitString[channel_index][0] != '\0') { + cmdLine.serial().printf("_%s", Platform_MathUnitString[channel_index]); + } + } +#endif // PLATFORM_AIN_MATH #if HAS_Platform_AIN_customChannelHeader // Optional custom per-channel header suffix // Optional custom per-channel header suffix + // WIP Editable customChannelHeader strings #363 - Datalogger_PrintHeader Platform_AIN_customChannelHeader_ch if (Platform_AIN_customChannelHeader_ch[channel_index] && Platform_AIN_customChannelHeader_ch[channel_index][0]) { // not a null pointer, and not an empty string cmdLine.serial().printf("_%s", Platform_AIN_customChannelHeader_ch[channel_index]); @@ -8317,6 +9179,77 @@ # endif // HAS_DAPLINK_SERIAL } #endif // defined(LOG_PLATFORM_AIN) +// MAX40108 Datalog Math #362 -- Datalogger_PrintHeader() PLATFORM_AIN_MATH +#if PLATFORM_AIN_MATH + // Platform_Enable_Math_ch[] option to report math + // based on Platform_LSB[] or Platform_Voltage[] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + for (int channel_index = 0; channel_index < NUM_PLATFORM_ANALOG_IN_CHANNELS; channel_index++) { + if (Platform_Enable_Math_ch[channel_index] == Platform_AIN_Disable) { + continue; + } + // comma between fields + if (field_index > 0) { + cmdLine.serial().printf(","); + } + field_index++; + // AIN_index column header prefix + cmdLine.serial().printf("\"MATH:"); + // if (Platform_MathOffsetA[channel_index] != 0) { + // cmdLine.serial().printf(""); + // } + cmdLine.serial().printf("A%d", channel_index); + if (Platform_Enable_Math_ch[channel_index] == Platform_AIN_Enable_LSB) { + // _LSB column header suffix + cmdLine.serial().printf("_LSB"); + } + if (Platform_Enable_Math_ch[channel_index] == Platform_AIN_Enable_Volt) { + // _V column header suffix + cmdLine.serial().printf("_V"); + } + if (Platform_MathOffsetA[channel_index] > 0) { + cmdLine.serial().printf("-%4.2f", Platform_MathOffsetA[channel_index]); + } + if (Platform_MathOffsetA[channel_index] < 0) { + cmdLine.serial().printf("+%4.2f", -Platform_MathOffsetA[channel_index]); + } + if (Platform_MathGainMulA[channel_index] != 1.0) { + cmdLine.serial().printf("*%4.2f", Platform_MathGainMulA[channel_index]); + } + if (Platform_MathGainDivA[channel_index] != 1.0) { + cmdLine.serial().printf("/%4.2f", Platform_MathGainDivA[channel_index]); + } + if (Platform_MathUnitString[channel_index][0] != '\0') { + cmdLine.serial().printf("_%s", Platform_MathUnitString[channel_index]); + } +#if HAS_Platform_AIN_customChannelHeader // Optional custom per-channel header suffix + // Optional custom per-channel header suffix + // WIP Editable customChannelHeader strings #363 - Datalogger_PrintHeader Platform_AIN_customChannelHeader_ch + if (Platform_AIN_customChannelHeader_ch[channel_index] && Platform_AIN_customChannelHeader_ch[channel_index][0]) { + // not a null pointer, and not an empty string + cmdLine.serial().printf("_%s", Platform_AIN_customChannelHeader_ch[channel_index]); +# if HAS_DAPLINK_SERIAL + cmdLine_DAPLINKserial.serial().printf("_%s", Platform_AIN_customChannelHeader_ch[channel_index]); +# endif // HAS_DAPLINK_SERIAL + } else { + // no custom channel name for this channel + //~ cmdLine.serial().printf("~"); +# if HAS_DAPLINK_SERIAL + //~ cmdLine_DAPLINKserial.serial().printf("~"); +# endif // HAS_DAPLINK_SERIAL + } +#endif // HAS_Platform_AIN_customChannelHeader + // close quote + cmdLine.serial().printf("\""); +# if HAS_DAPLINK_SERIAL + cmdLine_DAPLINKserial.serial().printf("\""); +# endif // HAS_DAPLINK_SERIAL + } +#endif // PLATFORM_AIN_MATH +// #if USE_DATALOGGER_REMARK_FIELD // Datalogger_PrintRow() print gstrRemarkText field from recent #remark -- in Datalogger_PrintHeader cmdLine.serial().printf(",\"%s\"", gstrRemarkHeader); @@ -8508,7 +9441,96 @@ // Platform_Enable_ch[] // Platform_AIN_customChannelHeader_ch[] // Platform_Voltage[] - // TODO: selected Datalogger_action_table[i].condition_threshold + // selected Datalogger_action_table[i].condition_threshold + // WIP Datalog Math -- if channel has its math enabled, compare with the math-adjusted version. Keep it simple. #362 +#if SPI_AIN_MATH + // WIP Datalog Math -- if channel has its math enabled, compare with the math-adjusted version. Keep it simple. #362 + // SPI_AIN_Voltage_test default value SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] + double SPI_AIN_Voltage_test = SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel]; + // SPI_AIN_Enable_Math_ch[] option to use math, update test_threshold + // based on g_MAX11410_device.AINcode[] or SPI_AIN_Voltage[] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + if (SPI_AIN_Enable_Math_ch[Datalogger_action_table[i].condition_channel] == Platform_AIN_Enable_LSB) { + // Perform calculations based on g_MAX11410_device.AINcode[Datalogger_action_table[i].condition_channel] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + SPI_AIN_Voltage_test = (Platform_LSB[Datalogger_action_table[i].condition_channel] - SPI_AIN_MathOffsetA[Datalogger_action_table[i].condition_channel]); + SPI_AIN_Voltage_test = SPI_AIN_Voltage_test * SPI_AIN_MathGainMulA[Datalogger_action_table[i].condition_channel]; + if (SPI_AIN_MathGainDivA[Datalogger_action_table[i].condition_channel] != 0) { + SPI_AIN_Voltage_test = SPI_AIN_Voltage_test / SPI_AIN_MathGainDivA[Datalogger_action_table[i].condition_channel]; + } + // + cmdLine.serial().printf("%d", SPI_AIN_Voltage_test); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", SPI_AIN_MathUnitString[Datalogger_action_table[i].condition_channel]); + } + if (SPI_AIN_Enable_Math_ch[Datalogger_action_table[i].condition_channel] == Platform_AIN_Enable_Volt) { + // Perform calculations based on SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + SPI_AIN_Voltage_test = (SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] - SPI_AIN_MathOffsetA[Datalogger_action_table[i].condition_channel]); + SPI_AIN_Voltage_test = SPI_AIN_Voltage_test * SPI_AIN_MathGainMulA[Datalogger_action_table[i].condition_channel]; + if (SPI_AIN_MathGainDivA[Datalogger_action_table[i].condition_channel] != 0) { + SPI_AIN_Voltage_test = SPI_AIN_Voltage_test / SPI_AIN_MathGainDivA[Datalogger_action_table[i].condition_channel]; + } + // + cmdLine.serial().printf("%6.6f", SPI_AIN_Voltage_test); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", SPI_AIN_MathUnitString[Datalogger_action_table[i].condition_channel]); + } +#endif // SPI_AIN_MATH +#if PLATFORM_AIN_MATH + // WIP Datalog Math -- if channel has its math enabled, compare with the math-adjusted version. Keep it simple. #362 + // Platform_Voltage_test default value Platform_Voltage[Datalogger_action_table[i].condition_channel] + double Platform_Voltage_test = Platform_Voltage[Datalogger_action_table[i].condition_channel]; + // Platform_Enable_Math_ch[] option to use math, update test_threshold + // based on Platform_LSB[] or Platform_Voltage[] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + if (Platform_Enable_Math_ch[Datalogger_action_table[i].condition_channel] == Platform_AIN_Enable_LSB) { +#if LOG_PLATFORM_ANALOG_IN_LSB + // Perform calculations based on Platform_LSB[Datalogger_action_table[i].condition_channel] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + Platform_Voltage_test = (Platform_LSB[Datalogger_action_table[i].condition_channel] - Platform_MathOffsetA[Datalogger_action_table[i].condition_channel]); + Platform_Voltage_test = Platform_Voltage_test * Platform_MathGainMulA[Datalogger_action_table[i].condition_channel]; + if (Platform_MathGainDivA[Datalogger_action_table[i].condition_channel] != 0) { + Platform_Voltage_test = Platform_Voltage_test / Platform_MathGainDivA[Datalogger_action_table[i].condition_channel]; + } + // + // cmdLine.serial().printf("%u", Platform_Voltage_test); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", Platform_MathUnitString[Datalogger_action_table[i].condition_channel]); +#endif + } + if (Platform_Enable_Math_ch[Datalogger_action_table[i].condition_channel] == Platform_AIN_Enable_Volt) { + // Perform calculations based on Platform_Voltage[Datalogger_action_table[i].condition_channel] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + Platform_Voltage_test = (Platform_Voltage[Datalogger_action_table[i].condition_channel] - Platform_MathOffsetA[Datalogger_action_table[i].condition_channel]); + Platform_Voltage_test = Platform_Voltage_test * Platform_MathGainMulA[Datalogger_action_table[i].condition_channel]; + if (Platform_MathGainDivA[Datalogger_action_table[i].condition_channel] != 0) { + Platform_Voltage_test = Platform_Voltage_test / Platform_MathGainDivA[Datalogger_action_table[i].condition_channel]; + } + // + // cmdLine.serial().printf("%6.6f", Platform_Voltage_test); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", Platform_MathUnitString[Datalogger_action_table[i].condition_channel]); + } +#endif // PLATFORM_AIN_MATH switch(Datalogger_action_table[i].condition) { case condition_always: @@ -8517,7 +9539,7 @@ case condition_if_An_gt_threshold: //~ cmdLine.serial().printf(" if A%d > %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs - if (!(Platform_Voltage[Datalogger_action_table[i].condition_channel] > Datalogger_action_table[i].condition_threshold)) { + if (!(Platform_Voltage_test > Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(LOG_PLATFORM_AIN) @@ -8525,7 +9547,7 @@ case condition_if_An_lt_threshold: //~ cmdLine.serial().printf(" if A%d < %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs - if (!(Platform_Voltage[Datalogger_action_table[i].condition_channel] < Datalogger_action_table[i].condition_threshold)) { + if (!(Platform_Voltage_test < Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(LOG_PLATFORM_AIN) @@ -8533,7 +9555,7 @@ case condition_if_An_eq_threshold: //~ cmdLine.serial().printf(" if A%d == %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs - if (!(Platform_Voltage[Datalogger_action_table[i].condition_channel] == Datalogger_action_table[i].condition_threshold)) { + if (!(Platform_Voltage_test == Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(LOG_PLATFORM_AIN) @@ -8541,7 +9563,7 @@ case condition_if_An_ge_threshold: //~ cmdLine.serial().printf(" if A%d >= %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs - if (!(Platform_Voltage[Datalogger_action_table[i].condition_channel] >= Datalogger_action_table[i].condition_threshold)) { + if (!(Platform_Voltage_test >= Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(LOG_PLATFORM_AIN) @@ -8549,7 +9571,7 @@ case condition_if_An_le_threshold: //~ cmdLine.serial().printf(" if A%d <= %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs - if (!(Platform_Voltage[Datalogger_action_table[i].condition_channel] <= Datalogger_action_table[i].condition_threshold)) { + if (!(Platform_Voltage_test <= Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(LOG_PLATFORM_AIN) @@ -8558,14 +9580,14 @@ //~ cmdLine.serial().printf(" if A%d != %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs #endif // defined(LOG_PLATFORM_AIN) - if (!(Platform_Voltage[Datalogger_action_table[i].condition_channel] != Datalogger_action_table[i].condition_threshold)) { + if (!(Platform_Voltage_test != Datalogger_action_table[i].condition_threshold)) { continue; } break; case condition_if_AINn_gt_threshold: //~ cmdLine.serial().printf(" if AIN%d > %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(SPI_ADC_DeviceName) // SPI connected ADC - if (!(SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] > Datalogger_action_table[i].condition_threshold)) { + if (!(SPI_AIN_Voltage_test > Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8573,7 +9595,7 @@ case condition_if_AINn_lt_threshold: //~ cmdLine.serial().printf(" if AIN%d < %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(SPI_ADC_DeviceName) // SPI connected ADC - if (!(SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] < Datalogger_action_table[i].condition_threshold)) { + if (!(SPI_AIN_Voltage_test < Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8581,7 +9603,7 @@ case condition_if_AINn_eq_threshold: //~ cmdLine.serial().printf(" if AIN%d == %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(SPI_ADC_DeviceName) // SPI connected ADC - if (!(SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] == Datalogger_action_table[i].condition_threshold)) { + if (!(SPI_AIN_Voltage_test == Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8589,7 +9611,7 @@ case condition_if_AINn_ge_threshold: //~ cmdLine.serial().printf(" if AIN%d >= %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(SPI_ADC_DeviceName) // SPI connected ADC - if (!(SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] >= Datalogger_action_table[i].condition_threshold)) { + if (!(SPI_AIN_Voltage_test >= Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8597,7 +9619,7 @@ case condition_if_AINn_le_threshold: //~ cmdLine.serial().printf(" if AIN%d <= %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(SPI_ADC_DeviceName) // SPI connected ADC - if (!(SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] <= Datalogger_action_table[i].condition_threshold)) { + if (!(SPI_AIN_Voltage_test <= Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8605,7 +9627,7 @@ case condition_if_AINn_ne_threshold: //~ cmdLine.serial().printf(" if AIN%d != %f", Datalogger_action_table[i].condition_channel, Datalogger_action_table[i].condition_threshold); #if defined(SPI_ADC_DeviceName) // SPI connected ADC - if (!(SPI_AIN_Voltage[Datalogger_action_table[i].condition_channel] != Datalogger_action_table[i].condition_threshold)) { + if (!(SPI_AIN_Voltage_test != Datalogger_action_table[i].condition_threshold)) { continue; } #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8771,6 +9793,44 @@ static char strOutLineBuffer[16]; cmdLine.serial().printf("%6.6f", SPI_AIN_Voltage[channel_index]); } +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_LSB - display math result instead of LSB in channel# position +#if SPI_AIN_MATH + if (SPI_AIN_Enable_ch[channel_index] == Platform_AIN_Enable_Math_LSB) { + // Perform calculations based on g_MAX11410_device.AINcode[channel_index] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (Platform_LSB[channel_index] - SPI_AIN_MathOffsetA[channel_index]); + x = x * SPI_AIN_MathGainMulA[channel_index]; + if (SPI_AIN_MathGainDivA[channel_index] != 0) { + x = x / SPI_AIN_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%d", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", SPI_AIN_MathUnitString[channel_index]); + } +#endif // SPI_AIN_MATH +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_Volt - display math result instead of volts in channel# position +#if SPI_AIN_MATH + if (SPI_AIN_Enable_ch[channel_index] == Platform_AIN_Enable_Math_Volt) { + // Perform calculations based on SPI_AIN_Voltage[channel_index] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (SPI_AIN_Voltage[channel_index] - SPI_AIN_MathOffsetA[channel_index]); + x = x * SPI_AIN_MathGainMulA[channel_index]; + if (SPI_AIN_MathGainDivA[channel_index] != 0) { + x = x / SPI_AIN_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%6.6f", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", SPI_AIN_MathUnitString[channel_index]); + } +#endif // SPI_AIN_MATH } #if VERIFY_PART_ID_IN_LOOP // PART_ID field: Device ID Validation @@ -8788,6 +9848,58 @@ cmdLine.serial().printf(",\"OK\""); } #endif // VERIFY_PART_ID_IN_LOOP +// MAX40108 Datalog Math #362 -- Datalogger_PrintRow() SPI_AIN_MATH + // SPI_AIN_Enable_Math_ch[] option to report calculations + // based on g_MAX11410_device.AINcode[] or SPI_AIN_Voltage[] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] +#if SPI_AIN_MATH + for (int channel_index = 0; channel_index < NUM_DUT_ANALOG_IN_CHANNELS; channel_index++) { + if (SPI_AIN_Enable_Math_ch[channel_index] == SPI_AIN_Disable) { + continue; + } + // comma between fields + if (field_index > 0) { + cmdLine.serial().printf(","); + } + field_index++; + if (SPI_AIN_Enable_Math_ch[channel_index] == Platform_AIN_Enable_LSB) { + // Perform calculations based on g_MAX11410_device.AINcode[channel_index] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (Platform_LSB[channel_index] - SPI_AIN_MathOffsetA[channel_index]); + x = x * SPI_AIN_MathGainMulA[channel_index]; + if (SPI_AIN_MathGainDivA[channel_index] != 0) { + x = x / SPI_AIN_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%d", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", SPI_AIN_MathUnitString[channel_index]); + } + if (SPI_AIN_Enable_Math_ch[channel_index] == Platform_AIN_Enable_Volt) { + // Perform calculations based on SPI_AIN_Voltage[channel_index] + // apply offset SPI_AIN_MathOffsetA[] + // apply gain SPI_AIN_MathGainMulA[] + // apply 1/gain SPI_AIN_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (SPI_AIN_Voltage[channel_index] - SPI_AIN_MathOffsetA[channel_index]); + x = x * SPI_AIN_MathGainMulA[channel_index]; + if (SPI_AIN_MathGainDivA[channel_index] != 0) { + x = x / SPI_AIN_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%6.6f", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", SPI_AIN_MathUnitString[channel_index]); + } + } +#endif // SPI_AIN_MATH +// #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs for (int channel_index = 0; channel_index < NUM_PLATFORM_ANALOG_IN_CHANNELS; channel_index++) { @@ -8809,9 +9921,109 @@ // Datalog Volts omit V suffix from numbers #275 // because Excel graphs can't handle numbers that have a suffix. cmdLine.serial().printf("%6.6f", Platform_Voltage[channel_index]); -#endif + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("V"); +#endif + } +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_LSB - display math result instead of LSB in channel# position + if (Platform_Enable_ch[channel_index] == Platform_AIN_Enable_Math_LSB) { +#if PLATFORM_AIN_MATH +#if LOG_PLATFORM_ANALOG_IN_VOLTS +#if LOG_PLATFORM_ANALOG_IN_LSB + // Perform calculations based on Platform_LSB[channel_index] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (Platform_LSB[channel_index] - Platform_MathOffsetA[channel_index]); + x = x * Platform_MathGainMulA[channel_index]; + if (Platform_MathGainDivA[channel_index] != 0) { + x = x / Platform_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%u", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", Platform_MathUnitString[channel_index]); +#endif +#endif +#endif // PLATFORM_AIN_MATH + } +// MAX40108 Datalog Math #362 -- Platform_AIN_Enable_Math_Volt - display math result instead of volts in channel# position + if (Platform_Enable_ch[channel_index] == Platform_AIN_Enable_Math_Volt) { +#if PLATFORM_AIN_MATH +#if LOG_PLATFORM_ANALOG_IN_VOLTS + // Perform calculations based on Platform_Voltage[channel_index] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (Platform_Voltage[channel_index] - Platform_MathOffsetA[channel_index]); + x = x * Platform_MathGainMulA[channel_index]; + if (Platform_MathGainDivA[channel_index] != 0) { + x = x / Platform_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%6.6f", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", Platform_MathUnitString[channel_index]); +#endif +#endif // PLATFORM_AIN_MATH } } +// MAX40108 Datalog Math #362 -- Datalogger_PrintRow() PLATFORM_AIN_MATH + // Platform_Enable_Math_ch[] option to report calculations + // based on Platform_LSB[] or Platform_Voltage[] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] +#if PLATFORM_AIN_MATH + for (int channel_index = 0; channel_index < NUM_PLATFORM_ANALOG_IN_CHANNELS; channel_index++) { + if (Platform_Enable_Math_ch[channel_index] == Platform_AIN_Disable) { + continue; + } + // comma between fields + if (field_index > 0) { + cmdLine.serial().printf(","); + } + field_index++; + if (Platform_Enable_Math_ch[channel_index] == Platform_AIN_Enable_LSB) { +#if LOG_PLATFORM_ANALOG_IN_LSB + // Perform calculations based on Platform_LSB[channel_index] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (Platform_LSB[channel_index] - Platform_MathOffsetA[channel_index]); + x = x * Platform_MathGainMulA[channel_index]; + if (Platform_MathGainDivA[channel_index] != 0) { + x = x / Platform_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%u", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", Platform_MathUnitString[channel_index]); +#endif + } + if (Platform_Enable_Math_ch[channel_index] == Platform_AIN_Enable_Volt) { + // Perform calculations based on Platform_Voltage[channel_index] + // apply offset Platform_MathOffsetA[] + // apply gain Platform_MathGainMulA[] + // apply 1/gain Platform_MathGainDivA[] + // display unit string Platform_MathUnitString[] + double x = (Platform_Voltage[channel_index] - Platform_MathOffsetA[channel_index]); + x = x * Platform_MathGainMulA[channel_index]; + if (Platform_MathGainDivA[channel_index] != 0) { + x = x / Platform_MathGainDivA[channel_index]; + } + // + cmdLine.serial().printf("%6.6f", x); + // omit units from datalog numbers, confuses ms-excel #275 + // cmdLine.serial().printf("%s", Platform_MathUnitString[channel_index]); + } + } +#endif // PLATFORM_AIN_MATH +// #endif // defined(LOG_PLATFORM_AIN) if (need_reinit) { #if defined(SPI_ADC_DeviceName) // SPI connected ADC @@ -8914,6 +10126,17 @@ // CODE GENERATOR: get spi properties from device #if defined(SPI_ADC_DeviceName) // SPI connected ADC +// MAX40108 Datalog Math #362 -- initialize enable/offset/gain arrays SPI_AIN_MATH +#if SPI_AIN_MATH + for (int ch = 0; ch < NUM_PLATFORM_ANALOG_IN_CHANNELS; ch++) + { + SPI_AIN_Enable_Math_ch[ch] = Platform_AIN_Disable; + SPI_AIN_MathOffsetA[ch] = 0.0; + SPI_AIN_MathGainMulA[ch] = 1.0; + SPI_AIN_MathGainDivA[ch] = 1.0; + } +}; +#endif // SPI_AIN_MATH if (g_SPI_SCLK_Hz > g_MAX11410_device.get_spi_frequency()) { // Device limits SPI SCLK frequency g_SPI_SCLK_Hz = g_MAX11410_device.get_spi_frequency();