diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index ba777d5954fe..512148e53881 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2746,6 +2746,12 @@ // //#define DWIN_CREALITY_LCD +// +// MarlinUI for Creality's DWIN display (and others) +// +//#define DWIN_MARLINUI_PORTRAIT +//#define DWIN_MARLINUI_LANDSCAPE + // // Touch Screen Settings // diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 8bf22be71ded..dab049223774 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1306,7 +1306,7 @@ // LCD Print Progress options #if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY) - #if ANY(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) + #if ANY(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL, IS_DWIN_MARLINUI) //#define SHOW_REMAINING_TIME // Display estimated time to completion #if ENABLED(SHOW_REMAINING_TIME) //#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation @@ -1586,9 +1586,6 @@ //#define XYZ_NO_FRAME #define XYZ_HOLLOW_FRAME - // Enable to save many cycles by drawing a hollow frame on Menu Screens - #define MENU_HOLLOW_FRAME - // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. //#define USE_BIG_EDIT_FONT @@ -1597,9 +1594,6 @@ // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. //#define USE_SMALL_INFOFONT - // Swap the CW/CCW indicators in the graphics overlay - //#define OVERLAY_GFX_REVERSE - /** * ST7920-based LCDs can emulate a 16 x 4 character display using * the ST7920 character-generator for very fast screen updates. @@ -1652,6 +1646,17 @@ #endif // HAS_MARLINUI_U8GLIB +#if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI + // Show SD percentage next to the progress bar + //#define SHOW_SD_PERCENT + + // Enable to save many cycles by drawing a hollow frame on Menu Screens + #define MENU_HOLLOW_FRAME + + // Swap the CW/CCW indicators in the graphics overlay + //#define OVERLAY_GFX_REVERSE +#endif + // // Additional options for DGUS / DWIN displays // @@ -1717,7 +1722,7 @@ // // Specify additional languages for the UI. Default specified by LCD_LANGUAGE. // -#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE) +#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE, IS_DWIN_MARLINUI) //#define LCD_LANGUAGE_2 fr //#define LCD_LANGUAGE_3 de //#define LCD_LANGUAGE_4 es @@ -4202,4 +4207,4 @@ * Software Reset options */ //#define SOFT_RESET_VIA_SERIAL // 'KILL' and '^X' commands will soft-reset the controller -//#define SOFT_RESET_ON_KILL // Use a digital button to soft-reset the controller after KILL \ No newline at end of file +//#define SOFT_RESET_ON_KILL // Use a digital button to soft-reset the controller after KILL diff --git a/Marlin/Version.h b/Marlin/Version.h index 9713c478801a..21efff8495c6 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -41,7 +41,7 @@ * here we define this default string as the date where the latest release * version was tagged. */ -//#define STRING_DISTRIBUTION_DATE "2021-08-14" +//#define STRING_DISTRIBUTION_DATE "2021-08-21" /** * Defines a generic printer name to be output to the LCD after booting Marlin. diff --git a/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp b/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp index e9e712d5a362..dacf533224fc 100644 --- a/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp +++ b/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp @@ -36,16 +36,6 @@ LCD_CONTROLLER_TypeDef *TFT_FSMC::LCD; void TFT_FSMC::Init() { uint32_t controllerAddress; - - #if PIN_EXISTS(TFT_RESET) - OUT_WRITE(TFT_RESET_PIN, HIGH); - HAL_Delay(100); - #endif - - #if PIN_EXISTS(TFT_BACKLIGHT) - OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); - #endif - FSMC_NORSRAM_TimingTypeDef Timing, ExtTiming; uint32_t NSBank = (uint32_t)pinmap_peripheral(digitalPinToPinName(TFT_CS_PIN), PinMap_FSMC_CS); diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index 2ed585919966..8e84f0b9673d 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -365,33 +365,34 @@ #define BOARD_RUMBA32_V1_0 4201 // RUMBA32 STM32F446VET6 based controller from Aus3D #define BOARD_RUMBA32_V1_1 4202 // RUMBA32 STM32F446VET6 based controller from Aus3D #define BOARD_RUMBA32_MKS 4203 // RUMBA32 STM32F446VET6 based controller from Makerbase -#define BOARD_BLACK_STM32F407VE 4204 // BLACK_STM32F407VE -#define BOARD_BLACK_STM32F407ZE 4205 // BLACK_STM32F407ZE -#define BOARD_STEVAL_3DP001V1 4206 // STEVAL-3DP001V1 3D PRINTER BOARD -#define BOARD_BTT_SKR_PRO_V1_1 4207 // BigTreeTech SKR Pro v1.1 (STM32F407ZGT6) -#define BOARD_BTT_SKR_PRO_V1_2 4208 // BigTreeTech SKR Pro v1.2 (STM32F407ZGT6) -#define BOARD_BTT_BTT002_V1_0 4209 // BigTreeTech BTT002 v1.0 (STM32F407VGT6) -#define BOARD_BTT_E3_RRF 4210 // BigTreeTech E3 RRF (STM32F407VGT6) -#define BOARD_BTT_SKR_V2_0_REV_A 4211 // BigTreeTech SKR v2.0 Rev A (STM32F407VGT6) -#define BOARD_BTT_SKR_V2_0_REV_B 4212 // BigTreeTech SKR v2.0 Rev B (STM32F407VGT6) -#define BOARD_BTT_GTR_V1_0 4213 // BigTreeTech GTR v1.0 (STM32F407IGT) -#define BOARD_BTT_OCTOPUS_V1_0 4214 // BigTreeTech Octopus v1.0 (STM32F446ZET6) -#define BOARD_BTT_OCTOPUS_V1_1 4215 // BigTreeTech Octopus v1.1 (STM32F446ZET6) -#define BOARD_LERDGE_K 4216 // Lerdge K (STM32F407ZG) -#define BOARD_LERDGE_S 4217 // Lerdge S (STM32F407VE) -#define BOARD_LERDGE_X 4218 // Lerdge X (STM32F407VE) -#define BOARD_VAKE403D 4219 // VAkE 403D (STM32F446VET6) -#define BOARD_FYSETC_S6 4220 // FYSETC S6 (STM32F446VET6) -#define BOARD_FYSETC_S6_V2_0 4221 // FYSETC S6 v2.0 (STM32F446VET6) -#define BOARD_FYSETC_SPIDER 4222 // FYSETC Spider (STM32F446VET6) -#define BOARD_FLYF407ZG 4223 // FLYmaker FLYF407ZG (STM32F407ZG) -#define BOARD_MKS_ROBIN2 4224 // MKS_ROBIN2 (STM32F407ZE) -#define BOARD_MKS_ROBIN_PRO_V2 4225 // MKS Robin Pro V2 (STM32F407VE) -#define BOARD_MKS_ROBIN_NANO_V3 4226 // MKS Robin Nano V3 (STM32F407VG) -#define BOARD_MKS_MONSTER8 4227 // MKS Monster8 (STM32F407VGT6) -#define BOARD_ANET_ET4 4228 // ANET ET4 V1.x (STM32F407VGT6) -#define BOARD_ANET_ET4P 4229 // ANET ET4P V1.x (STM32F407VGT6) -#define BOARD_FYSETC_CHEETAH_V20 4230 // FYSETC Cheetah V2.0 +#define BOARD_RUMBA32_BTT 4204 // RUMBA32 STM32F446VET6 based controller from BIGTREETECH +#define BOARD_BLACK_STM32F407VE 4205 // BLACK_STM32F407VE +#define BOARD_BLACK_STM32F407ZE 4206 // BLACK_STM32F407ZE +#define BOARD_STEVAL_3DP001V1 4207 // STEVAL-3DP001V1 3D PRINTER BOARD +#define BOARD_BTT_SKR_PRO_V1_1 4208 // BigTreeTech SKR Pro v1.1 (STM32F407ZGT6) +#define BOARD_BTT_SKR_PRO_V1_2 4209 // BigTreeTech SKR Pro v1.2 (STM32F407ZGT6) +#define BOARD_BTT_BTT002_V1_0 4210 // BigTreeTech BTT002 v1.0 (STM32F407VGT6) +#define BOARD_BTT_E3_RRF 4211 // BigTreeTech E3 RRF (STM32F407VGT6) +#define BOARD_BTT_SKR_V2_0_REV_A 4212 // BigTreeTech SKR v2.0 Rev A (STM32F407VGT6) +#define BOARD_BTT_SKR_V2_0_REV_B 4213 // BigTreeTech SKR v2.0 Rev B (STM32F407VGT6) +#define BOARD_BTT_GTR_V1_0 4214 // BigTreeTech GTR v1.0 (STM32F407IGT) +#define BOARD_BTT_OCTOPUS_V1_0 4215 // BigTreeTech Octopus v1.0 (STM32F446ZET6) +#define BOARD_BTT_OCTOPUS_V1_1 4216 // BigTreeTech Octopus v1.1 (STM32F446ZET6) +#define BOARD_LERDGE_K 4217 // Lerdge K (STM32F407ZG) +#define BOARD_LERDGE_S 4218 // Lerdge S (STM32F407VE) +#define BOARD_LERDGE_X 4219 // Lerdge X (STM32F407VE) +#define BOARD_VAKE403D 4220 // VAkE 403D (STM32F446VET6) +#define BOARD_FYSETC_S6 4221 // FYSETC S6 (STM32F446VET6) +#define BOARD_FYSETC_S6_V2_0 4222 // FYSETC S6 v2.0 (STM32F446VET6) +#define BOARD_FYSETC_SPIDER 4223 // FYSETC Spider (STM32F446VET6) +#define BOARD_FLYF407ZG 4224 // FLYmaker FLYF407ZG (STM32F407ZG) +#define BOARD_MKS_ROBIN2 4225 // MKS_ROBIN2 (STM32F407ZE) +#define BOARD_MKS_ROBIN_PRO_V2 4226 // MKS Robin Pro V2 (STM32F407VE) +#define BOARD_MKS_ROBIN_NANO_V3 4227 // MKS Robin Nano V3 (STM32F407VG) +#define BOARD_MKS_MONSTER8 4228 // MKS Monster8 (STM32F407VGT6) +#define BOARD_ANET_ET4 4229 // ANET ET4 V1.x (STM32F407VGT6) +#define BOARD_ANET_ET4P 4230 // ANET ET4P V1.x (STM32F407VGT6) +#define BOARD_FYSETC_CHEETAH_V20 4231 // FYSETC Cheetah V2.0 // // ARM Cortex M7 diff --git a/Marlin/src/core/serial.h b/Marlin/src/core/serial.h index dfcf23ddb60f..a3d640ee1a76 100644 --- a/Marlin/src/core/serial.h +++ b/Marlin/src/core/serial.h @@ -88,7 +88,7 @@ extern uint8_t marlin_debug_flags; #if HAS_MULTI_SERIAL #define _PORT_REDIRECT(n,p) REMEMBER(n,multiSerial.portMask,p) #define _PORT_RESTORE(n,p) RESTORE(n) - #define SERIAL_ASSERT(P) if(multiSerial.portMask!=(P)){ debugger(); } + #define SERIAL_ASSERT(P) if (multiSerial.portMask!=(P)) { debugger(); } // If we have a catchall, use that directly #ifdef SERIAL_CATCHALL #define _SERIAL_LEAF_2 SERIAL_CATCHALL diff --git a/Marlin/src/feature/mixing.cpp b/Marlin/src/feature/mixing.cpp index 332a4f374014..0013797ad5f5 100644 --- a/Marlin/src/feature/mixing.cpp +++ b/Marlin/src/feature/mixing.cpp @@ -169,14 +169,12 @@ void Mixer::refresh_collector(const float proportion/*=1.0*/, const uint8_t t/*= #include "../module/planner.h" gradient_t Mixer::gradient = { - false, // enabled - {0}, // color (array) - 0, 0, // start_z, end_z - 0, 1, // start_vtool, end_vtool - {0}, {0} // start_mix[], end_mix[] - #if ENABLED(GRADIENT_VTOOL) - , -1 // vtool_index - #endif + false, // enabled + {0}, // color (array) + 0, 0, // start_z, end_z + 0, 1, // start_vtool, end_vtool + {0}, {0} // start_mix[], end_mix[] + OPTARG(GRADIENT_VTOOL, -1) // vtool_index }; float Mixer::prev_z; // = 0 diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 94c564a9aaf7..79a8af66e2a4 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -191,13 +191,14 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load KEEPALIVE_STATE(PAUSED_FOR_USER); wait_for_user = true; // LCD click or M108 will clear this + + TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(PSTR("Load Filament"))); + #if ENABLED(HOST_PROMPT_SUPPORT) const char tool = '0' + TERN0(MULTI_FILAMENT_SENSOR, active_extruder); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Load Filament T"), tool, CONTINUE_STR); #endif - TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(PSTR("Load Filament"))); - while (wait_for_user) { impatient_beep(max_beep_count); idle_no_sleep(); @@ -237,8 +238,8 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load if (show_lcd) ui.pause_show_message(PAUSE_MESSAGE_PURGE); - TERN_(HOST_PROMPT_SUPPORT, host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Filament Purging..."), CONTINUE_STR)); - TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(PSTR("Filament Purging..."))); + TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_PURGE))); + TERN_(HOST_PROMPT_SUPPORT, host_prompt_do(PROMPT_USER_CONTINUE, GET_TEXT(MSG_FILAMENT_CHANGE_PURGE), CONTINUE_STR)); wait_for_user = true; // A click or M108 breaks the purge_length loop for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count) unscaled_e_move(1, ADVANCED_PAUSE_PURGE_FEEDRATE); @@ -272,7 +273,7 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load #endif // Keep looping if "Purge More" was selected - } while (TERN0(M600_PURGE_MORE_RESUMABLE, show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE)); + } while (TERN0(M600_PURGE_MORE_RESUMABLE, pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE)); #endif TERN_(HOST_PROMPT_SUPPORT, host_action_prompt_end()); diff --git a/Marlin/src/feature/probe_temp_comp.cpp b/Marlin/src/feature/probe_temp_comp.cpp index e39896d4dc09..6f2dad58b9c8 100644 --- a/Marlin/src/feature/probe_temp_comp.cpp +++ b/Marlin/src/feature/probe_temp_comp.cpp @@ -38,16 +38,12 @@ int16_t ProbeTempComp::z_offsets_probe[cali_info_init[TSI_PROBE].measurements], int16_t *ProbeTempComp::sensor_z_offsets[TSI_COUNT] = { ProbeTempComp::z_offsets_probe, ProbeTempComp::z_offsets_bed - #if ENABLED(USE_TEMP_EXT_COMPENSATION) - , ProbeTempComp::z_offsets_ext - #endif + OPTARG(USE_TEMP_EXT_COMPENSATION, ProbeTempComp::z_offsets_ext) }; const temp_calib_t ProbeTempComp::cali_info[TSI_COUNT] = { cali_info_init[TSI_PROBE], cali_info_init[TSI_BED] - #if ENABLED(USE_TEMP_EXT_COMPENSATION) - , cali_info_init[TSI_EXT] - #endif + OPTARG(USE_TEMP_EXT_COMPENSATION, cali_info_init[TSI_EXT]) }; constexpr xyz_pos_t ProbeTempComp::park_point; diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp index 18e386212845..c3c8d3c92bf1 100644 --- a/Marlin/src/gcode/bedlevel/abl/G29.cpp +++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp @@ -363,8 +363,6 @@ G29_TYPE GcodeSuite::G29() { #if ABL_USES_GRID xy_probe_feedrate_mm_s = MMM_TO_MMS(parser.linearval('S', XY_PROBE_FEEDRATE)); - if (!xy_probe_feedrate_mm_s) xy_probe_feedrate_mm_s = PLANNER_XY_FEEDRATE(); - NOLESS(xy_probe_feedrate_mm_s, planner.settings.min_feedrate_mm_s); const float x_min = probe.min_x(), x_max = probe.max_x(), y_min = probe.min_y(), y_max = probe.max_y(); @@ -880,9 +878,7 @@ G29_TYPE GcodeSuite::G29() { // Sync the planner from the current_position if (planner.leveling_active) sync_plan_position(); - #if HAS_BED_PROBE - probe.move_z_after_probing(); - #endif + TERN_(HAS_BED_PROBE, probe.move_z_after_probing()); #ifdef Z_PROBE_END_SCRIPT if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR("Z Probe End Script: ", Z_PROBE_END_SCRIPT); diff --git a/Marlin/src/gcode/feature/camera/M240.cpp b/Marlin/src/gcode/feature/camera/M240.cpp index f5c910a9e943..19051ffd423e 100644 --- a/Marlin/src/gcode/feature/camera/M240.cpp +++ b/Marlin/src/gcode/feature/camera/M240.cpp @@ -135,17 +135,8 @@ void GcodeSuite::M240() { }; #ifdef PHOTO_RETRACT_MM - const float rval = parser.seenval('R') ? parser.value_linear_units() : _PHOTO_RETRACT_MM; - feedRate_t sval = ( - #if ENABLED(ADVANCED_PAUSE_FEATURE) - PAUSE_PARK_RETRACT_FEEDRATE - #elif ENABLED(FWRETRACT) - RETRACT_FEEDRATE - #else - 45 - #endif - ); - if (parser.seenval('S')) sval = parser.value_feedrate(); + const float rval = parser.linearval('R', _PHOTO_RETRACT_MM); + const feedRate_t sval = parser.feedrateval('S', TERN(ADVANCED_PAUSE_FEATURE, PAUSE_PARK_RETRACT_FEEDRATE, TERN(FWRETRACT, RETRACT_FEEDRATE, 45))); e_move_m240(-rval, sval); #endif diff --git a/Marlin/src/gcode/feature/fwretract/G10_G11.cpp b/Marlin/src/gcode/feature/fwretract/G10_G11.cpp index 219502f28a8e..35330fe0ac12 100644 --- a/Marlin/src/gcode/feature/fwretract/G10_G11.cpp +++ b/Marlin/src/gcode/feature/fwretract/G10_G11.cpp @@ -32,16 +32,7 @@ * G10 - Retract filament according to settings of M207 * TODO: Handle 'G10 P' for tool settings and 'G10 L' for workspace settings */ -void GcodeSuite::G10() { - #if HAS_MULTI_EXTRUDER - const bool rs = parser.boolval('S'); - #endif - fwretract.retract(true - #if HAS_MULTI_EXTRUDER - , rs - #endif - ); -} +void GcodeSuite::G10() { fwretract.retract(true OPTARG(HAS_MULTI_EXTRUDER, parser.boolval('S'))); } /** * G11 - Recover filament according to settings of M208 diff --git a/Marlin/src/gcode/feature/pause/M701_M702.cpp b/Marlin/src/gcode/feature/pause/M701_M702.cpp index 0a649dadd47a..d46bb234bceb 100644 --- a/Marlin/src/gcode/feature/pause/M701_M702.cpp +++ b/Marlin/src/gcode/feature/pause/M701_M702.cpp @@ -114,9 +114,7 @@ void GcodeSuite::M701() { true, // show_lcd thermalManager.still_heating(target_extruder), // pause_for_user PAUSE_MODE_LOAD_FILAMENT // pause_mode - #if ENABLED(DUAL_X_CARRIAGE) - , target_extruder // Dual X target - #endif + OPTARG(DUAL_X_CARRIAGE, target_extruder) // Dual X target ); #endif diff --git a/Marlin/src/gcode/host/M115.cpp b/Marlin/src/gcode/host/M115.cpp index 3b88c6905e15..e4f412406f04 100644 --- a/Marlin/src/gcode/host/M115.cpp +++ b/Marlin/src/gcode/host/M115.cpp @@ -166,9 +166,11 @@ void GcodeSuite::M115() { // Machine Geometry #if ENABLED(M115_GEOMETRY_REPORT) - const xyz_pos_t dmin = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }, + const xyz_pos_t bmin = { 0, 0, 0 }, + bmax = { X_BED_SIZE , Y_BED_SIZE, Z_MAX_POS }, + dmin = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }, dmax = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS }; - xyz_pos_t cmin = dmin, cmax = dmax; + xyz_pos_t cmin = bmin, cmax = bmax; apply_motion_limits(cmin); apply_motion_limits(cmax); const xyz_pos_t lmin = dmin.asLogical(), lmax = dmax.asLogical(), diff --git a/Marlin/src/gcode/parser.h b/Marlin/src/gcode/parser.h index 08cf10004a16..a819de6127f7 100644 --- a/Marlin/src/gcode/parser.h +++ b/Marlin/src/gcode/parser.h @@ -416,7 +416,8 @@ class GCodeParser { static inline float linearval(const char c, const float dval=0) { return seenval(c) ? value_linear_units() : dval; } static inline float axisunitsval(const char c, const AxisEnum a, const float dval=0) { return seenval(c) ? value_axis_units(a) : dval; } - static inline celsius_t celsiusval(const char c, const float dval=0) { return seenval(c) ? value_celsius() : dval; } + static inline celsius_t celsiusval(const char c, const celsius_t dval=0) { return seenval(c) ? value_celsius() : dval; } + static inline feedRate_t feedrateval(const char c, const feedRate_t dval=0) { return seenval(c) ? value_feedrate() : dval; } #if ENABLED(MARLIN_DEV_MODE) diff --git a/Marlin/src/gcode/queue.cpp b/Marlin/src/gcode/queue.cpp index fa83c82ddc87..37acc8d58cff 100644 --- a/Marlin/src/gcode/queue.cpp +++ b/Marlin/src/gcode/queue.cpp @@ -118,11 +118,7 @@ bool GCodeQueue::RingBuffer::enqueue(const char *cmd, bool skip_ok/*=true*/ ) { if (*cmd == ';' || length >= BUFSIZE) return false; strcpy(commands[index_w].buffer, cmd); - commit_command(skip_ok - #if HAS_MULTI_SERIAL - , serial_ind - #endif - ); + commit_command(skip_ok OPTARG(HAS_MULTI_SERIAL, serial_ind)); return true; } @@ -538,11 +534,7 @@ void GCodeQueue::get_serial_commands() { #endif // Add the command to the queue - ring_buffer.enqueue(serial.line_buffer, false - #if HAS_MULTI_SERIAL - , p - #endif - ); + ring_buffer.enqueue(serial.line_buffer, false OPTARG(HAS_MULTI_SERIAL, p)); } else process_stream_char(serial_char, serial.input_state, serial.line_buffer, serial.count); diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 137b9fce3ec1..c4309db144eb 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -488,7 +488,10 @@ #define HAS_MARLINUI_U8GLIB 1 #elif IS_TFTGLCD_PANEL // Neither DOGM nor HD44780. Fully customized interface. - #elif DISABLED(HAS_GRAPHICAL_TFT) + #elif IS_DWIN_MARLINUI + // Since HAS_MARLINUI_U8GLIB refers to U8G displays + // the DWIN display can define its own flags + #elif !HAS_GRAPHICAL_TFT #define HAS_MARLINUI_HD44780 1 #endif #endif @@ -1087,7 +1090,7 @@ #define HAS_ETHERNET 1 #endif -#if ENABLED(DWIN_CREALITY_LCD) +#if EITHER(DWIN_CREALITY_LCD, IS_DWIN_MARLINUI) #define SERIAL_CATCHALL 0 #ifndef LCD_SERIAL_PORT #if MB(BTT_SKR_MINI_E3_V1_0, BTT_SKR_MINI_E3_V1_2, BTT_SKR_MINI_E3_V2_0, BTT_SKR_E3_TURBO) diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 0f33b4799ddd..20243ae0ea20 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -461,7 +461,7 @@ #endif -#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, HAS_FSMC_GRAPHICAL_TFT, HAS_SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT) +#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, HAS_FSMC_GRAPHICAL_TFT, HAS_SPI_GRAPHICAL_TFT, IS_DWIN_MARLINUI) || !PIN_EXISTS(SD_DETECT) #define NO_LCD_REINIT 1 // Suppress LCD re-initialization #endif @@ -2932,10 +2932,9 @@ #endif #if !BOTH(HAS_BED_PROBE, HAS_EXTRUDERS) #undef PROBING_ESTEPPERS_OFF -#endif -#if BOTH(PROBING_STEPPERS_OFF, PROBING_ESTEPPERS_OFF) - #undef PROBING_ESTEPPERS_OFF - #warning "PROBING_STEPPERS_OFF includes PROBING_ESTEPPERS_OFF. Disabling PROBING_ESTEPPERS_OFF." +#elif ENABLED(PROBING_STEPPERS_OFF) + // PROBING_STEPPERS_OFF implies PROBING_ESTEPPERS_OFF, make sure it is defined + #define PROBING_ESTEPPERS_OFF #endif #if EITHER(ADVANCED_PAUSE_FEATURE, PROBING_HEATERS_OFF) #define HEATER_IDLE_HANDLER 1 @@ -3259,6 +3258,8 @@ #ifndef LCD_WIDTH #if HAS_MARLINUI_U8GLIB #define LCD_WIDTH 21 + #elif IS_DWIN_MARLINUI + // Defined by header #else #define LCD_WIDTH TERN(IS_ULTIPANEL, 20, 16) #endif @@ -3266,6 +3267,8 @@ #ifndef LCD_HEIGHT #if HAS_MARLINUI_U8GLIB #define LCD_HEIGHT 5 + #elif IS_DWIN_MARLINUI + // Defined by header #else #define LCD_HEIGHT TERN(IS_ULTIPANEL, 4, 2) #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index f1204532fec1..b679f2cb532d 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -577,6 +577,8 @@ #error "CUSTOM_USER_MENUS has been replaced by CUSTOM_MENU_MAIN and CUSTOM_MENU_CONFIG." #elif defined(MKS_LCD12864) #error "MKS_LCD12864 is now MKS_LCD12864A or MKS_LCD12864B." +#elif defined(DOGM_SD_PERCENT) + #error "DOGM_SD_PERCENT is now SHOW_SD_PERCENT." #elif defined(NEOPIXEL_BKGD_LED_INDEX) #error "NEOPIXEL_BKGD_LED_INDEX is now NEOPIXEL_BKGD_INDEX_FIRST." #elif defined(TEMP_SENSOR_1_AS_REDUNDANT) @@ -796,8 +798,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0." #endif #elif ENABLED(LCD_SET_PROGRESS_MANUALLY) - #if NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI) - #error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, or EXTENSIBLE_UI." + #if NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI, IS_DWIN_MARLINUI) + #error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, EXTENSIBLE_UI, OR DWIN MarlinUI." #endif #endif @@ -1719,7 +1721,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #endif #endif -#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !BOTH(AUTO_BED_LEVELING_UBL, HAS_MARLINUI_U8GLIB) +#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !(ENABLED(AUTO_BED_LEVELING_UBL) && EITHER(HAS_MARLINUI_U8GLIB, IS_DWIN_MARLINUI)) #error "MESH_EDIT_GFX_OVERLAY requires AUTO_BED_LEVELING_UBL and a Graphical LCD." #endif @@ -2638,6 +2640,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS + COUNT_ENABLED(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_TFT35) \ + COUNT_ENABLED(DGUS_LCD_UI_ORIGIN, DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY, DGUS_LCD_UI_MKS) \ + COUNT_ENABLED(ENDER2_STOCKDISPLAY, CR10_STOCKDISPLAY, DWIN_CREALITY_LCD) \ + + COUNT_ENABLED(DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE) \ + COUNT_ENABLED(FYSETC_MINI_12864_X_X, FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0, FYSETC_MINI_12864_2_1, FYSETC_GENERIC_12864_1_1) \ + COUNT_ENABLED(LCD_SAINSMART_I2C_1602, LCD_SAINSMART_I2C_2004) \ + COUNT_ENABLED(MKS_12864OLED, MKS_12864OLED_SSD1306) \ diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index eed4860c36d8..6bbcca1457fe 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2021-08-14" + #define STRING_DISTRIBUTION_DATE "2021-08-21" #endif /** @@ -105,18 +105,18 @@ * Currently only supported by DUE platform */ #ifndef USB_DEVICE_VENDOR_ID - #define USB_DEVICE_VENDOR_ID 0x03EB /* ATMEL VID */ + #define USB_DEVICE_VENDOR_ID 0x03EB /* ATMEL VID */ #endif #ifndef USB_DEVICE_PRODUCT_ID - #define USB_DEVICE_PRODUCT_ID 0x2424 /* MSC / CDC */ + #define USB_DEVICE_PRODUCT_ID 0x2424 /* MSC / CDC */ #endif //! USB Device string definitions (Optional) #ifndef USB_DEVICE_MANUFACTURE_NAME - #define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL + #define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL #endif #ifdef CUSTOM_MACHINE_NAME - #define USB_DEVICE_PRODUCT_NAME CUSTOM_MACHINE_NAME + #define USB_DEVICE_PRODUCT_NAME CUSTOM_MACHINE_NAME #else - #define USB_DEVICE_PRODUCT_NAME MACHINE_NAME + #define USB_DEVICE_PRODUCT_NAME MACHINE_NAME #endif -#define USB_DEVICE_SERIAL_NAME "123985739853" +#define USB_DEVICE_SERIAL_NAME "123985739853" diff --git a/Marlin/src/lcd/dogm/marlinui_DOGM.cpp b/Marlin/src/lcd/dogm/marlinui_DOGM.cpp index 25e943a14d14..33bb3e4b9212 100644 --- a/Marlin/src/lcd/dogm/marlinui_DOGM.cpp +++ b/Marlin/src/lcd/dogm/marlinui_DOGM.cpp @@ -354,12 +354,11 @@ void MarlinUI::clear_lcd() { } // Automatically cleared by Picture Loop #if ENABLED(ADVANCED_PAUSE_FEATURE) void MarlinUI::draw_hotend_status(const uint8_t row, const uint8_t extruder) { - row_y1 = row * (MENU_FONT_HEIGHT) + 1; - row_y2 = row_y1 + MENU_FONT_HEIGHT - 1; + u8g_uint_t y1 = row * (MENU_FONT_HEIGHT) + 1, y2 = y1 + MENU_FONT_HEIGHT - 1; - if (!PAGE_CONTAINS(row_y1 + 1, row_y2 + 2)) return; + if (!PAGE_CONTAINS(y1 + 1, y2 + 2)) return; - lcd_put_wchar(LCD_PIXEL_WIDTH - 11 * (MENU_FONT_WIDTH), row_y2, 'E'); + lcd_put_wchar(LCD_PIXEL_WIDTH - 11 * (MENU_FONT_WIDTH), y2, 'E'); lcd_put_wchar((char)('1' + extruder)); lcd_put_wchar(' '); lcd_put_u8str(i16tostr3rj(thermalManager.wholeDegHotend(extruder))); diff --git a/Marlin/src/lcd/dogm/status_screen_DOGM.cpp b/Marlin/src/lcd/dogm/status_screen_DOGM.cpp index 5fe8b61bf4cc..8b707ba7c78a 100644 --- a/Marlin/src/lcd/dogm/status_screen_DOGM.cpp +++ b/Marlin/src/lcd/dogm/status_screen_DOGM.cpp @@ -456,13 +456,13 @@ void MarlinUI::draw_status_screen() { #endif #if HAS_PRINT_PROGRESS - #if DISABLED(DOGM_SD_PERCENT) + #if DISABLED(SHOW_SD_PERCENT) #define _SD_INFO_X(len) (PROGRESS_BAR_X + (PROGRESS_BAR_WIDTH) / 2 - (len) * (MENU_FONT_WIDTH) / 2) #else #define _SD_INFO_X(len) (LCD_PIXEL_WIDTH - (len) * (MENU_FONT_WIDTH)) #endif - #if ENABLED(DOGM_SD_PERCENT) + #if ENABLED(SHOW_SD_PERCENT) static char progress_string[5]; #endif static uint8_t lastElapsed = 0xFF, lastProgress = 0xFF; @@ -471,7 +471,7 @@ void MarlinUI::draw_status_screen() { #if ENABLED(SHOW_REMAINING_TIME) static u8g_uint_t estimation_x_pos = 0; static char estimation_string[10]; - #if BOTH(DOGM_SD_PERCENT, ROTATE_PROGRESS_DISPLAY) + #if BOTH(SHOW_SD_PERCENT, ROTATE_PROGRESS_DISPLAY) static u8g_uint_t progress_x_pos = 0; static uint8_t progress_state = 0; static bool prev_blink = 0; @@ -526,7 +526,7 @@ void MarlinUI::draw_status_screen() { progress_bar_solid_width = u8g_uint_t((PROGRESS_BAR_WIDTH - 2) * (progress / (PROGRESS_SCALE)) * 0.01f); - #if ENABLED(DOGM_SD_PERCENT) + #if ENABLED(SHOW_SD_PERCENT) if (progress == 0) { progress_string[0] = '\0'; #if ENABLED(SHOW_REMAINING_TIME) @@ -543,7 +543,7 @@ void MarlinUI::draw_status_screen() { #endif } - constexpr bool can_show_days = DISABLED(DOGM_SD_PERCENT) || ENABLED(ROTATE_PROGRESS_DISPLAY); + constexpr bool can_show_days = DISABLED(SHOW_SD_PERCENT) || ENABLED(ROTATE_PROGRESS_DISPLAY); if (ev != lastElapsed) { lastElapsed = ev; const uint8_t len = elapsed.toDigital(elapsed_string, can_show_days && elapsed.value >= 60*60*24L); @@ -564,11 +564,7 @@ void MarlinUI::draw_status_screen() { else { duration_t estimation = timeval; const uint8_t len = estimation.toDigital(estimation_string, can_show_days && estimation.value >= 60*60*24L); - estimation_x_pos = _SD_INFO_X(len - #if !BOTH(DOGM_SD_PERCENT, ROTATE_PROGRESS_DISPLAY) - + 1 - #endif - ); + estimation_x_pos = _SD_INFO_X(len + !BOTH(SHOW_SD_PERCENT, ROTATE_PROGRESS_DISPLAY)); } } #endif @@ -767,7 +763,7 @@ void MarlinUI::draw_status_screen() { if (PAGE_CONTAINS(EXTRAS_BASELINE - INFO_FONT_ASCENT, EXTRAS_BASELINE - 1)) { - #if ALL(DOGM_SD_PERCENT, SHOW_REMAINING_TIME, ROTATE_PROGRESS_DISPLAY) + #if ALL(SHOW_SD_PERCENT, SHOW_REMAINING_TIME, ROTATE_PROGRESS_DISPLAY) if (prev_blink != blink) { prev_blink = blink; @@ -789,13 +785,13 @@ void MarlinUI::draw_status_screen() { lcd_put_u8str(elapsed_x_pos, EXTRAS_BASELINE, elapsed_string); } - #else // !DOGM_SD_PERCENT || !SHOW_REMAINING_TIME || !ROTATE_PROGRESS_DISPLAY + #else // !SHOW_SD_PERCENT || !SHOW_REMAINING_TIME || !ROTATE_PROGRESS_DISPLAY // // SD Percent Complete // - #if ENABLED(DOGM_SD_PERCENT) + #if ENABLED(SHOW_SD_PERCENT) if (progress_string[0]) { lcd_put_u8str(55, EXTRAS_BASELINE, progress_string); // Percent complete lcd_put_wchar('%'); @@ -815,7 +811,7 @@ void MarlinUI::draw_status_screen() { #endif lcd_put_u8str(elapsed_x_pos, EXTRAS_BASELINE, elapsed_string); - #endif // !DOGM_SD_PERCENT || !SHOW_REMAINING_TIME || !ROTATE_PROGRESS_DISPLAY + #endif // !SHOW_SD_PERCENT || !SHOW_REMAINING_TIME || !ROTATE_PROGRESS_DISPLAY } #endif // HAS_PRINT_PROGRESS diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_upscale_from_128x64.cpp index b0cb59a12cba..9b5f206fa9d8 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_upscale_from_128x64.cpp @@ -390,9 +390,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u LOOP_L_N(y, PAGE_HEIGHT) { uint32_t k = 0; - #if HAS_LCD_IO - buffer = (y & 1) ? bufferB : bufferA; - #endif + TERN_(HAS_LCD_IO, buffer = (y & 1) ? bufferB : bufferA); for (uint16_t i = 0; i < (uint32_t)pb->width; i++) { const uint8_t b = *(((uint8_t *)pb->buf) + i); const uint16_t c = TEST(b, y) ? TFT_MARLINUI_COLOR : TFT_MARLINBG_COLOR; diff --git a/Marlin/src/lcd/e3v2/creality/dwin.cpp b/Marlin/src/lcd/e3v2/creality/dwin.cpp index 05da343f9e43..5ddc23181772 100644 --- a/Marlin/src/lcd/e3v2/creality/dwin.cpp +++ b/Marlin/src/lcd/e3v2/creality/dwin.cpp @@ -94,11 +94,8 @@ #define PAUSE_HEAT -#define USE_STRING_HEADINGS -//#define USE_STRING_TITLES - #define MENU_CHAR_LIMIT 24 -#define STATUS_Y 360 +#define STATUS_Y 354 // Print speed limit #define MIN_PRINT_SPEED 10 @@ -121,20 +118,22 @@ #define DWIN_SCROLL_UPDATE_INTERVAL SEC_TO_MS(2) #define DWIN_REMAIN_TIME_UPDATE_INTERVAL SEC_TO_MS(20) -constexpr uint16_t TROWS = 6, MROWS = TROWS - 1, // Total rows, and other-than-Back - TITLE_HEIGHT = 30, // Title bar height - MLINE = 53, // Menu line height - LBLX = 60, // Menu item label X +#define TROWS 6 // Total rows +constexpr uint16_t MROWS = TROWS - 1, // Last Row Index + TITLE_HEIGHT = 30, // Title bar height + MLINE = 53, // Menu line height + LBLX = 60, // Menu item label X MENU_CHR_W = 8, STAT_CHR_W = 10; #define MBASE(L) (49 + MLINE * (L)) +#define EBASE(L) (MBASE(L) - 2 * DISABLED(USE_STRING_TITLES)) #define BABY_Z_VAR TERN(HAS_BED_PROBE, probe.offset.z, dwin_zoffset) #define DWIN_BOTTOM (DWIN_HEIGHT-1) #define DWIN_RIGHT (DWIN_WIDTH-1) -/* Value Init */ +// Value Init HMI_value_t HMI_ValueStruct; HMI_Flag_t HMI_flag{0}; @@ -217,177 +216,129 @@ void HMI_ToggleLanguage() { #endif } -void DWIN_Draw_Signed_Float(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) { - if (value < 0) { - DWIN_Draw_String(true, size, Color_White, bColor, x - 6, y, F("-")); - DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, -value); - } - else { - DWIN_Draw_String(true, size, Color_White, bColor, x - 6, y, F(" ")); - DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, value); - } +typedef struct { uint16_t x, y, w, h; } icon_info_t; +typedef struct { uint16_t x, y[2], w, h; } text_info_t; + +void ICON_Button(const bool here, const int iconid, const icon_info_t &ico, const text_info_t (&txt)[2]) { + const bool cn = HMI_IsChinese(); + DWIN_ICON_Show(ICON, iconid + here, ico.x, ico.y); + if (here) DWIN_Draw_Rectangle(0, Color_White, ico.x, ico.y, ico.x + ico.w - 1, ico.y + ico.h - 1); + DWIN_Frame_AreaCopy(1, txt[cn].x, txt[cn].y[here], txt[cn].x + txt[cn].w - 1, txt[cn].y[here] + txt[cn].h - 1, ico.x + (ico.w - txt[cn].w) / 2, (ico.y + ico.h - 28) - txt[cn].h/2); } +// +// Main Menu: "Print" +// void ICON_Print() { - if (select_page.now == 0) { - DWIN_ICON_Show(ICON, ICON_Print_1, 17, 130); - DWIN_Draw_Rectangle(0, Color_White, 17, 130, 126, 229); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 1, 447, 28, 460, 58, 201); - else - DWIN_Frame_AreaCopy(1, 1, 451, 31, 463, 57, 201); - } - else { - DWIN_ICON_Show(ICON, ICON_Print_0, 17, 130); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 1, 405, 28, 420, 58, 201); - else - DWIN_Frame_AreaCopy(1, 1, 423, 31, 435, 57, 201); - } + constexpr icon_info_t ico = { 17, 110, 110, 100 }; + constexpr text_info_t txt[2] = { + { 1, { 417, 449 }, 30, 14 }, + { 1, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_page.now == 0, ICON_Print_0, ico, txt); } +// +// Main Menu: "Prepare" +// void ICON_Prepare() { - if (select_page.now == 1) { - DWIN_ICON_Show(ICON, ICON_Prepare_1, 145, 130); - DWIN_Draw_Rectangle(0, Color_White, 145, 130, 254, 229); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 31, 447, 58, 460, 186, 201); - else - DWIN_Frame_AreaCopy(1, 33, 451, 82, 466, 175, 201); - } - else { - DWIN_ICON_Show(ICON, ICON_Prepare_0, 145, 130); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 31, 405, 58, 420, 186, 201); - else - DWIN_Frame_AreaCopy(1, 33, 423, 82, 438, 175, 201); - } + constexpr icon_info_t ico = { 145, 110, 110, 100 }; + constexpr text_info_t txt[2] = { + { 33, { 417, 449 }, 51, 14 }, + { 31, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_page.now == 1, ICON_Prepare_0, ico, txt); } +// +// Main Menu: "Control" +// void ICON_Control() { - if (select_page.now == 2) { - DWIN_ICON_Show(ICON, ICON_Control_1, 17, 246); - DWIN_Draw_Rectangle(0, Color_White, 17, 246, 126, 345); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 61, 447, 88, 460, 58, 318); - else - DWIN_Frame_AreaCopy(1, 85, 451, 132, 463, 48, 318); - } - else { - DWIN_ICON_Show(ICON, ICON_Control_0, 17, 246); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 61, 405, 88, 420, 58, 318); - else - DWIN_Frame_AreaCopy(1, 85, 423, 132, 434, 48, 318); - } + constexpr icon_info_t ico = { 17, 226, 110, 100 }; + constexpr text_info_t txt[2] = { + { 85, { 417, 449 }, 46, 14 }, + { 61, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_page.now == 2, ICON_Control_0, ico, txt); } -void ICON_StartInfo(bool show) { - if (show) { - DWIN_ICON_Show(ICON, ICON_Info_1, 145, 246); - DWIN_Draw_Rectangle(0, Color_White, 145, 246, 254, 345); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 91, 447, 118, 460, 186, 318); - else - DWIN_Frame_AreaCopy(1, 132, 451, 159, 466, 186, 318); - } - else { - DWIN_ICON_Show(ICON, ICON_Info_0, 145, 246); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 91, 405, 118, 420, 186, 318); - else - DWIN_Frame_AreaCopy(1, 132, 423, 159, 435, 186, 318); - } +// +// Main Menu: "Info" +// +void ICON_StartInfo() { + constexpr icon_info_t ico = { 145, 226, 110, 100 }; + constexpr text_info_t txt[2] = { + { 133, { 417, 449 }, 23, 14 }, + { 91, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_page.now == 3, ICON_Info_0, ico, txt); } -void ICON_Leveling(bool show) { - if (show) { - DWIN_ICON_Show(ICON, ICON_Leveling_1, 145, 246); - DWIN_Draw_Rectangle(0, Color_White, 145, 246, 254, 345); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 211, 447, 238, 460, 186, 318); - else - DWIN_Frame_AreaCopy(1, 84, 437, 120, 449, 182, 318); - } - else { - DWIN_ICON_Show(ICON, ICON_Leveling_0, 145, 246); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 211, 405, 238, 420, 186, 318); - else - DWIN_Frame_AreaCopy(1, 84, 465, 120, 478, 182, 318); - } +// +// Main Menu: "Level" +// +void ICON_Leveling() { + constexpr icon_info_t ico = { 145, 226, 110, 100 }; + constexpr text_info_t txt[2] = { + { 88, { 433, 464 }, 36, 14 }, + { 211, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_page.now == 3, ICON_Leveling_0, ico, txt); } +// +// Printing: "Tune" +// void ICON_Tune() { - if (select_print.now == 0) { - DWIN_ICON_Show(ICON, ICON_Setup_1, 8, 252); - DWIN_Draw_Rectangle(0, Color_White, 8, 252, 87, 351); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 121, 447, 148, 458, 34, 325); - else - DWIN_Frame_AreaCopy(1, 0, 466, 34, 476, 31, 325); - } - else { - DWIN_ICON_Show(ICON, ICON_Setup_0, 8, 252); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 121, 405, 148, 420, 34, 325); - else - DWIN_Frame_AreaCopy(1, 0, 438, 32, 448, 31, 325); - } + constexpr icon_info_t ico = { 8, 232, 80, 100 }; + constexpr text_info_t txt[2] = { + { 0, { 433, 464 }, 32, 14 }, + { 121, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_print.now == 0, ICON_Setup_0, ico, txt); } +// +// Printing: "Pause" +// void ICON_Pause() { - if (select_print.now == 1) { - DWIN_ICON_Show(ICON, ICON_Pause_1, 96, 252); - DWIN_Draw_Rectangle(0, Color_White, 96, 252, 175, 351); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 181, 447, 208, 459, 124, 325); - else - DWIN_Frame_AreaCopy(1, 177, 451, 216, 462, 116, 325); - } - else { - DWIN_ICON_Show(ICON, ICON_Pause_0, 96, 252); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 181, 405, 208, 420, 124, 325); - else - DWIN_Frame_AreaCopy(1, 177, 423, 215, 433, 116, 325); - } + constexpr icon_info_t ico = { 96, 232, 80, 100 }; + constexpr text_info_t txt[2] = { + { 157, { 417, 449 }, 39, 14 }, + { 181, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_print.now == 1, ICON_Pause_0, ico, txt); } -void ICON_Continue() { - if (select_print.now == 1) { - DWIN_ICON_Show(ICON, ICON_Continue_1, 96, 252); - DWIN_Draw_Rectangle(0, Color_White, 96, 252, 175, 351); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 1, 447, 28, 460, 124, 325); - else - DWIN_Frame_AreaCopy(1, 1, 452, 32, 464, 121, 325); - } - else { - DWIN_ICON_Show(ICON, ICON_Continue_0, 96, 252); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 1, 405, 28, 420, 124, 325); - else - DWIN_Frame_AreaCopy(1, 1, 424, 31, 434, 121, 325); - } +// +// Printing: "Resume" +// +void ICON_Resume() { + constexpr icon_info_t ico = { 96, 232, 80, 100 }; + constexpr text_info_t txt[2] = { + { 33, { 433, 464 }, 53, 14 }, + { 1, { 405, 447 }, 27, 15 } + }; + ICON_Button(select_print.now == 1, ICON_Continue_0, ico, txt); } +void ICON_ResumeOrPause() { + if (printingIsPaused() || HMI_flag.pause_flag || HMI_flag.pause_action) + ICON_Resume(); + else + ICON_Pause(); +} + +// +// Printing: "Stop" +// void ICON_Stop() { - if (select_print.now == 2) { - DWIN_ICON_Show(ICON, ICON_Stop_1, 184, 252); - DWIN_Draw_Rectangle(0, Color_White, 184, 252, 263, 351); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 151, 447, 178, 459, 210, 325); - else - DWIN_Frame_AreaCopy(1, 218, 452, 249, 466, 209, 325); - } - else { - DWIN_ICON_Show(ICON, ICON_Stop_0, 184, 252); - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 151, 405, 178, 420, 210, 325); - else - DWIN_Frame_AreaCopy(1, 218, 423, 247, 436, 209, 325); - } + constexpr icon_info_t ico = { 184, 232, 80, 100 }; + constexpr text_info_t txt[2] = { + { 196, { 417, 449 }, 29, 14 }, + { 151, { 405, 447 }, 27, 12 } + }; + ICON_Button(select_print.now == 2, ICON_Stop_0, ico, txt); } inline void Clear_Title_Bar() { @@ -425,7 +376,7 @@ void Draw_More_Icon(const uint8_t line) { } void Draw_Menu_Cursor(const uint8_t line) { - // DWIN_ICON_Show(ICON,ICON_Rectangle, 0, MBASE(line) - 18); + //DWIN_ICON_Show(ICON, ICON_Rectangle, 0, MBASE(line) - 18); DWIN_Draw_Rectangle(1, Rectangle_Color, 0, MBASE(line) - 18, 14, MBASE(line + 1) - 20); } @@ -474,22 +425,33 @@ void Draw_Menu_Line(const uint8_t line, const uint8_t icon=0, const char * const DWIN_Draw_Line(Line_Color, 16, MBASE(line) + 33, 256, MBASE(line) + 34); } -void Draw_Chkb_Line(const uint8_t line, const bool mode) { - DWIN_Draw_Checkbox(Color_White, Color_Bg_Black, 225, MBASE(line) - 1, mode); +void Draw_Menu_LineF(const uint8_t line, const uint8_t icon=0, const __FlashStringHelper *label=nullptr, bool more=false) { + Draw_Menu_Line(line, icon, (char*)label, more); } -// The "Back" label is always on the first line -void Draw_Back_Label() { - if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 129, 72, 156, 84, LBLX, MBASE(0)); - else - DWIN_Frame_AreaCopy(1, 226, 179, 256, 189, LBLX, MBASE(0)); +void Draw_Checkbox_Line(const uint8_t line, const bool ison) { + const uint16_t x = 225, y = EBASE(line) - 2; + DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, x + 5, y, F(ison ? "X" : " ")); + DWIN_Draw_Rectangle(0, Color_White, x + 2, y + 2, x + 16, y + 16); +} + +// AreaCopy for a Menu Item +void Item_AreaCopy(const uint16_t x1, const uint16_t y1, const uint16_t x2, const uint16_t y2, const uint8_t row=0, const uint16_t inset=0, const uint16_t yadd=0) { + DWIN_Frame_AreaCopy(1, x1, y1, x2, y2, LBLX + inset, MBASE(row) + yadd); +} + +// AreaCopy for a Screen Title +void DWIN_Frame_TitleCopy(const uint16_t x1, const uint16_t y1, const uint16_t w, const uint16_t h) { + DWIN_Frame_AreaCopy(1, x1, y1, x1 + w - 1, y1 + h - 1, (DWIN_WIDTH - w) / 2, (TITLE_HEIGHT - h) / 2); } // Draw "Back" line at the top void Draw_Back_First(const bool is_sel=true) { Draw_Menu_Line(0, ICON_Back); - Draw_Back_Label(); + if (HMI_IsChinese()) + Item_AreaCopy(129, 72, 156, 84); + else + Item_AreaCopy(223, 179, 254, 189); if (is_sel) Draw_Menu_Cursor(0); } @@ -562,42 +524,120 @@ inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, T &valref) // Draw Menus // -void DWIN_Draw_Label(const uint16_t y, char *string) { - DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, LBLX, y, string); +void say_move_en(const uint8_t row) { + Item_AreaCopy( 69, 61, 102, 71, row); // "Move" +} +void say_max_en(const uint8_t row) { + Item_AreaCopy( 75, 119, 100, 129, row); // "Max" +} +void say_jerk_en(const uint8_t row) { + Item_AreaCopy(104, 119, 128, 129, row, 30); // "Jerk" +} +void say_speed_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(133, 119, 172, 132, row, inset); // "Speed" } -void DWIN_Draw_Label(const uint16_t y, const __FlashStringHelper *title) { - DWIN_Draw_Label(y, (char*)title); +void say_max_accel_en(const uint8_t row) { + say_max_en(row); // "Max" + Item_AreaCopy( 0, 135, 79, 145, row, 30); // "Acceleration" +} +void say_max_jerk_speed_en(const uint8_t row) { + Item_AreaCopy( 75, 119, 172, 132, row); // "Max Jerk Speed" +} +void say_x_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(175, 119, 184, 129, row, inset); // "X" +} +void say_y_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(184, 119, 192, 129, row, inset); // "Y" +} +void say_z_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(193, 119, 201, 129, row, inset); // "Z" +} +void say_e_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(201, 119, 209, 129, row, inset); // "E" +} +void say_pla_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(131, 164, 153, 174, row, inset); // "PLA" +} +void say_abs_en(const uint16_t inset, const uint8_t row) { + Item_AreaCopy(157, 76, 181, 86, row, inset); // "ABS" +} +void say_home_offs_en(const uint8_t row) { + Item_AreaCopy(153, 193, 225, 203, row); // "Home Offset" +} +void say_probe_offs_en(const uint8_t row) { + Item_AreaCopy(153, 205, 225, 215, row); // "Probe Offset" +} +void say_steps_per_mm_en(const uint8_t row) { + Item_AreaCopy( 1, 151, 91, 161, row); // "Steps-per-mm" } -void draw_move_en(const uint16_t line) { - #ifdef USE_STRING_TITLES - DWIN_Draw_Label(line, F("Move")); - #else - DWIN_Frame_AreaCopy(1, 69, 61, 102, 71, LBLX, line); // "Move" - #endif +void DWIN_Draw_Label(const uint8_t row, char *string) { + DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(row), string); +} +void DWIN_Draw_Label(const uint8_t row, const __FlashStringHelper *title) { + DWIN_Draw_Label(row, (char*)title); } -inline void DWIN_Frame_TitleCopy(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { - DWIN_Frame_AreaCopy(id, x1, y1, x2, y2, 14, 8); +void DWIN_Draw_Signed_Float(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) { + if (value < 0) { + DWIN_Draw_String(true, size, Color_White, bColor, x - 8, y, F("-")); + DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, -value); + } + else { + DWIN_Draw_String(true, size, Color_White, bColor, x - 8, y, F(" ")); + DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, value); + } +} + +void Draw_Edit_Integer3(const uint8_t row, const uint16_t value, const bool active=false) { + DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, active ? Select_Color : Color_Bg_Black, 3, 220, EBASE(row), value); +} + +void Draw_Edit_Integer4(const uint8_t row, const uint16_t value, const bool active=false) { + DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, active ? Select_Color : Color_Bg_Black, 4, 220 - 1 * 8, EBASE(row), value); +} + +void Draw_Edit_Float3(const uint8_t row, const uint16_t value, const bool active=false) { + DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, active ? Select_Color : Color_Bg_Black, 3, UNITFDIGITS, 220 - UNITFDIGITS * 8, EBASE(row), value); +} + +void Draw_Edit_Signed_Float2(const uint8_t row, const float value, const bool active=false) { + DWIN_Draw_Signed_Float(font8x16, active ? Select_Color : Color_Bg_Black, 2, UNITFDIGITS, 220 + 8 - UNITFDIGITS * 8, EBASE(row), value); +} + +void Draw_Edit_Signed_Float3(const uint8_t row, const float value, const bool active=false) { + DWIN_Draw_Signed_Float(font8x16, active ? Select_Color : Color_Bg_Black, 3, UNITFDIGITS, 220 - UNITFDIGITS * 8, EBASE(row), value); +} + +void Draw_Stat_Int(const uint16_t xpos, const uint16_t ypos, const uint16_t value) { + DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, xpos, ypos, value); +} + +void Draw_Stat_Float(const uint16_t xpos, const uint16_t ypos, const float value) { + DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, xpos, ypos, value); } +// +// Prepare Menu +// + void Item_Prepare_Move(const uint8_t row) { if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 159, 70, 200, 84, LBLX, MBASE(row)); + Item_AreaCopy(159, 70, 200, 84, row); else - draw_move_en(MBASE(row)); // "Move" + say_move_en(row); // "Move" Draw_Menu_Line(row, ICON_Axis); Draw_More_Icon(row); } void Item_Prepare_Disable(const uint8_t row) { if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 204, 70, 259, 82, LBLX, MBASE(row)); + Item_AreaCopy(204, 70, 259, 82, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), GET_TEXT_F(MSG_DISABLE_STEPPERS)); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_DISABLE_STEPPERS)); #else - DWIN_Frame_AreaCopy(1, 103, 59, 200, 74, LBLX, MBASE(row)); // "Disable Stepper" + Item_AreaCopy(104, 61, 191, 74, row); // "Disable Stepper" #endif } Draw_Menu_Line(row, ICON_CloseMotor); @@ -605,12 +645,12 @@ void Item_Prepare_Disable(const uint8_t row) { void Item_Prepare_Home(const uint8_t row) { if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 0, 89, 41, 101, LBLX, MBASE(row)); + Item_AreaCopy(0, 89, 41, 101, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), GET_TEXT_F(MSG_AUTO_HOME)); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_AUTO_HOME)); #else - DWIN_Frame_AreaCopy(1, 202, 61, 271, 71, LBLX, MBASE(row)); // "Auto Home" + Item_AreaCopy(202, 61, 271, 71, row); // "Auto Home" #endif } Draw_Menu_Line(row, ICON_Homing); @@ -621,28 +661,27 @@ void Item_Prepare_Home(const uint8_t row) { void Item_Prepare_Offset(const uint8_t row) { if (HMI_IsChinese()) { #if HAS_BED_PROBE - DWIN_Frame_AreaCopy(1, 174, 164, 223, 177, LBLX, MBASE(row)); - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 2, 2, 202, MBASE(row), probe.offset.z * 100); + Item_AreaCopy(174, 164, 223, 177, row); #else - DWIN_Frame_AreaCopy(1, 43, 89, 98, 101, LBLX, MBASE(row)); + Item_AreaCopy(43, 89, 98, 101, row); #endif } else { #if HAS_BED_PROBE #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_ZPROBE_ZOFFSET)); #else - DWIN_Frame_AreaCopy(1, 93, 179, 141, 189, LBLX, MBASE(row)); // "Z-Offset" + Item_AreaCopy( 94, 179, 143, 190, row); // "Z-Offset" #endif - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 2, 2, 202, MBASE(row), probe.offset.z * 100); #else #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), GET_TEXT_F(MSG_SET_HOME_OFFSETS)); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_SET_HOME_OFFSETS)); #else - DWIN_Frame_AreaCopy(1, 1, 76, 106, 86, LBLX, MBASE(row)); // "Set home offsets" + Item_AreaCopy( 1, 76, 103, 87, row); // "Set home offsets" #endif #endif } + Draw_Edit_Signed_Float2(row, BABY_Z_VAR * 100); Draw_Menu_Line(row, ICON_SetHome); } @@ -650,30 +689,28 @@ void Item_Prepare_Home(const uint8_t row) { #if HAS_HOTEND void Item_Prepare_PLA(const uint8_t row) { - if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 100, 89, 151, 101, LBLX, MBASE(row)); - } + if (HMI_IsChinese()) + Item_AreaCopy(100, 89, 151, 101, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), F("Preheat " PREHEAT_1_LABEL)); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_PREHEAT_1)); #else - DWIN_Frame_AreaCopy(1, 107, 76, 156, 86, LBLX, MBASE(row)); // "Preheat" - DWIN_Frame_AreaCopy(1, 157, 76, 181, 86, LBLX + 52, MBASE(row)); // "PLA" + Item_AreaCopy(108, 76, 155, 87, row); // "Preheat" + say_pla_en(52, row); // "PLA" #endif } Draw_Menu_Line(row, ICON_PLAPreheat); } void Item_Prepare_ABS(const uint8_t row) { - if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 180, 89, 233, 100, LBLX, MBASE(row)); - } + if (HMI_IsChinese()) + Item_AreaCopy(180, 89, 233, 100, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), F("Preheat " PREHEAT_2_LABEL)); + DWIN_Draw_Label(row, F("Preheat " PREHEAT_2_LABEL)); #else - DWIN_Frame_AreaCopy(1, 107, 76, 156, 86, LBLX, MBASE(row)); // "Preheat" - DWIN_Frame_AreaCopy(1, 172, 76, 198, 86, LBLX + 52, MBASE(row)); // "ABS" + Item_AreaCopy(108, 76, 155, 87, row); // "Preheat" + say_abs_en(52, row); // "ABS" #endif } Draw_Menu_Line(row, ICON_ABSPreheat); @@ -683,12 +720,12 @@ void Item_Prepare_Home(const uint8_t row) { #if HAS_PREHEAT void Item_Prepare_Cool(const uint8_t row) { if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 1, 104, 56, 117, LBLX, MBASE(row)); + Item_AreaCopy(1, 104, 56, 117, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), GET_TEXT_F(MSG_COOLDOWN)); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_COOLDOWN)); #else - DWIN_Frame_AreaCopy(1, 200, 76, 264, 86, LBLX, MBASE(row)); // "Cooldown" + Item_AreaCopy(200, 76, 264, 86, row); // "Cooldown" #endif } Draw_Menu_Line(row, ICON_Cool); @@ -697,33 +734,34 @@ void Item_Prepare_Home(const uint8_t row) { void Item_Prepare_Lang(const uint8_t row) { if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 239, 134, 266, 146, LBLX, MBASE(row)); + Item_AreaCopy(239, 134, 266, 146, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(row), F("UI Language")); + DWIN_Draw_Label(row, F("UI Language")); #else - DWIN_Frame_AreaCopy(1, 0, 194, 121, 207, LBLX, MBASE(row)); // "Language selection" + Item_AreaCopy(1, 194, 96, 206, row); // "LCD Language" #endif } - DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 226, MBASE(row), HMI_IsChinese() ? F("CN") : F("EN")); + DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 226, EBASE(row), HMI_IsChinese() ? F("CN") : F("EN")); Draw_Menu_Icon(row, ICON_Language); } +#define VISI(T,L,S) (WITHIN(L, T - MROWS, MROWS) || WITHIN(S, 0, MROWS)) + void Draw_Prepare_Menu() { Clear_Main_Window(); const int16_t scroll = MROWS - index_prepare; // Scrolled-up lines #define PSCROL(L) (scroll + (L)) - #define PVISI(L) WITHIN(PSCROL(L), 0, MROWS) + #define PVISI(L) VISI(PREPARE_CASE_TOTAL, L, PSCROL(L)) - if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 133, 1, 160, 13); // "Prepare" - } + if (HMI_IsChinese()) + DWIN_Frame_TitleCopy(133, 1, 28, 13); // "Prepare" else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_PREPARE)); #else - DWIN_Frame_TitleCopy(1, 178, 2, 229, 14); // "Prepare" + DWIN_Frame_TitleCopy(179, 0, 48, 14); // "Prepare" #endif } @@ -746,80 +784,124 @@ void Draw_Prepare_Menu() { if (select_prepare.now) Draw_Menu_Cursor(PSCROL(select_prepare.now)); } -void Item_Control_Info(const uint16_t line) { +// +// Control Menu +// + +void Item_Control_Temp(const uint16_t row) { if (HMI_IsChinese()) - DWIN_Frame_AreaCopy(1, 231, 104, 258, 116, LBLX, line); + Item_AreaCopy(57, 104, 84, 116, row); else { #ifdef USE_STRING_TITLES - DWIN_Draw_Label(line, F("Info")); + DWIN_Draw_Label(row, GET_TEXT_F(MSG_TEMPERATURE)); #else - DWIN_Frame_AreaCopy(1, 0, 104, 24, 114, LBLX, line); + Item_AreaCopy(1, 89, 83, 101, row); #endif } + Draw_Menu_Line(row, ICON_Temperature); + Draw_More_Icon(row); +} + +void Item_Control_Motion(const uint16_t row) { + if (HMI_IsChinese()) + Item_AreaCopy(87, 104, 114, 116, row); + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, GET_TEXT_F(MSG_MOTION)); + #else + Item_AreaCopy(84, 89, 128, 99, row); + #endif + } + Draw_Menu_Line(row, ICON_Motion); + Draw_More_Icon(row); +} + +void Item_Control_Advanced(const uint16_t row) { + if (HMI_IsChinese()) + Item_AreaCopy(62, 180, 120, 192, row); + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, GET_TEXT_F(MSG_ADVANCED_SETTINGS)); + #else + Item_AreaCopy(82, 135, 200, 149, row); + #endif + } + Draw_Menu_Line(row, ICON_AdvSet); + Draw_More_Icon(row); +} + +void Item_Control_Info(const uint16_t row) { + if (HMI_IsChinese()) + Item_AreaCopy(231, 104, 258, 116, row); + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, GET_TEXT_F(MSG_INFO_SCREEN)); + #else + Item_AreaCopy(0, 104, 24, 114, row); + #endif + } + Draw_Menu_Line(row, ICON_Info); + Draw_More_Icon(row); } void Draw_Control_Menu() { Clear_Main_Window(); - #if CONTROL_CASE_TOTAL >= 6 + #if CONTROL_CASE_TOTAL >= TROWS const int16_t scroll = MROWS - index_control; // Scrolled-up lines - #define CSCROL(L) (scroll + (L)) #else - #define CSCROL(L) (L) + constexpr int16_t scroll = 0; #endif - #define CLINE(L) MBASE(CSCROL(L)) - #define CVISI(L) WITHIN(CSCROL(L), 0, MROWS) - - if (CVISI(0)) Draw_Back_First(select_control.now == 0); // < Back + #define CSCROL(L) (scroll + (L)) + #define CLINE(L) MBASE(CSCROL(L)) + #define CVISI(L) VISI(CONTROL_CASE_TOTAL, L, CSCROL(L)) - if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 103, 1, 130, 14); // "Control" + if (HMI_IsChinese()) + DWIN_Frame_TitleCopy(103, 1, 28, 14); // "Control" + else { + #ifdef USE_STRING_HEADINGS + Draw_Title(GET_TEXT_F(MSG_CONTROL)); + #else + DWIN_Frame_TitleCopy(128, 2, 49, 11); // "Control" + #endif + } - DWIN_Frame_AreaCopy(1, 57, 104, 84, 116, LBLX, CLINE(CONTROL_CASE_TEMP)); // Temperature > - DWIN_Frame_AreaCopy(1, 87, 104, 114, 116, LBLX, CLINE(CONTROL_CASE_MOVE)); // Motion > + if (CVISI(0)) Draw_Back_First(select_control.now == 0); // < Back + if (CVISI(CONTROL_CASE_TEMP)) Item_Control_Temp(CSCROL(CONTROL_CASE_TEMP)); // Temperature > + if (CVISI(CONTROL_CASE_MOVE)) Item_Control_Motion(CSCROL(CONTROL_CASE_MOVE)); // Motion > + if (HMI_IsChinese()) { #if ENABLED(EEPROM_SETTINGS) - DWIN_Frame_AreaCopy(1, 117, 104, 172, 116, LBLX, CLINE(CONTROL_CASE_SAVE)); // Store Configuration - DWIN_Frame_AreaCopy(1, 174, 103, 229, 116, LBLX, CLINE(CONTROL_CASE_LOAD)); // Read Configuration - DWIN_Frame_AreaCopy(1, 1, 118, 56, 131, LBLX, CLINE(CONTROL_CASE_RESET)); // Reset Configuration + Item_AreaCopy(117, 104, 172, 116, CSCROL(CONTROL_CASE_SAVE)); // "Store Configuration" + Item_AreaCopy(174, 103, 229, 116, CSCROL(CONTROL_CASE_LOAD)); // "Read Configuration" + Item_AreaCopy( 1, 118, 56, 131, CSCROL(CONTROL_CASE_RESET)); // "Reset Configuration" #endif } else { - #ifdef USE_STRING_HEADINGS - Draw_Title(GET_TEXT_F(MSG_CONTROL)); - #else - DWIN_Frame_TitleCopy(1, 128, 2, 176, 12); // "Control" - #endif #ifdef USE_STRING_TITLES - if (CVISI(CONTROL_CASE_TEMP)) DWIN_Draw_Label(CLINE(CONTROL_CASE_TEMP), GET_TEXT_F(MSG_TEMPERATURE)); - if (CVISI(CONTROL_CASE_MOVE)) DWIN_Draw_Label(CLINE(CONTROL_CASE_MOVE), GET_TEXT_F(MSG_MOTION)); #if ENABLED(EEPROM_SETTINGS) - if (CVISI(CONTROL_CASE_SAVE)) DWIN_Draw_Label(CLINE(CONTROL_CASE_SAVE), GET_TEXT_F(MSG_STORE_EEPROM)); - if (CVISI(CONTROL_CASE_LOAD)) DWIN_Draw_Label(CLINE(CONTROL_CASE_LOAD), GET_TEXT_F(MSG_LOAD_EEPROM)); - if (CVISI(CONTROL_CASE_RESET)) DWIN_Draw_Label(CLINE(CONTROL_CASE_RESET), GET_TEXT_F(MSG_RESTORE_DEFAULTS)); + if (CVISI(CONTROL_CASE_SAVE)) DWIN_Draw_Label(CSCROL(CONTROL_CASE_SAVE), GET_TEXT_F(MSG_STORE_EEPROM)); // "Store Configuration" + if (CVISI(CONTROL_CASE_LOAD)) DWIN_Draw_Label(CSCROL(CONTROL_CASE_LOAD), GET_TEXT_F(MSG_LOAD_EEPROM)); // "Read Configuration" + if (CVISI(CONTROL_CASE_RESET)) DWIN_Draw_Label(CSCROL(CONTROL_CASE_RESET), GET_TEXT_F(MSG_RESTORE_DEFAULTS)); // "Reset Configuration" #endif #else - if (CVISI(CONTROL_CASE_TEMP)) DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX, CLINE(CONTROL_CASE_TEMP)); // Temperature > - if (CVISI(CONTROL_CASE_MOVE)) DWIN_Frame_AreaCopy(1, 84, 89, 128, 99, LBLX, CLINE(CONTROL_CASE_MOVE)); // Motion > #if ENABLED(EEPROM_SETTINGS) - if (CVISI(CONTROL_CASE_SAVE)) DWIN_Frame_AreaCopy(1, 148, 89, 268, 101, LBLX , CLINE(CONTROL_CASE_SAVE)); // "Store Configuration" + if (CVISI(CONTROL_CASE_SAVE)) + Item_AreaCopy(150, 89, 263, 102, CSCROL(CONTROL_CASE_SAVE)); // "Store Configuration" if (CVISI(CONTROL_CASE_LOAD)) { - DWIN_Frame_AreaCopy(1, 26, 104, 57, 114, LBLX , CLINE(CONTROL_CASE_LOAD)); // "Read" - DWIN_Frame_AreaCopy(1, 182, 89, 268, 101, LBLX + 34, CLINE(CONTROL_CASE_LOAD)); // "Configuration" + Item_AreaCopy( 26, 104, 57, 114, CSCROL(CONTROL_CASE_LOAD)); // "Read" + Item_AreaCopy(182, 89, 263, 102, CSCROL(CONTROL_CASE_LOAD), 34); // "Configuration" } if (CVISI(CONTROL_CASE_RESET)) { - DWIN_Frame_AreaCopy(1, 59, 104, 93, 114, LBLX , CLINE(CONTROL_CASE_RESET)); // "Reset" - DWIN_Frame_AreaCopy(1, 182, 89, 268, 101, LBLX + 37, CLINE(CONTROL_CASE_RESET)); // "Configuration" + Item_AreaCopy( 59, 104, 93, 114, CSCROL(CONTROL_CASE_RESET)); // "Reset" + Item_AreaCopy(182, 89, 263, 102, CSCROL(CONTROL_CASE_RESET), 37); // "Configuration" } #endif #endif } - if (CVISI(CONTROL_CASE_ADVSET)) { - DWIN_Draw_Label(CLINE(CONTROL_CASE_ADVSET), GET_TEXT_F(MSG_ADVANCED_SETTINGS)); // Advanced Settings - } - - if (CVISI(CONTROL_CASE_INFO)) Item_Control_Info(CLINE(CONTROL_CASE_INFO)); + if (CVISI(CONTROL_CASE_ADVSET)) Item_Control_Advanced(CSCROL(CONTROL_CASE_ADVSET)); + if (CVISI(CONTROL_CASE_INFO)) Item_Control_Info(CSCROL(CONTROL_CASE_INFO)); if (select_control.now && CVISI(select_control.now)) Draw_Menu_Cursor(CSCROL(select_control.now)); @@ -834,72 +916,69 @@ void Draw_Control_Menu() { } \ } while(0) - _TEMP_ICON(CONTROL_CASE_TEMP, ICON_Temperature, true); - _TEMP_ICON(CONTROL_CASE_MOVE, ICON_Motion, true); - #if ENABLED(EEPROM_SETTINGS) _TEMP_ICON(CONTROL_CASE_SAVE, ICON_WriteEEPROM, false); _TEMP_ICON(CONTROL_CASE_LOAD, ICON_ReadEEPROM, false); _TEMP_ICON(CONTROL_CASE_RESET, ICON_ResumeEEPROM, false); #endif - - _TEMP_ICON(CONTROL_CASE_ADVSET, ICON_AdvSet, true); - _TEMP_ICON(CONTROL_CASE_INFO, ICON_Info, true); } +// +// Tune Menu +// + void Draw_Tune_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 73, 2, 100, 13); - DWIN_Frame_AreaCopy(1, 116, 164, 171, 176, LBLX, MBASE(TUNE_CASE_SPEED)); + DWIN_Frame_TitleCopy(73, 2, 28, 12); // "Tune" + Item_AreaCopy(116, 164, 171, 176, TUNE_CASE_SPEED); #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 1, 134, 56, 146, LBLX, MBASE(TUNE_CASE_TEMP)); + Item_AreaCopy(1, 134, 56, 146, TUNE_CASE_TEMP); #endif #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 58, 134, 113, 146, LBLX, MBASE(TUNE_CASE_BED)); + Item_AreaCopy(58, 134, 113, 146, TUNE_CASE_BED); #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 115, 134, 170, 146, LBLX, MBASE(TUNE_CASE_FAN)); + Item_AreaCopy(115, 134, 170, 146, TUNE_CASE_FAN); #endif #if HAS_ZOFFSET_ITEM - DWIN_Frame_AreaCopy(1, 174, 164, 223, 177, LBLX, MBASE(TUNE_CASE_ZOFF)); + Item_AreaCopy(174, 164, 223, 177, TUNE_CASE_ZOFF); #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_TUNE)); #else - DWIN_Frame_AreaCopy(1, 94, 2, 126, 12, 14, 9); + DWIN_Frame_TitleCopy(94, 2, 33, 11); // "Tune" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(TUNE_CASE_SPEED), GET_TEXT_F(MSG_SPEED)); + DWIN_Draw_Label(TUNE_CASE_SPEED, GET_TEXT_F(MSG_SPEED)); #if HAS_HOTEND - DWIN_Draw_Label(MBASE(TUNE_CASE_TEMP), GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND)); + DWIN_Draw_Label(TUNE_CASE_TEMP, GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND)); #endif #if HAS_HEATED_BED - DWIN_Draw_Label(MBASE(TUNE_CASE_BED), GET_TEXT_F(MSG_UBL_SET_TEMP_BED)); + DWIN_Draw_Label(TUNE_CASE_BED, GET_TEXT_F(MSG_UBL_SET_TEMP_BED)); #endif #if HAS_FAN - DWIN_Draw_Label(MBASE(TUNE_CASE_FAN), GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_Label(TUNE_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); #endif - DWIN_Draw_Label(MBASE(TUNE_CASE_ZOFF), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)); + DWIN_Draw_Label(TUNE_CASE_ZOFF, GET_TEXT_F(MSG_ZPROBE_ZOFFSET)); #else - DWIN_Frame_TitleCopy(1, 94, 2, 126, 12); - DWIN_Frame_AreaCopy(1, 1, 179, 92, 190, LBLX, MBASE(TUNE_CASE_SPEED)); // Print speed + Item_AreaCopy(1, 179, 92, 190, TUNE_CASE_SPEED); // "Print speed" #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 197, 104, 238, 114, LBLX, MBASE(TUNE_CASE_TEMP)); // Hotend... - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 44, MBASE(TUNE_CASE_TEMP)); // ...Temperature + Item_AreaCopy(197, 104, 238, 114, TUNE_CASE_TEMP); // "Hotend" + Item_AreaCopy( 1, 89, 83, 101, TUNE_CASE_TEMP, 44); // "Temperature" #endif #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 240, 104, 264, 114, LBLX, MBASE(TUNE_CASE_BED)); // Bed... - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 27, MBASE(TUNE_CASE_BED)); // ...Temperature + Item_AreaCopy(240, 104, 264, 114, TUNE_CASE_BED); // "Bed" + Item_AreaCopy( 1, 89, 83, 101, TUNE_CASE_BED, 27); // "Temperature" #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 0, 119, 64, 132, LBLX, MBASE(TUNE_CASE_FAN)); // Fan speed + Item_AreaCopy(0, 119, 64, 132, TUNE_CASE_FAN); // "Fan speed" #endif #if HAS_ZOFFSET_ITEM - DWIN_Frame_AreaCopy(1, 93, 179, 141, 189, LBLX, MBASE(TUNE_CASE_ZOFF)); // Z-offset + Item_AreaCopy(93, 179, 141, 189, TUNE_CASE_ZOFF); // "Z-offset" #endif #endif } @@ -908,90 +987,64 @@ void Draw_Tune_Menu() { if (select_tune.now) Draw_Menu_Cursor(select_tune.now); Draw_Menu_Line(TUNE_CASE_SPEED, ICON_Speed); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_SPEED), feedrate_percentage); + Draw_Edit_Integer3(TUNE_CASE_SPEED, feedrate_percentage); #if HAS_HOTEND Draw_Menu_Line(TUNE_CASE_TEMP, ICON_HotendTemp); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_TEMP), thermalManager.degTargetHotend(0)); + Draw_Edit_Integer3(TUNE_CASE_TEMP, thermalManager.degTargetHotend(0)); #endif #if HAS_HEATED_BED Draw_Menu_Line(TUNE_CASE_BED, ICON_BedTemp); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_BED), thermalManager.degTargetBed()); + Draw_Edit_Integer3(TUNE_CASE_BED, thermalManager.degTargetBed()); #endif #if HAS_FAN Draw_Menu_Line(TUNE_CASE_FAN, ICON_FanSpeed); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_FAN), thermalManager.fan_speed[0]); + Draw_Edit_Integer3(TUNE_CASE_FAN, thermalManager.fan_speed[0]); #endif #if HAS_ZOFFSET_ITEM Draw_Menu_Line(TUNE_CASE_ZOFF, ICON_Zoffset); - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 2, 2, 202, MBASE(TUNE_CASE_ZOFF), BABY_Z_VAR * 100); + Draw_Edit_Signed_Float2(TUNE_CASE_ZOFF, BABY_Z_VAR * 100); #endif } -void draw_max_en(const uint16_t line) { - DWIN_Frame_AreaCopy(1, 245, 119, 269, 129, LBLX, line); // "Max" -} -void draw_max_accel_en(const uint16_t line) { - draw_max_en(line); - DWIN_Frame_AreaCopy(1, 1, 135, 79, 145, LBLX + 27, line); // "Acceleration" -} -void draw_speed_en(const uint16_t inset, const uint16_t line) { - DWIN_Frame_AreaCopy(1, 184, 119, 224, 132, LBLX + inset, line); // "Speed" -} -void draw_jerk_en(const uint16_t line) { - DWIN_Frame_AreaCopy(1, 64, 119, 106, 129, LBLX + 27, line); // "Jerk" -} -void draw_steps_per_mm(const uint16_t line) { - DWIN_Frame_AreaCopy(1, 1, 151, 101, 161, LBLX, line); // "Steps-per-mm" -} -void say_x(const uint16_t inset, const uint16_t line) { - DWIN_Frame_AreaCopy(1, 95, 104, 102, 114, LBLX + inset, line); // "X" -} -void say_y(const uint16_t inset, const uint16_t line) { - DWIN_Frame_AreaCopy(1, 104, 104, 110, 114, LBLX + inset, line); // "Y" -} -void say_z(const uint16_t inset, const uint16_t line) { - DWIN_Frame_AreaCopy(1, 112, 104, 120, 114, LBLX + inset, line); // "Z" -} -void say_e(const uint16_t inset, const uint16_t line) { - DWIN_Frame_AreaCopy(1, 237, 119, 244, 129, LBLX + inset, line); // "E" -} - +// +// Motion Menu +// void Draw_Motion_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Motion" - DWIN_Frame_AreaCopy(1, 173, 133, 228, 147, LBLX, MBASE(MOTION_CASE_RATE)); // Max speed - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX, MBASE(MOTION_CASE_ACCEL)); // Max... - DWIN_Frame_AreaCopy(1, 28, 149, 69, 161, LBLX + 27, MBASE(MOTION_CASE_ACCEL) + 1); // ...Acceleration + DWIN_Frame_TitleCopy(1, 16, 28, 13); // "Motion" + Item_AreaCopy(173, 133, 228, 147, MOTION_CASE_RATE); // Max speed + Item_AreaCopy(173, 133, 200, 147, MOTION_CASE_ACCEL); // Max... + Item_AreaCopy(28, 149, 69, 161, MOTION_CASE_ACCEL, 30, 1); // ...Acceleration #if HAS_CLASSIC_JERK - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX, MBASE(MOTION_CASE_JERK)); // Max... - DWIN_Frame_AreaCopy(1, 1, 180, 28, 192, LBLX + 27, MBASE(MOTION_CASE_JERK) + 1); // ... - DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 54, MBASE(MOTION_CASE_JERK)); // ...Jerk + Item_AreaCopy(173, 133, 200, 147, MOTION_CASE_JERK); // Max... + Item_AreaCopy(1, 180, 28, 192, MOTION_CASE_JERK, 30, 1); // ... + Item_AreaCopy(202, 133, 228, 147, MOTION_CASE_JERK, 57); // ...Jerk #endif - DWIN_Frame_AreaCopy(1, 153, 148, 194, 161, LBLX, MBASE(MOTION_CASE_STEPS)); // Flow ratio + Item_AreaCopy(153, 148, 194, 161, MOTION_CASE_STEPS); // Flow ratio } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_MOTION)); #else - DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Motion" + DWIN_Frame_TitleCopy(144, 16, 46, 11); // "Motion" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(MOTION_CASE_RATE), F("Feedrate")); - DWIN_Draw_Label(MBASE(MOTION_CASE_ACCEL), GET_TEXT_F(MSG_ACCELERATION)); + DWIN_Draw_Label(MOTION_CASE_RATE, F("Feedrate")); // "Feedrate" + DWIN_Draw_Label(MOTION_CASE_ACCEL, GET_TEXT_F(MSG_ACCELERATION)); // "Acceleration" #if HAS_CLASSIC_JERK - DWIN_Draw_Label(MBASE(MOTION_CASE_JERK), GET_TEXT_F(MSG_JERK)); + DWIN_Draw_Label(MOTION_CASE_JERK, GET_TEXT_F(MSG_JERK)); // "Jerk" #endif - DWIN_Draw_Label(MBASE(MOTION_CASE_STEPS), GET_TEXT_F(MSG_STEPS_PER_MM)); + DWIN_Draw_Label(MOTION_CASE_STEPS, GET_TEXT_F(MSG_STEPS_PER_MM)); // "Steps/mm" #else - draw_max_en(MBASE(MOTION_CASE_RATE)); draw_speed_en(27, MBASE(MOTION_CASE_RATE)); // "Max Speed" - draw_max_accel_en(MBASE(MOTION_CASE_ACCEL)); // "Max Acceleration" + say_max_en(MOTION_CASE_RATE); say_speed_en(30, MOTION_CASE_RATE); // "Max Speed" + say_max_accel_en(MOTION_CASE_ACCEL); // "Max Acceleration" #if HAS_CLASSIC_JERK - draw_max_en(MBASE(MOTION_CASE_JERK)); draw_jerk_en(MBASE(MOTION_CASE_JERK)); // "Max Jerk" + say_max_en(MOTION_CASE_JERK); say_jerk_en(MOTION_CASE_JERK); // "Max Jerk" #endif - draw_steps_per_mm(MBASE(MOTION_CASE_STEPS)); // "Steps-per-mm" + say_steps_per_mm_en(MOTION_CASE_STEPS); // "Steps-per-mm" #endif } @@ -1020,9 +1073,9 @@ void Draw_Motion_Menu() { if (toohigh) { DWIN_ICON_Show(ICON, ICON_TempTooHigh, 102, 165); if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 103, 371, 237, 386, 52, 285); + DWIN_Frame_AreaCopy(1, 103, 371, 237, 386, 52, 285); // Temp Too High DWIN_Frame_AreaCopy(1, 151, 389, 185, 402, 187, 285); - DWIN_Frame_AreaCopy(1, 189, 389, 271, 402, 95, 310); + DWIN_Frame_AreaCopy(1, 189, 389, 271, 402, 95, 310); } else { DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, 36, 300, F("Nozzle or Bed temperature")); @@ -1032,7 +1085,7 @@ void Draw_Motion_Menu() { else { DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 165); if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 103, 371, 270, 386, 52, 285); + DWIN_Frame_AreaCopy(1, 103, 371, 270, 386, 52, 285); // Tenp Too Low DWIN_Frame_AreaCopy(1, 189, 389, 271, 402, 95, 310); } else { @@ -1055,7 +1108,7 @@ void Draw_Popup_Bkgd_60() { Draw_Popup_Bkgd_60(); DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 105); if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 103, 371, 136, 386, 69, 240); + DWIN_Frame_AreaCopy(1, 103, 371, 136, 386, 69, 240); // Nozzle Too Cold DWIN_Frame_AreaCopy(1, 170, 371, 270, 386, 69 + 33, 240); DWIN_ICON_Show(ICON, ICON_Confirm_C, 86, 280); } @@ -1071,7 +1124,7 @@ void Popup_Window_Resume() { Clear_Popup_Area(); Draw_Popup_Bkgd_105(); if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 160, 338, 235, 354, 98, 135); + DWIN_Frame_AreaCopy(1, 160, 338, 235, 354, 98, 135); // Resume Interrupted Print DWIN_Frame_AreaCopy(1, 103, 321, 271, 335, 52, 192); DWIN_ICON_Show(ICON, ICON_Cancel_C, 26, 307); DWIN_ICON_Show(ICON, ICON_Continue_C, 146, 307); @@ -1090,7 +1143,7 @@ void Popup_Window_Home(const bool parking/*=false*/) { Draw_Popup_Bkgd_60(); DWIN_ICON_Show(ICON, ICON_BLTouch, 101, 105); if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 0, 371, 33, 386, 85, 240); + DWIN_Frame_AreaCopy(1, 0, 371, 33, 386, 85, 240); // Wait for Move to Complete DWIN_Frame_AreaCopy(1, 203, 286, 271, 302, 118, 240); DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280); } @@ -1107,7 +1160,7 @@ void Popup_Window_Home(const bool parking/*=false*/) { Draw_Popup_Bkgd_60(); DWIN_ICON_Show(ICON, ICON_AutoLeveling, 101, 105); if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 0, 371, 100, 386, 84, 240); + DWIN_Frame_AreaCopy(1, 0, 371, 100, 386, 84, 240); // Wait for Leveling DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280); } else { @@ -1132,9 +1185,9 @@ void Popup_window_PauseOrStop() { Clear_Main_Window(); Draw_Popup_Bkgd_60(); if (HMI_IsChinese()) { - if (select_print.now == 1) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150); - else if (select_print.now == 2) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150); - DWIN_Frame_AreaCopy(1, 220, 304, 264, 319, 130, 150); + if (select_print.now == 1) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150); // Pause + else if (select_print.now == 2) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150); // Stop + DWIN_Frame_AreaCopy(1, 220, 304, 264, 319, 130, 150); // Print DWIN_ICON_Show(ICON, ICON_Confirm_C, 26, 280); DWIN_ICON_Show(ICON, ICON_Cancel_C, 146, 280); } @@ -1148,36 +1201,40 @@ void Popup_window_PauseOrStop() { } void Draw_Printing_Screen() { + const uint16_t y = 168; if (HMI_IsChinese()) { - DWIN_Frame_AreaCopy(1, 30, 1, 71, 14, 14, 9); // Tune - DWIN_Frame_AreaCopy(1, 0, 72, 63, 86, 41, 188); // Pause - DWIN_Frame_AreaCopy(1, 65, 72, 128, 86, 176, 188); // Stop + DWIN_Frame_TitleCopy(30, 1, 42, 14); // "Printing" + DWIN_Frame_AreaCopy(1, 0, 72, 63, 86, 43, y); // "Printing Time" + DWIN_Frame_AreaCopy(1, 65, 72, 128, 86, 178, y); // "Remain" } else { - DWIN_Frame_AreaCopy(1, 40, 2, 92, 14, 14, 9); // Tune - DWIN_Frame_AreaCopy(1, 0, 44, 96, 58, 41, 188); // Pause - DWIN_Frame_AreaCopy(1, 98, 44, 152, 58, 176, 188); // Stop + DWIN_Frame_TitleCopy(42, 0, 47, 14); // "Printing" + DWIN_Frame_AreaCopy(1, 1, 43, 97, 59, 43, y); // "Printing Time" + DWIN_Frame_AreaCopy(1, 100, 43, 152, 56, 178, y); // "Remain" } } void Draw_Print_ProgressBar() { + constexpr uint16_t y = 93, h = 21; DWIN_ICON_Show(ICON, ICON_Bar, 15, 93); - DWIN_Draw_Rectangle(1, BarFill_Color, 16 + _card_percent * 240 / 100, 93, 256, 113); - DWIN_Draw_IntValue(true, true, 0, font8x16, Percent_Color, Color_Bg_Black, 2, 117, 133, _card_percent); - DWIN_Draw_String(false, font8x16, Percent_Color, Color_Bg_Black, 133, 133, F("%")); + DWIN_Draw_Rectangle(1, BarFill_Color, 16 + _card_percent * 240 / 100, y, 256, y + h - 1); + DWIN_Draw_IntValue(true, true, 0, font8x16, Percent_Color, Color_Bg_Black, 2, 117, y + 40, _card_percent); + DWIN_Draw_String(false, font8x16, Percent_Color, Color_Bg_Black, 133, y + 40, F("%")); } void Draw_Print_ProgressElapsed() { + constexpr uint16_t x = 45, y = 192; duration_t elapsed = print_job_timer.duration(); // print timer - DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 42, 212, elapsed.value / 3600); - DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 58, 212, F(":")); - DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 66, 212, (elapsed.value % 3600) / 60); + DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, x, y, elapsed.value / 3600); + DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, x + 8 * 2, y, F(":")); + DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, x + 8 * 3, y, (elapsed.value % 3600) / 60); } void Draw_Print_ProgressRemain() { - DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 176, 212, _remain_time / 3600); - DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 192, 212, F(":")); - DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 200, 212, (_remain_time % 3600) / 60); + constexpr uint16_t x = 179, y = 192; + DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, x, y, _remain_time / 3600); + DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, x + 8 * 2, y, F(":")); + DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, x + 8 * 3, y, (_remain_time % 3600) / 60); } void Goto_PrintProcess() { @@ -1187,7 +1244,7 @@ void Goto_PrintProcess() { Draw_Printing_Screen(); ICON_Tune(); - if (printingIsPaused()) ICON_Continue(); else ICON_Pause(); + ICON_ResumeOrPause(); ICON_Stop(); // Copy into filebuf string before entry @@ -1195,8 +1252,8 @@ void Goto_PrintProcess() { const int8_t npos = _MAX(0U, DWIN_WIDTH - strlen(name) * MENU_CHR_W) / 2; DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, npos, 60, name); - DWIN_ICON_Show(ICON, ICON_PrintTime, 17, 193); - DWIN_ICON_Show(ICON, ICON_RemainTime, 150, 191); + DWIN_ICON_Show(ICON, ICON_PrintTime, 17, 163); + DWIN_ICON_Show(ICON, ICON_RemainTime, 150, 161); Draw_Print_ProgressBar(); Draw_Print_ProgressElapsed(); @@ -1209,12 +1266,12 @@ void Goto_MainMenu() { Clear_Main_Window(); if (HMI_IsChinese()) - DWIN_Frame_TitleCopy(1, 2, 2, 27, 14); // "Home" + DWIN_Frame_TitleCopy(2, 2, 26, 13); // "Home" etc else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_MAIN)); #else - DWIN_Frame_TitleCopy(1, 0, 2, 39, 12); + DWIN_Frame_TitleCopy(0, 2, 40, 11); // "Home" #endif } @@ -1223,7 +1280,7 @@ void Goto_MainMenu() { ICON_Print(); ICON_Prepare(); ICON_Control(); - TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(select_page.now == 3); + TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); } inline ENCODER_DiffState get_encoder_state() { @@ -1252,41 +1309,44 @@ void HMI_Move_Done(const AxisEnum axis) { void HMI_Move_X() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_X_scaled)) - return HMI_Move_Done(X_AXIS); - LIMIT(HMI_ValueStruct.Move_X_scaled, (X_MIN_POS) * MINUNITMULT, (X_MAX_POS) * MINUNITMULT); - current_position.x = HMI_ValueStruct.Move_X_scaled / MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(1), HMI_ValueStruct.Move_X_scaled); - DWIN_UpdateLCD(); - HMI_Plan_Move(homing_feedrate(X_AXIS)); + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_X_scaled)) { + Draw_Edit_Float3(1, HMI_ValueStruct.Move_X_scaled); + return HMI_Move_Done(X_AXIS); } + LIMIT(HMI_ValueStruct.Move_X_scaled, (X_MIN_POS) * MINUNITMULT, (X_MAX_POS) * MINUNITMULT); + current_position.x = HMI_ValueStruct.Move_X_scaled / MINUNITMULT; + Draw_Edit_Float3(1, HMI_ValueStruct.Move_X_scaled, true); + DWIN_UpdateLCD(); + HMI_Plan_Move(homing_feedrate(X_AXIS)); } void HMI_Move_Y() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Y_scaled)) - return HMI_Move_Done(Y_AXIS); - LIMIT(HMI_ValueStruct.Move_Y_scaled, (Y_MIN_POS) * MINUNITMULT, (Y_MAX_POS) * MINUNITMULT); - current_position.y = HMI_ValueStruct.Move_Y_scaled / MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(2), HMI_ValueStruct.Move_Y_scaled); - DWIN_UpdateLCD(); - HMI_Plan_Move(homing_feedrate(Y_AXIS)); + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Y_scaled)) { + Draw_Edit_Float3(2, HMI_ValueStruct.Move_Y_scaled); + return HMI_Move_Done(Y_AXIS); } + LIMIT(HMI_ValueStruct.Move_Y_scaled, (Y_MIN_POS) * MINUNITMULT, (Y_MAX_POS) * MINUNITMULT); + current_position.y = HMI_ValueStruct.Move_Y_scaled / MINUNITMULT; + Draw_Edit_Float3(2, HMI_ValueStruct.Move_Y_scaled, true); + DWIN_UpdateLCD(); + HMI_Plan_Move(homing_feedrate(Y_AXIS)); } void HMI_Move_Z() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Z_scaled)) - return HMI_Move_Done(Z_AXIS); - LIMIT(HMI_ValueStruct.Move_Z_scaled, (Z_MIN_POS) * MINUNITMULT, (Z_MAX_POS) * MINUNITMULT); - current_position.z = HMI_ValueStruct.Move_Z_scaled / MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(3), HMI_ValueStruct.Move_Z_scaled); - DWIN_UpdateLCD(); - HMI_Plan_Move(homing_feedrate(Z_AXIS)); + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Z_scaled)) { + Draw_Edit_Float3(3, HMI_ValueStruct.Move_Z_scaled); + return HMI_Move_Done(Z_AXIS); } + LIMIT(HMI_ValueStruct.Move_Z_scaled, (Z_MIN_POS) * MINUNITMULT, (Z_MAX_POS) * MINUNITMULT); + current_position.z = HMI_ValueStruct.Move_Z_scaled / MINUNITMULT; + Draw_Edit_Float3(3, HMI_ValueStruct.Move_Z_scaled, true); + DWIN_UpdateLCD(); + HMI_Plan_Move(homing_feedrate(Z_AXIS)); } #if HAS_HOTEND @@ -1294,17 +1354,17 @@ void HMI_Move_Z() { void HMI_Move_E() { static float last_E_scaled = 0; ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_E_scaled)) { - last_E_scaled = HMI_ValueStruct.Move_E_scaled; - return HMI_Move_Done(E_AXIS); - } - LIMIT(HMI_ValueStruct.Move_E_scaled, last_E_scaled - (EXTRUDE_MAXLENGTH) * MINUNITMULT, last_E_scaled + (EXTRUDE_MAXLENGTH) * MINUNITMULT); - current_position.e = HMI_ValueStruct.Move_E_scaled / MINUNITMULT; - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(4), HMI_ValueStruct.Move_E_scaled); - DWIN_UpdateLCD(); - HMI_Plan_Move(MMM_TO_MMS(FEEDRATE_E)); + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_E_scaled)) { + last_E_scaled = HMI_ValueStruct.Move_E_scaled; + Draw_Edit_Signed_Float3(4, last_E_scaled); + return HMI_Move_Done(E_AXIS); } + LIMIT(HMI_ValueStruct.Move_E_scaled, last_E_scaled - (EXTRUDE_MAXLENGTH) * MINUNITMULT, last_E_scaled + (EXTRUDE_MAXLENGTH) * MINUNITMULT); + current_position.e = HMI_ValueStruct.Move_E_scaled / MINUNITMULT; + Draw_Edit_Signed_Float3(4, HMI_ValueStruct.Move_E_scaled, true); + DWIN_UpdateLCD(); + HMI_Plan_Move(MMM_TO_MMS(FEEDRATE_E)); } #endif @@ -1315,32 +1375,31 @@ void HMI_Move_Z() { void HMI_Zoffset() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - uint8_t zoff_line; - switch (HMI_ValueStruct.show_mode) { - case -4: zoff_line = PREPARE_CASE_ZOFF + MROWS - index_prepare; break; - default: zoff_line = TUNE_CASE_ZOFF + MROWS - index_tune; - } - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.offset_value)) { - EncoderRate.enabled = false; - #if HAS_BED_PROBE - probe.offset.z = dwin_zoffset; - TERN_(EEPROM_SETTINGS, settings.save()); - #endif - checkkey = HMI_ValueStruct.show_mode == -4 ? Prepare : Tune; - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 2, 2, 202, MBASE(zoff_line), TERN(HAS_BED_PROBE, BABY_Z_VAR * 100, HMI_ValueStruct.offset_value)); - DWIN_UpdateLCD(); - return; - } - LIMIT(HMI_ValueStruct.offset_value, (Z_PROBE_OFFSET_RANGE_MIN) * 100, (Z_PROBE_OFFSET_RANGE_MAX) * 100); - last_zoffset = dwin_zoffset; - dwin_zoffset = HMI_ValueStruct.offset_value / 100.0f; - #if EITHER(BABYSTEP_ZPROBE_OFFSET, JUST_BABYSTEP) - if (BABYSTEP_ALLOWED()) babystep.add_mm(Z_AXIS, dwin_zoffset - last_zoffset); + if (encoder_diffState == ENCODER_DIFF_NO) return; + uint8_t zoff_line; + switch (HMI_ValueStruct.show_mode) { + case -4: zoff_line = PREPARE_CASE_ZOFF + MROWS - index_prepare; break; + default: zoff_line = TUNE_CASE_ZOFF + MROWS - index_tune; + } + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.offset_value)) { + EncoderRate.enabled = false; + #if HAS_BED_PROBE + probe.offset.z = dwin_zoffset; + TERN_(EEPROM_SETTINGS, settings.save()); #endif - DWIN_Draw_Signed_Float(font8x16, Select_Color, 2, 2, 202, MBASE(zoff_line), HMI_ValueStruct.offset_value); + checkkey = HMI_ValueStruct.show_mode == -4 ? Prepare : Tune; + Draw_Edit_Signed_Float2(zoff_line, TERN(HAS_BED_PROBE, BABY_Z_VAR * 100, HMI_ValueStruct.offset_value)); DWIN_UpdateLCD(); + return; } + LIMIT(HMI_ValueStruct.offset_value, (Z_PROBE_OFFSET_RANGE_MIN) * 100, (Z_PROBE_OFFSET_RANGE_MAX) * 100); + last_zoffset = dwin_zoffset; + dwin_zoffset = HMI_ValueStruct.offset_value / 100.0f; + #if EITHER(BABYSTEP_ZPROBE_OFFSET, JUST_BABYSTEP) + if (BABYSTEP_ALLOWED()) babystep.add_mm(Z_AXIS, dwin_zoffset - last_zoffset); + #endif + Draw_Edit_Signed_Float2(zoff_line, HMI_ValueStruct.offset_value, true); + DWIN_UpdateLCD(); } #endif // HAS_ZOFFSET_ITEM @@ -1349,41 +1408,40 @@ void HMI_Move_Z() { void HMI_ETemp() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - uint8_t temp_line; - switch (HMI_ValueStruct.show_mode) { - case -1: temp_line = TEMP_CASE_TEMP; break; - case -2: temp_line = PREHEAT_CASE_TEMP; break; - case -3: temp_line = PREHEAT_CASE_TEMP; break; - default: temp_line = TUNE_CASE_TEMP + MROWS - index_tune; + if (encoder_diffState == ENCODER_DIFF_NO) return; + uint8_t temp_line; + switch (HMI_ValueStruct.show_mode) { + case -1: temp_line = TEMP_CASE_TEMP; break; + case -2: temp_line = PREHEAT_CASE_TEMP; break; + case -3: temp_line = PREHEAT_CASE_TEMP; break; + default: temp_line = TUNE_CASE_TEMP + MROWS - index_tune; + } + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.E_Temp)) { + EncoderRate.enabled = false; + if (HMI_ValueStruct.show_mode == -2) { + checkkey = PLAPreheat; + ui.material_preset[0].hotend_temp = HMI_ValueStruct.E_Temp; + Draw_Edit_Integer3(temp_line, ui.material_preset[0].hotend_temp); + return; } - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.E_Temp)) { - EncoderRate.enabled = false; - if (HMI_ValueStruct.show_mode == -2) { - checkkey = PLAPreheat; - ui.material_preset[0].hotend_temp = HMI_ValueStruct.E_Temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(temp_line), ui.material_preset[0].hotend_temp); - return; - } - else if (HMI_ValueStruct.show_mode == -3) { - checkkey = ABSPreheat; - ui.material_preset[1].hotend_temp = HMI_ValueStruct.E_Temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(temp_line), ui.material_preset[1].hotend_temp); - return; - } - else if (HMI_ValueStruct.show_mode == -1) // Temperature - checkkey = TemperatureID; - else - checkkey = Tune; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(temp_line), HMI_ValueStruct.E_Temp); - thermalManager.setTargetHotend(HMI_ValueStruct.E_Temp, 0); + else if (HMI_ValueStruct.show_mode == -3) { + checkkey = ABSPreheat; + ui.material_preset[1].hotend_temp = HMI_ValueStruct.E_Temp; + Draw_Edit_Integer3(temp_line, ui.material_preset[1].hotend_temp); return; } - // E_Temp limit - LIMIT(HMI_ValueStruct.E_Temp, HEATER_0_MINTEMP, thermalManager.hotend_max_target(0)); - // E_Temp value - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(temp_line), HMI_ValueStruct.E_Temp); + else if (HMI_ValueStruct.show_mode == -1) // Temperature + checkkey = TemperatureID; + else + checkkey = Tune; + Draw_Edit_Integer3(temp_line, HMI_ValueStruct.E_Temp); + thermalManager.setTargetHotend(HMI_ValueStruct.E_Temp, 0); + return; } + // E_Temp limit + LIMIT(HMI_ValueStruct.E_Temp, HEATER_0_MINTEMP, thermalManager.hotend_max_target(0)); + // E_Temp value + Draw_Edit_Integer3(temp_line, HMI_ValueStruct.E_Temp, true); } #endif // HAS_HOTEND @@ -1392,41 +1450,40 @@ void HMI_Move_Z() { void HMI_BedTemp() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - uint8_t bed_line; - switch (HMI_ValueStruct.show_mode) { - case -1: bed_line = TEMP_CASE_BED; break; - case -2: bed_line = PREHEAT_CASE_BED; break; - case -3: bed_line = PREHEAT_CASE_BED; break; - default: bed_line = TUNE_CASE_BED + MROWS - index_tune; + if (encoder_diffState == ENCODER_DIFF_NO) return; + uint8_t bed_line; + switch (HMI_ValueStruct.show_mode) { + case -1: bed_line = TEMP_CASE_BED; break; + case -2: bed_line = PREHEAT_CASE_BED; break; + case -3: bed_line = PREHEAT_CASE_BED; break; + default: bed_line = TUNE_CASE_BED + MROWS - index_tune; + } + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Bed_Temp)) { + EncoderRate.enabled = false; + if (HMI_ValueStruct.show_mode == -2) { + checkkey = PLAPreheat; + ui.material_preset[0].bed_temp = HMI_ValueStruct.Bed_Temp; + Draw_Edit_Integer3(bed_line, ui.material_preset[0].bed_temp); + return; } - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Bed_Temp)) { - EncoderRate.enabled = false; - if (HMI_ValueStruct.show_mode == -2) { - checkkey = PLAPreheat; - ui.material_preset[0].bed_temp = HMI_ValueStruct.Bed_Temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(bed_line), ui.material_preset[0].bed_temp); - return; - } - else if (HMI_ValueStruct.show_mode == -3) { - checkkey = ABSPreheat; - ui.material_preset[1].bed_temp = HMI_ValueStruct.Bed_Temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(bed_line), ui.material_preset[1].bed_temp); - return; - } - else if (HMI_ValueStruct.show_mode == -1) - checkkey = TemperatureID; - else - checkkey = Tune; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(bed_line), HMI_ValueStruct.Bed_Temp); - thermalManager.setTargetBed(HMI_ValueStruct.Bed_Temp); + else if (HMI_ValueStruct.show_mode == -3) { + checkkey = ABSPreheat; + ui.material_preset[1].bed_temp = HMI_ValueStruct.Bed_Temp; + Draw_Edit_Integer3(bed_line, ui.material_preset[1].bed_temp); return; } - // Bed_Temp limit - LIMIT(HMI_ValueStruct.Bed_Temp, BED_MINTEMP, BED_MAX_TARGET); - // Bed_Temp value - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(bed_line), HMI_ValueStruct.Bed_Temp); + else if (HMI_ValueStruct.show_mode == -1) + checkkey = TemperatureID; + else + checkkey = Tune; + Draw_Edit_Integer3(bed_line, HMI_ValueStruct.Bed_Temp); + thermalManager.setTargetBed(HMI_ValueStruct.Bed_Temp); + return; } + // Bed_Temp limit + LIMIT(HMI_ValueStruct.Bed_Temp, BED_MINTEMP, BED_MAX_TARGET); + // Bed_Temp value + Draw_Edit_Integer3(bed_line, HMI_ValueStruct.Bed_Temp, true); } #endif // HAS_HEATED_BED @@ -1435,147 +1492,141 @@ void HMI_Move_Z() { void HMI_FanSpeed() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - uint8_t fan_line; - switch (HMI_ValueStruct.show_mode) { - case -1: fan_line = TEMP_CASE_FAN; break; - case -2: fan_line = PREHEAT_CASE_FAN; break; - case -3: fan_line = PREHEAT_CASE_FAN; break; - default: fan_line = TUNE_CASE_FAN + MROWS - index_tune; - } + if (encoder_diffState == ENCODER_DIFF_NO) return; + uint8_t fan_line; + switch (HMI_ValueStruct.show_mode) { + case -1: fan_line = TEMP_CASE_FAN; break; + case -2: fan_line = PREHEAT_CASE_FAN; break; + case -3: fan_line = PREHEAT_CASE_FAN; break; + default: fan_line = TUNE_CASE_FAN + MROWS - index_tune; + } - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Fan_speed)) { - EncoderRate.enabled = false; - if (HMI_ValueStruct.show_mode == -2) { - checkkey = PLAPreheat; - ui.material_preset[0].fan_speed = HMI_ValueStruct.Fan_speed; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(fan_line), ui.material_preset[0].fan_speed); - return; - } - else if (HMI_ValueStruct.show_mode == -3) { - checkkey = ABSPreheat; - ui.material_preset[1].fan_speed = HMI_ValueStruct.Fan_speed; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(fan_line), ui.material_preset[1].fan_speed); - return; - } - else if (HMI_ValueStruct.show_mode == -1) - checkkey = TemperatureID; - else - checkkey = Tune; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(fan_line), HMI_ValueStruct.Fan_speed); - thermalManager.set_fan_speed(0, HMI_ValueStruct.Fan_speed); + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Fan_speed)) { + EncoderRate.enabled = false; + if (HMI_ValueStruct.show_mode == -2) { + checkkey = PLAPreheat; + ui.material_preset[0].fan_speed = HMI_ValueStruct.Fan_speed; + Draw_Edit_Integer3(fan_line, ui.material_preset[0].fan_speed); return; } - // Fan_speed limit - LIMIT(HMI_ValueStruct.Fan_speed, 0, 255); - // Fan_speed value - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(fan_line), HMI_ValueStruct.Fan_speed); + else if (HMI_ValueStruct.show_mode == -3) { + checkkey = ABSPreheat; + ui.material_preset[1].fan_speed = HMI_ValueStruct.Fan_speed; + Draw_Edit_Integer3(fan_line, ui.material_preset[1].fan_speed); + return; + } + else if (HMI_ValueStruct.show_mode == -1) + checkkey = TemperatureID; + else + checkkey = Tune; + Draw_Edit_Integer3(fan_line, HMI_ValueStruct.Fan_speed); + thermalManager.set_fan_speed(0, HMI_ValueStruct.Fan_speed); + return; } + // Fan_speed limit + LIMIT(HMI_ValueStruct.Fan_speed, 0, 255); + // Fan_speed value + Draw_Edit_Integer3(fan_line, HMI_ValueStruct.Fan_speed, true); } #endif // HAS_PREHEAT && HAS_FAN void HMI_PrintSpeed() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.print_speed)) { - checkkey = Tune; - EncoderRate.enabled = false; - feedrate_percentage = HMI_ValueStruct.print_speed; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(select_tune.now + MROWS - index_tune), HMI_ValueStruct.print_speed); - return; - } - // print_speed limit - LIMIT(HMI_ValueStruct.print_speed, MIN_PRINT_SPEED, MAX_PRINT_SPEED); - // print_speed value - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(select_tune.now + MROWS - index_tune), HMI_ValueStruct.print_speed); + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.print_speed)) { + checkkey = Tune; + EncoderRate.enabled = false; + feedrate_percentage = HMI_ValueStruct.print_speed; + Draw_Edit_Integer3(select_tune.now + MROWS - index_tune, HMI_ValueStruct.print_speed); + return; } + // print_speed limit + LIMIT(HMI_ValueStruct.print_speed, MIN_PRINT_SPEED, MAX_PRINT_SPEED); + // print_speed value + Draw_Edit_Integer3(select_tune.now + MROWS - index_tune, HMI_ValueStruct.print_speed, true); } #define LAST_AXIS TERN(HAS_HOTEND, E_AXIS, Z_AXIS) void HMI_MaxFeedspeedXYZE() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Feedspeed)) { - checkkey = MaxSpeed; - EncoderRate.enabled = false; - if (WITHIN(HMI_flag.feedspeed_axis, X_AXIS, LAST_AXIS)) - planner.set_max_feedrate(HMI_flag.feedspeed_axis, HMI_ValueStruct.Max_Feedspeed); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(select_speed.now), HMI_ValueStruct.Max_Feedspeed); - return; - } - // MaxFeedspeed limit + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Feedspeed)) { + checkkey = MaxSpeed; + EncoderRate.enabled = false; if (WITHIN(HMI_flag.feedspeed_axis, X_AXIS, LAST_AXIS)) - NOMORE(HMI_ValueStruct.Max_Feedspeed, default_max_feedrate[HMI_flag.feedspeed_axis] * 2); - if (HMI_ValueStruct.Max_Feedspeed < MIN_MAXFEEDSPEED) HMI_ValueStruct.Max_Feedspeed = MIN_MAXFEEDSPEED; - // MaxFeedspeed value - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 4, 210, MBASE(select_speed.now), HMI_ValueStruct.Max_Feedspeed); + planner.set_max_feedrate(HMI_flag.feedspeed_axis, HMI_ValueStruct.Max_Feedspeed); + Draw_Edit_Integer4(select_speed.now, HMI_ValueStruct.Max_Feedspeed); + return; } + // MaxFeedspeed limit + if (WITHIN(HMI_flag.feedspeed_axis, X_AXIS, LAST_AXIS)) + NOMORE(HMI_ValueStruct.Max_Feedspeed, default_max_feedrate[HMI_flag.feedspeed_axis] * 2); + if (HMI_ValueStruct.Max_Feedspeed < MIN_MAXFEEDSPEED) HMI_ValueStruct.Max_Feedspeed = MIN_MAXFEEDSPEED; + // MaxFeedspeed value + Draw_Edit_Integer4(select_speed.now, HMI_ValueStruct.Max_Feedspeed, true); } void HMI_MaxAccelerationXYZE() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Acceleration)) { - checkkey = MaxAcceleration; - EncoderRate.enabled = false; - if (WITHIN(HMI_flag.acc_axis, X_AXIS, LAST_AXIS)) - planner.set_max_acceleration(HMI_flag.acc_axis, HMI_ValueStruct.Max_Acceleration); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(select_acc.now), HMI_ValueStruct.Max_Acceleration); - return; - } - // MaxAcceleration limit + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Acceleration)) { + checkkey = MaxAcceleration; + EncoderRate.enabled = false; if (WITHIN(HMI_flag.acc_axis, X_AXIS, LAST_AXIS)) - NOMORE(HMI_ValueStruct.Max_Acceleration, default_max_acceleration[HMI_flag.acc_axis] * 2); - if (HMI_ValueStruct.Max_Acceleration < MIN_MAXACCELERATION) HMI_ValueStruct.Max_Acceleration = MIN_MAXACCELERATION; - // MaxAcceleration value - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 4, 210, MBASE(select_acc.now), HMI_ValueStruct.Max_Acceleration); + planner.set_max_acceleration(HMI_flag.acc_axis, HMI_ValueStruct.Max_Acceleration); + Draw_Edit_Integer4(select_acc.now, HMI_ValueStruct.Max_Acceleration); + return; } + // MaxAcceleration limit + if (WITHIN(HMI_flag.acc_axis, X_AXIS, LAST_AXIS)) + NOMORE(HMI_ValueStruct.Max_Acceleration, default_max_acceleration[HMI_flag.acc_axis] * 2); + if (HMI_ValueStruct.Max_Acceleration < MIN_MAXACCELERATION) HMI_ValueStruct.Max_Acceleration = MIN_MAXACCELERATION; + // MaxAcceleration value + Draw_Edit_Integer4(select_acc.now, HMI_ValueStruct.Max_Acceleration, true); } #if HAS_CLASSIC_JERK void HMI_MaxJerkXYZE() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Jerk_scaled)) { - checkkey = MaxJerk; - EncoderRate.enabled = false; - if (WITHIN(HMI_flag.jerk_axis, X_AXIS, LAST_AXIS)) - planner.set_max_jerk(HMI_flag.jerk_axis, HMI_ValueStruct.Max_Jerk_scaled / 10); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk_scaled); - return; - } - // MaxJerk limit + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Jerk_scaled)) { + checkkey = MaxJerk; + EncoderRate.enabled = false; if (WITHIN(HMI_flag.jerk_axis, X_AXIS, LAST_AXIS)) - NOMORE(HMI_ValueStruct.Max_Jerk_scaled, default_max_jerk[HMI_flag.jerk_axis] * 2 * MINUNITMULT); - NOLESS(HMI_ValueStruct.Max_Jerk_scaled, (MIN_MAXJERK) * MINUNITMULT); - // MaxJerk value - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk_scaled); + planner.set_max_jerk(HMI_flag.jerk_axis, HMI_ValueStruct.Max_Jerk_scaled / 10); + Draw_Edit_Float3(select_jerk.now, HMI_ValueStruct.Max_Jerk_scaled); + return; } + // MaxJerk limit + if (WITHIN(HMI_flag.jerk_axis, X_AXIS, LAST_AXIS)) + NOMORE(HMI_ValueStruct.Max_Jerk_scaled, default_max_jerk[HMI_flag.jerk_axis] * 2 * MINUNITMULT); + NOLESS(HMI_ValueStruct.Max_Jerk_scaled, (MIN_MAXJERK) * MINUNITMULT); + // MaxJerk value + Draw_Edit_Float3(select_jerk.now, HMI_ValueStruct.Max_Jerk_scaled, true); } #endif // HAS_CLASSIC_JERK void HMI_StepXYZE() { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Step_scaled)) { - checkkey = Step; - EncoderRate.enabled = false; - if (WITHIN(HMI_flag.step_axis, X_AXIS, LAST_AXIS)) - planner.settings.axis_steps_per_mm[HMI_flag.step_axis] = HMI_ValueStruct.Max_Step_scaled / 10; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step_scaled); - return; - } - // Step limit + if (encoder_diffState == ENCODER_DIFF_NO) return; + if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Step_scaled)) { + checkkey = Step; + EncoderRate.enabled = false; if (WITHIN(HMI_flag.step_axis, X_AXIS, LAST_AXIS)) - NOMORE(HMI_ValueStruct.Max_Step_scaled, 999.9 * MINUNITMULT); - NOLESS(HMI_ValueStruct.Max_Step_scaled, MIN_STEP); - // Step value - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step_scaled); + planner.settings.axis_steps_per_mm[HMI_flag.step_axis] = HMI_ValueStruct.Max_Step_scaled / 10; + Draw_Edit_Float3(select_step.now, HMI_ValueStruct.Max_Step_scaled); + return; } + // Step limit + if (WITHIN(HMI_flag.step_axis, X_AXIS, LAST_AXIS)) + NOMORE(HMI_ValueStruct.Max_Step_scaled, 999.9 * MINUNITMULT); + NOLESS(HMI_ValueStruct.Max_Step_scaled, MIN_STEP); + // Step value + Draw_Edit_Float3(select_step.now, HMI_ValueStruct.Max_Step_scaled, true); } // Draw X, Y, Z and blink if in an un-homed or un-trusted state @@ -1642,30 +1693,27 @@ void update_variable() { // Tune page temperature update #if HAS_HOTEND if (_new_hotend_target) - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_TEMP + MROWS - index_tune), _hotendtarget); + Draw_Edit_Integer3(TUNE_CASE_TEMP + MROWS - index_tune, _hotendtarget); #endif #if HAS_HEATED_BED if (_new_bed_target) - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_BED + MROWS - index_tune), _bedtarget); + Draw_Edit_Integer3(TUNE_CASE_BED + MROWS - index_tune, _bedtarget); #endif #if HAS_FAN if (_new_fanspeed) - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TUNE_CASE_FAN + MROWS - index_tune), _fanspeed); + Draw_Edit_Integer3(TUNE_CASE_FAN + MROWS - index_tune, _fanspeed); #endif } else if (checkkey == TemperatureID) { // Temperature page temperature update #if HAS_HOTEND - if (_new_hotend_target) - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TEMP_CASE_TEMP), _hotendtarget); + if (_new_hotend_target) Draw_Edit_Integer3(TEMP_CASE_TEMP, _hotendtarget); #endif #if HAS_HEATED_BED - if (_new_bed_target) - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TEMP_CASE_BED), _bedtarget); + if (_new_bed_target) Draw_Edit_Integer3(TEMP_CASE_BED, _bedtarget); #endif #if HAS_FAN - if (_new_fanspeed) - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(TEMP_CASE_FAN), _fanspeed); + if (_new_fanspeed) Draw_Edit_Integer3(TEMP_CASE_FAN, _fanspeed); #endif } @@ -1673,34 +1721,34 @@ void update_variable() { #if HAS_HOTEND if (_new_hotend_temp) - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 28, 384, _hotendtemp); + Draw_Stat_Int(28, 384, _hotendtemp); if (_new_hotend_target) - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 25 + 4 * STAT_CHR_W + 6, 384, _hotendtarget); + Draw_Stat_Int(25 + 4 * STAT_CHR_W + 6, 384, _hotendtarget); static int16_t _flow = planner.flow_percentage[0]; if (_flow != planner.flow_percentage[0]) { _flow = planner.flow_percentage[0]; - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 116 + 2 * STAT_CHR_W, 417, _flow); + Draw_Stat_Int(116 + 2 * STAT_CHR_W, 417, _flow); } #endif #if HAS_HEATED_BED if (_new_bed_temp) - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 28, 417, _bedtemp); + Draw_Stat_Int(28, 417, _bedtemp); if (_new_bed_target) - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 25 + 4 * STAT_CHR_W + 6, 417, _bedtarget); + Draw_Stat_Int(25 + 4 * STAT_CHR_W + 6, 417, _bedtarget); #endif static int16_t _feedrate = 100; if (_feedrate != feedrate_percentage) { _feedrate = feedrate_percentage; - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 116 + 2 * STAT_CHR_W, 384, _feedrate); + Draw_Stat_Int(116 + 2 * STAT_CHR_W, 384, _feedrate); } #if HAS_FAN if (_new_fanspeed) { _fanspeed = thermalManager.fan_speed[0]; - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 195 + 2 * STAT_CHR_W, 384, _fanspeed); + Draw_Stat_Int(195 + 2 * STAT_CHR_W, 384, _fanspeed); } #endif @@ -1708,11 +1756,11 @@ void update_variable() { if (BABY_Z_VAR != _offset) { _offset = BABY_Z_VAR; if (BABY_Z_VAR < 0) { - DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, -_offset * 100); + Draw_Stat_Float(207, 417, -_offset * 100); DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F("-")); } else { - DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, _offset * 100); + Draw_Stat_Float(207, 417, _offset * 100); DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F(" ")); } } @@ -1913,29 +1961,29 @@ void Draw_Status_Area(const bool with_update) { #if HAS_HOTEND DWIN_ICON_Show(ICON, ICON_HotendTemp, 10, 383); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 28, 384, thermalManager.wholeDegHotend(0)); + Draw_Stat_Int(28, 384, thermalManager.wholeDegHotend(0)); DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 25 + 3 * STAT_CHR_W + 5, 384, F("/")); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 25 + 4 * STAT_CHR_W + 6, 384, thermalManager.degTargetHotend(0)); + Draw_Stat_Int(25 + 4 * STAT_CHR_W + 6, 384, thermalManager.degTargetHotend(0)); DWIN_ICON_Show(ICON, ICON_StepE, 112, 417); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 116 + 2 * STAT_CHR_W, 417, planner.flow_percentage[0]); + Draw_Stat_Int(116 + 2 * STAT_CHR_W, 417, planner.flow_percentage[0]); DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 116 + 5 * STAT_CHR_W + 2, 417, F("%")); #endif #if HAS_HEATED_BED DWIN_ICON_Show(ICON, ICON_BedTemp, 10, 416); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 28, 417, thermalManager.wholeDegBed()); + Draw_Stat_Int(28, 417, thermalManager.wholeDegBed()); DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 25 + 3 * STAT_CHR_W + 5, 417, F("/")); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 25 + 4 * STAT_CHR_W + 6, 417, thermalManager.degTargetBed()); + Draw_Stat_Int(25 + 4 * STAT_CHR_W + 6, 417, thermalManager.degTargetBed()); #endif DWIN_ICON_Show(ICON, ICON_Speed, 113, 383); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 116 + 2 * STAT_CHR_W, 384, feedrate_percentage); + Draw_Stat_Int(116 + 2 * STAT_CHR_W, 384, feedrate_percentage); DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 116 + 5 * STAT_CHR_W + 2, 384, F("%")); #if HAS_FAN DWIN_ICON_Show(ICON, ICON_FanSpeed, 187, 383); - DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 195 + 2 * STAT_CHR_W, 384, thermalManager.fan_speed[0]); + Draw_Stat_Int(195 + 2 * STAT_CHR_W, 384, thermalManager.fan_speed[0]); #endif #if HAS_ZOFFSET_ITEM @@ -1943,11 +1991,11 @@ void Draw_Status_Area(const bool with_update) { #endif if (BABY_Z_VAR < 0) { - DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, -BABY_Z_VAR * 100); + Draw_Stat_Float(207, 417, -BABY_Z_VAR * 100); DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F("-")); } else { - DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, BABY_Z_VAR * 100); + Draw_Stat_Float(207, 417, BABY_Z_VAR * 100); DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F(" ")); } @@ -1976,22 +2024,22 @@ void Draw_Info_Menu() { DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(SHORT_BUILD_VERSION) * MENU_CHR_W) / 2, 195, F(SHORT_BUILD_VERSION)); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 30, 17, 57, 29); // "Info" + DWIN_Frame_TitleCopy(30, 17, 28, 13); // "Info" - DWIN_Frame_AreaCopy(1, 197, 149, 252, 161, 108, 102); - DWIN_Frame_AreaCopy(1, 1, 164, 56, 176, 108, 175); - DWIN_Frame_AreaCopy(1, 58, 164, 113, 176, 105, 248); + DWIN_Frame_AreaCopy(1, 197, 149, 252, 161, 108, 102); // "Size" + DWIN_Frame_AreaCopy(1, 1, 164, 56, 176, 108, 175); // "Firmware Version" + DWIN_Frame_AreaCopy(1, 58, 164, 113, 176, 105, 248); // "Contact Details" } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_INFO_SCREEN)); #else - DWIN_Frame_TitleCopy(1, 190, 16, 215, 26); // "Info" + DWIN_Frame_TitleCopy(192, 15, 23, 12); // "Info" #endif - DWIN_Frame_AreaCopy(1, 120, 150, 146, 161, 124, 102); - DWIN_Frame_AreaCopy(1, 146, 151, 254, 161, 82, 175); - DWIN_Frame_AreaCopy(1, 0, 165, 94, 175, 89, 248); + DWIN_Frame_AreaCopy(1, 120, 150, 146, 161, 124, 102); // "Size" + DWIN_Frame_AreaCopy(1, 146, 151, 254, 161, 82, 175); // "Firmware Version" + DWIN_Frame_AreaCopy(1, 1, 164, 96, 175, 89, 248); // "Contact details" } DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(CORP_WEBSITE) * MENU_CHR_W) / 2, 268, F(CORP_WEBSITE)); @@ -2005,21 +2053,20 @@ void Draw_Info_Menu() { void Draw_Print_File_Menu() { Clear_Title_Bar(); - if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 0, 31, 55, 44); // "Print file" - } + if (HMI_IsChinese()) + DWIN_Frame_TitleCopy(0, 31, 56, 14); // "Print file" else { #ifdef USE_STRING_HEADINGS - Draw_Title("Print file"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_MEDIA_MENU)); #else - DWIN_Frame_TitleCopy(1, 52, 31, 137, 41); // "Print file" + DWIN_Frame_TitleCopy(52, 31, 86, 11); // "Print file" #endif } Redraw_SD_List(); } -/* Main Process */ +// Main Process void HMI_MainMenu() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2030,7 +2077,7 @@ void HMI_MainMenu() { case 0: ICON_Print(); break; case 1: ICON_Print(); ICON_Prepare(); break; case 2: ICON_Prepare(); ICON_Control(); break; - case 3: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(1); break; + case 3: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break; } } } @@ -2039,8 +2086,8 @@ void HMI_MainMenu() { switch (select_page.now) { case 0: ICON_Print(); ICON_Prepare(); break; case 1: ICON_Prepare(); ICON_Control(); break; - case 2: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(0); break; - case 3: TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(1); break; + case 2: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break; + case 3: TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break; } } } @@ -2144,9 +2191,8 @@ void HMI_SelectFile() { Draw_Back_First(); TERN_(SCROLL_LONG_FILENAMES, shift_ms = 0); } - else { + else Draw_SDItem(itemnum, 0); // Draw the item (and init shift name) - } } else { Move_Highlight(-1, select_file.now + MROWS - index_file); // Just move highlight @@ -2195,11 +2241,12 @@ void HMI_SelectFile() { Goto_PrintProcess(); } } -HMI_SelectFileExit: - DWIN_UpdateLCD(); + + HMI_SelectFileExit: + DWIN_UpdateLCD(); } -/* Printing */ +// Printing void HMI_Printing() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2219,10 +2266,10 @@ void HMI_Printing() { case 0: ICON_Tune(); break; case 1: ICON_Tune(); - if (printingIsPaused()) ICON_Continue(); else ICON_Pause(); + ICON_ResumeOrPause(); break; case 2: - if (printingIsPaused()) ICON_Continue(); else ICON_Pause(); + ICON_ResumeOrPause(); ICON_Stop(); break; } @@ -2233,10 +2280,10 @@ void HMI_Printing() { switch (select_print.now) { case 0: ICON_Tune(); - if (printingIsPaused()) ICON_Continue(); else ICON_Pause(); + ICON_ResumeOrPause(); break; case 1: - if (printingIsPaused()) ICON_Continue(); else ICON_Pause(); + ICON_ResumeOrPause(); ICON_Stop(); break; case 2: ICON_Stop(); break; @@ -2288,7 +2335,7 @@ void HMI_Printing() { DWIN_UpdateLCD(); } -/* Pause and Stop window */ +// Pause and Stop window void HMI_PauseOrStop() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2301,18 +2348,13 @@ void HMI_PauseOrStop() { if (select_print.now == 1) { // pause window if (HMI_flag.select_flag) { HMI_flag.pause_action = true; - ICON_Continue(); queue.inject_P(PSTR("M25")); } - else { - // cancel pause - } Goto_PrintProcess(); } else if (select_print.now == 2) { // stop window if (HMI_flag.select_flag) { checkkey = Back_Main; - if (HMI_flag.home_flag) planner.synchronize(); // Wait for planner moves to finish! wait_for_heatup = wait_for_user = false; // Stop waiting for heating/user card.abortFilePrintSoon(); // Let the main loop handle SD abort dwin_abort_flag = true; // Reset feedrate, return to Home @@ -2320,6 +2362,7 @@ void HMI_PauseOrStop() { host_action_cancel(); #endif Popup_Window_Home(true); + if (HMI_flag.home_flag) planner.synchronize(); // Wait for planner moves to finish! } else Goto_PrintProcess(); // cancel stop @@ -2332,25 +2375,29 @@ void Draw_Move_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 192, 1, 233, 14); // "Move" - DWIN_Frame_AreaCopy(1, 58, 118, 106, 132, LBLX, MBASE(1)); - DWIN_Frame_AreaCopy(1, 109, 118, 157, 132, LBLX, MBASE(2)); - DWIN_Frame_AreaCopy(1, 160, 118, 209, 132, LBLX, MBASE(3)); - #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 212, 118, 253, 131, LBLX, MBASE(4)); - #endif + DWIN_Frame_TitleCopy(192, 1, 42, 14); // "Move" + Item_AreaCopy(58, 118, 106, 132, 1); + Item_AreaCopy(109, 118, 157, 132, 2); + Item_AreaCopy(160, 118, 209, 132, 3); + TERN_(HAS_HOTEND, Item_AreaCopy(212, 118, 253, 131, 4)); } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_MOVE_AXIS)); #else - DWIN_Frame_TitleCopy(1, 231, 2, 265, 12); // "Move" + DWIN_Frame_TitleCopy(231, 2, 35, 11); // "Move" #endif - draw_move_en(MBASE(1)); say_x(36, MBASE(1)); // "Move X" - draw_move_en(MBASE(2)); say_y(36, MBASE(2)); // "Move Y" - draw_move_en(MBASE(3)); say_z(36, MBASE(3)); // "Move Z" - #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 123, 192, 176, 202, LBLX, MBASE(4)); // "Extruder" + + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(1, GET_TEXT_F(MSG_MOVE_X)); + DWIN_Draw_Label(2, GET_TEXT_F(MSG_MOVE_Y)); + DWIN_Draw_Label(3, GET_TEXT_F(MSG_MOVE_Z)); + TERN_(HAS_HOTEND, DWIN_Draw_Label(4, GET_TEXT_F(MSG_MOVE_E))); + #else + say_move_en(1); say_x_en(38, 1); // "Move X" + say_move_en(2); say_y_en(38, 2); // "Move Y" + say_move_en(3); say_z_en(38, 3); // "Move Z" + TERN_(HAS_HOTEND, (say_move_en(4), Item_AreaCopy(99, 194, 151, 204, 4, 38))); // "Move Extruder" #endif } @@ -2361,58 +2408,213 @@ void Draw_Move_Menu() { LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MoveX + i); } -void Draw_AdvSet_Menu() { +void Item_Adv_HomeOffsets(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Set Home Offsets" + } + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, GET_TEXT_F(MSG_SET_HOME_OFFSETS)); + #else + Item_AreaCopy(1, 76, 102, 87, row); // "Set Home Offsets" + #endif + } + Draw_Menu_Line(row, ICON_HomeOff); + Draw_More_Icon(row); +} + +#if HAS_ONESTEP_LEVELING + + void Item_Adv_ProbeOffsets(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Probe Offsets" + } + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, GET_TEXT_F(MSG_ZPROBE_OFFSETS)); + #else + say_probe_offs_en(row); + #endif + } + Draw_Menu_Line(row, ICON_ProbeOff); + Draw_More_Icon(row); + } + +#endif + +void Item_Adv_HotendPID(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Hotend PID" + } + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, F("Hotend PID")); + #else + Item_AreaCopy(96, 104, 167, 114, row); // "Hotend PID" + #endif + } + Draw_Menu_Line(row, ICON_PIDNozzle); +} + +void Item_Adv_BedPID(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Bed PID" + } + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, F("Bed PID")); + #else + Item_AreaCopy(241, 104, 263, 115, row); // "Bed" + Item_AreaCopy(145, 104, 167, 114, row, 27); // "PID" + #endif + } + Draw_Menu_Line(row, ICON_PIDbed); +} + +#if ENABLED(POWER_LOSS_RECOVERY) + + void Item_Adv_PLR(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Power-loss Recovery" + } + else { + #ifdef USE_STRING_TITLES + DWIN_Draw_Label(row, GET_TEXT_F(MSG_ZPROBE_OFFSETS)); + #else + Item_AreaCopy(1, 208, 137, 221, row); // "Power-loss Recovery" + #endif + } + Draw_Menu_Line(row, ICON_Motion); + Draw_Checkbox_Line(row, recovery.enabled); + } + +#endif + +void Draw_AdvancedSettings_Menu() { Clear_Main_Window(); - #if ADVSET_CASE_TOTAL >= 6 + #if ADVSET_CASE_TOTAL >= TROWS const int16_t scroll = MROWS - index_advset; // Scrolled-up lines - #define ASCROL(L) (scroll + (L)) #else - #define ASCROL(L) (L) + constexpr int16_t scroll = 0; #endif + #define ASCROL(L) (scroll + (L)) + #define AVISI(L) VISI(ADVSET_CASE_TOTAL, L, ASCROL(L)) - #define AVISI(L) WITHIN(ASCROL(L), 0, MROWS) - - Draw_Title(GET_TEXT_F(MSG_ADVANCED_SETTINGS)); + if (false && HMI_IsChinese()) { + // TODO: Chinese "Advanced Settings" + } + else { + #ifdef USE_STRING_HEADINGS + Draw_Title(GET_TEXT_F(MSG_ADVANCED_SETTINGS)); + #else + DWIN_Frame_TitleCopy(93, 401, 126, 15); // "Advanced Settings" + #endif + } if (AVISI(0)) Draw_Back_First(select_advset.now == 0); - if (AVISI(ADVSET_CASE_HOMEOFF)) Draw_Menu_Line(ASCROL(ADVSET_CASE_HOMEOFF), ICON_HomeOff, GET_TEXT(MSG_SET_HOME_OFFSETS),true); // Home Offset > + if (AVISI(ADVSET_CASE_HOMEOFF)) Item_Adv_HomeOffsets(ASCROL(ADVSET_CASE_HOMEOFF)); // Set Home Offsets > #if HAS_ONESTEP_LEVELING - if (AVISI(ADVSET_CASE_PROBEOFF)) Draw_Menu_Line(ASCROL(ADVSET_CASE_PROBEOFF), ICON_ProbeOff, GET_TEXT(MSG_ZPROBE_OFFSETS),true); // Probe Offset > + if (AVISI(ADVSET_CASE_PROBEOFF)) Item_Adv_ProbeOffsets(ASCROL(ADVSET_CASE_PROBEOFF)); // Probe Offsets > #endif - if (AVISI(ADVSET_CASE_HEPID)) Draw_Menu_Line(ASCROL(ADVSET_CASE_HEPID), ICON_PIDNozzle, "Hotend PID", false); // Nozzle PID - if (AVISI(ADVSET_CASE_BEDPID)) Draw_Menu_Line(ASCROL(ADVSET_CASE_BEDPID), ICON_PIDbed, "Bed PID", false); // Bed PID + if (AVISI(ADVSET_CASE_HEPID)) Item_Adv_HotendPID(ASCROL(ADVSET_CASE_HEPID)); // Nozzle PID + if (AVISI(ADVSET_CASE_BEDPID)) Item_Adv_BedPID(ASCROL(ADVSET_CASE_BEDPID)); // Bed PID #if ENABLED(POWER_LOSS_RECOVERY) - if (AVISI(ADVSET_CASE_PWRLOSSR)) { - Draw_Menu_Line(ASCROL(ADVSET_CASE_PWRLOSSR), ICON_Motion, "Power-loss recovery", false); // Power-loss recovery - Draw_Chkb_Line(ASCROL(ADVSET_CASE_PWRLOSSR), recovery.enabled); - } + if (AVISI(ADVSET_CASE_PWRLOSSR)) Item_Adv_PLR(ASCROL(ADVSET_CASE_PWRLOSSR)); // Power-loss recovery #endif if (select_advset.now) Draw_Menu_Cursor(ASCROL(select_advset.now)); } +void Item_HomeOffs_X(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Home Offset X" + } + else { + #ifdef USE_STRING_TITLES + Draw_Menu_LineF(row, ICON_HomeOffX, GET_TEXT_F(MSG_HOME_OFFSET_X)); + #else + say_home_offs_en(row); say_x_en(75, row); // "Home Offset X" + #endif + } + Draw_Menu_Line(row, ICON_HomeOff); + Draw_Edit_Signed_Float3(row, HMI_ValueStruct.Home_OffX_scaled); +} + +void Item_HomeOffs_Y(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Home Offset Y" + } + else { + #ifdef USE_STRING_TITLES + Draw_Menu_LineF(row, ICON_HomeOffY, GET_TEXT_F(MSG_HOME_OFFSET_Y)); + #else + say_home_offs_en(row); say_y_en(75, row); // "Home Offset X" + #endif + } + Draw_Menu_Line(row, ICON_HomeOff); + Draw_Edit_Signed_Float3(row, HMI_ValueStruct.Home_OffY_scaled); +} + +void Item_HomeOffs_Z(const uint8_t row) { + if (false && HMI_IsChinese()) { + // TODO: Chinese "Home Offset Z" + } + else { + #ifdef USE_STRING_TITLES + Draw_Menu_LineF(row, ICON_HomeOffZ, GET_TEXT_F(MSG_HOME_OFFSET_Z)); + #else + say_home_offs_en(row); say_z_en(75, row); // "Home Offset Z" + #endif + } + Draw_Menu_Line(row, ICON_HomeOff); + Draw_Edit_Signed_Float3(row, HMI_ValueStruct.Home_OffZ_scaled); +} + void Draw_HomeOff_Menu() { Clear_Main_Window(); - Draw_Title(GET_TEXT_F(MSG_SET_HOME_OFFSETS)); // Home Offsets + if (false && HMI_IsChinese()) { + // TODO: Chinese "Home Offsets" + } + else { + #ifdef USE_STRING_HEADINGS + Draw_Title(GET_TEXT_F(MSG_SET_HOME_OFFSETS)); + #else + DWIN_Frame_TitleCopy(1, 401, 91, 12); // "Home Offsets" + #endif + } Draw_Back_First(select_item.now == 0); - Draw_Menu_Line(1, ICON_HomeOffX, GET_TEXT(MSG_HOME_OFFSET_X)); // Home X Offset - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Home_OffX_scaled); - Draw_Menu_Line(2, ICON_HomeOffY, GET_TEXT(MSG_HOME_OFFSET_Y)); // Home Y Offset - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Home_OffY_scaled); - Draw_Menu_Line(3, ICON_HomeOffZ, GET_TEXT(MSG_HOME_OFFSET_Z)); // Home Y Offset - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(3), HMI_ValueStruct.Home_OffZ_scaled); + Item_HomeOffs_X(1); // "Home Offset X" + Item_HomeOffs_Y(2); // "Home Offset Y" + Item_HomeOffs_Z(3); // "Home Offset Z" if (select_item.now) Draw_Menu_Cursor(select_item.now); } #if HAS_ONESTEP_LEVELING + void Draw_ProbeOff_Menu() { Clear_Main_Window(); - Draw_Title(GET_TEXT_F(MSG_ZPROBE_OFFSETS)); // Probe Offsets Draw_Back_First(select_item.now == 0); - Draw_Menu_Line(1, ICON_ProbeOffX, GET_TEXT(MSG_ZPROBE_XOFFSET)); // Probe X Offset - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Probe_OffX_scaled); - Draw_Menu_Line(2, ICON_ProbeOffY, GET_TEXT(MSG_ZPROBE_YOFFSET)); // Probe Y Offset - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Probe_OffY_scaled); + if (false && HMI_IsChinese()) { + // TODO: Chinese "Probe Offsets" + } + else { + #ifdef USE_STRING_HEADINGS + Draw_Title(GET_TEXT_F(MSG_ZPROBE_OFFSETS)); + #else + DWIN_Frame_TitleCopy(124, 431, 91, 12); // "Probe Offsets" + #endif + #ifdef USE_STRING_TITLES + Draw_Menu_LineF(1, ICON_ProbeOffX, GET_TEXT_F(MSG_ZPROBE_XOFFSET)); // Probe X Offset + Draw_Menu_LineF(2, ICON_ProbeOffY, GET_TEXT_F(MSG_ZPROBE_YOFFSET)); // Probe Y Offset + #else + say_probe_offs_en(1); say_x_en(75, 1); // "Probe Offset X" + say_probe_offs_en(2); say_y_en(75, 2); // "Probe Offset Y" + #endif + } + + Draw_Edit_Signed_Float3(1, HMI_ValueStruct.Probe_OffX_scaled); + Draw_Edit_Signed_Float3(2, HMI_ValueStruct.Probe_OffY_scaled); + if (select_item.now) Draw_Menu_Cursor(select_item.now); } #endif @@ -2431,7 +2633,7 @@ void HMI_AudioFeedback(const bool success=true) { #endif } -/* Prepare */ +// Prepare void HMI_Prepare() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2495,12 +2697,12 @@ void HMI_Prepare() { select_axis.reset(); Draw_Move_Menu(); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(1), current_position.x * MINUNITMULT); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(2), current_position.y * MINUNITMULT); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(3), current_position.z * MINUNITMULT); + Draw_Edit_Float3(1, current_position.x * MINUNITMULT); + Draw_Edit_Float3(2, current_position.y * MINUNITMULT); + Draw_Edit_Float3(3, current_position.z * MINUNITMULT); #if HAS_HOTEND HMI_ValueStruct.Move_E_scaled = current_position.e * MINUNITMULT; - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scaled); + Draw_Edit_Signed_Float3(4, HMI_ValueStruct.Move_E_scaled); #endif break; case PREPARE_CASE_DISA: // Disable steppers @@ -2518,7 +2720,7 @@ void HMI_Prepare() { checkkey = Homeoffset; HMI_ValueStruct.show_mode = -4; HMI_ValueStruct.offset_value = BABY_Z_VAR * 100; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 2, 2, 202, MBASE(PREPARE_CASE_ZOFF + MROWS - index_prepare), HMI_ValueStruct.offset_value); + Draw_Edit_Signed_Float2(PREPARE_CASE_ZOFF + MROWS - index_prepare, HMI_ValueStruct.offset_value, true); EncoderRate.enabled = true; #else // Apply workspace offset, making the current position 0,0,0 @@ -2559,60 +2761,61 @@ void Draw_Temperature_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 236, 2, 263, 13); // "Temperature" + DWIN_Frame_TitleCopy(236, 2, 28, 12); // "Temperature" #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 1, 134, 56, 146, LBLX, MBASE(TEMP_CASE_TEMP)); + Item_AreaCopy(1, 134, 56, 146, TEMP_CASE_TEMP); #endif #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 58, 134, 113, 146, LBLX, MBASE(TEMP_CASE_BED)); + Item_AreaCopy(58, 134, 113, 146, TEMP_CASE_BED); #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 115, 134, 170, 146, LBLX, MBASE(TEMP_CASE_FAN)); + Item_AreaCopy(115, 134, 170, 146, TEMP_CASE_FAN); #endif #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 100, 89, 178, 101, LBLX, MBASE(TEMP_CASE_PLA)); - DWIN_Frame_AreaCopy(1, 180, 89, 260, 100, LBLX, MBASE(TEMP_CASE_ABS)); + Item_AreaCopy(100, 89, 178, 101, TEMP_CASE_PLA); + Item_AreaCopy(180, 89, 260, 100, TEMP_CASE_ABS); #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_TEMPERATURE)); #else - DWIN_Frame_TitleCopy(1, 56, 16, 141, 28); // "Temperature" + DWIN_Frame_TitleCopy(56, 15, 85, 14); // "Temperature" #endif #ifdef USE_STRING_TITLES #if HAS_HOTEND - DWIN_Draw_Label(MBASE(TEMP_CASE_TEMP), GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND)); + DWIN_Draw_Label(TEMP_CASE_TEMP, GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND)); #endif #if HAS_HEATED_BED - DWIN_Draw_Label(MBASE(TEMP_CASE_BED), GET_TEXT_F(MSG_UBL_SET_TEMP_BED)); + DWIN_Draw_Label(TEMP_CASE_BED, GET_TEXT_F(MSG_UBL_SET_TEMP_BED)); #endif #if HAS_FAN - DWIN_Draw_Label(MBASE(TEMP_CASE_FAN), GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_Label(TEMP_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); #endif #if HAS_HOTEND - DWIN_Draw_Label(MBASE(TEMP_CASE_PLA), F("PLA Preheat Settings")); - DWIN_Draw_Label(MBASE(TEMP_CASE_ABS), F("ABS Preheat Settings")); + DWIN_Draw_Label(TEMP_CASE_PLA, F(PREHEAT_1_LABEL " Preheat Settings")); + DWIN_Draw_Label(TEMP_CASE_ABS, F(PREHEAT_2_LABEL " Preheat Settings")); #endif #else #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 197, 104, 238, 114, LBLX, MBASE(TEMP_CASE_TEMP)); // Nozzle... - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 44, MBASE(TEMP_CASE_TEMP)); // ...Temperature + Item_AreaCopy(197, 104, 238, 114, TEMP_CASE_TEMP); // "Nozzle" + Item_AreaCopy(1, 89, 83, 101, TEMP_CASE_TEMP, 44); // "Temperature" #endif #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 240, 104, 264, 114, LBLX, MBASE(TEMP_CASE_BED)); // Bed... - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 27, MBASE(TEMP_CASE_BED)); // ...Temperature + Item_AreaCopy(240, 104, 264, 114, TEMP_CASE_BED); // "Bed" + Item_AreaCopy(1, 89, 83, 101, TEMP_CASE_BED, 27); // "Temperature" #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 0, 119, 64, 132, LBLX, MBASE(TEMP_CASE_FAN)); // Fan speed + Item_AreaCopy( 1, 119, 61, 132, TEMP_CASE_FAN); // "Fan speed" #endif #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 107, 76, 156, 86, LBLX, MBASE(TEMP_CASE_PLA)); // Preheat... - DWIN_Frame_AreaCopy(1, 157, 76, 181, 86, LBLX + 52, MBASE(TEMP_CASE_PLA)); // ...PLA - DWIN_Frame_AreaCopy(1, 131, 119, 182, 132, LBLX + 79, MBASE(TEMP_CASE_PLA)); // PLA setting - DWIN_Frame_AreaCopy(1, 107, 76, 156, 86, LBLX, MBASE(TEMP_CASE_ABS)); // Preheat... - DWIN_Frame_AreaCopy(1, 172, 76, 198, 86, LBLX + 52, MBASE(TEMP_CASE_ABS)); // ...ABS - DWIN_Frame_AreaCopy(1, 131, 119, 182, 132, LBLX + 81, MBASE(TEMP_CASE_ABS)); // ABS setting + Item_AreaCopy(107, 76, 156, 86, TEMP_CASE_PLA); // "Preheat" + say_pla_en(52, TEMP_CASE_PLA); // "PLA" + Item_AreaCopy(150, 135, 202, 148, TEMP_CASE_PLA, 79); // "Settings" + + Item_AreaCopy(107, 76, 156, 86, TEMP_CASE_ABS); // "Preheat" + say_abs_en(52, TEMP_CASE_ABS); // "ABS" + Item_AreaCopy(150, 135, 202, 148, TEMP_CASE_ABS, 81); // "Settings" #endif #endif } @@ -2625,15 +2828,15 @@ void Draw_Temperature_Menu() { #define _TMENU_ICON(N) Draw_Menu_Line(++i, ICON_SetEndTemp + (N) - 1) #if HAS_HOTEND _TMENU_ICON(TEMP_CASE_TEMP); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), thermalManager.degTargetHotend(0)); + Draw_Edit_Integer3(i, thermalManager.degTargetHotend(0)); #endif #if HAS_HEATED_BED _TMENU_ICON(TEMP_CASE_BED); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), thermalManager.degTargetBed()); + Draw_Edit_Integer3(i, thermalManager.degTargetBed()); #endif #if HAS_FAN _TMENU_ICON(TEMP_CASE_FAN); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), thermalManager.fan_speed[0]); + Draw_Edit_Integer3(i, thermalManager.fan_speed[0]); #endif #if HAS_HOTEND // PLA/ABS items have submenus @@ -2644,7 +2847,7 @@ void Draw_Temperature_Menu() { #endif } -/* Control */ +// Control void HMI_Control() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2659,20 +2862,14 @@ void HMI_Control() { Scroll_Menu(DWIN_SCROLL_UP); switch (index_control) { // Last menu items - case CONTROL_CASE_ADVSET: // Advanced Settings > - Draw_Menu_Item(MROWS, ICON_AdvSet, GET_TEXT(MSG_ADVANCED_SETTINGS), true); - break; - case CONTROL_CASE_INFO: // Info > - Item_Control_Info(MBASE(MROWS)); - Draw_Menu_Icon(MROWS, ICON_Info); - break; + case CONTROL_CASE_ADVSET: Item_Control_Advanced(MROWS); break; + case CONTROL_CASE_INFO: Item_Control_Info(MROWS); break; default: break; } } - else { + else Move_Highlight(1, select_control.now + MROWS - index_control); - } } } else if (encoder_diffState == ENCODER_DIFF_CCW) { @@ -2681,20 +2878,14 @@ void HMI_Control() { index_control--; Scroll_Menu(DWIN_SCROLL_DOWN); switch (index_control) { // First menu items - case MROWS : - Draw_Back_First(); - break; - case MROWS + 1: // Temperature > - Draw_Menu_Line(0, ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), true); - break; - case MROWS + 2: // Move > - Draw_Menu_Line(0, ICON_Motion, GET_TEXT(MSG_MOTION), true); + case MROWS: Draw_Back_First(); break; + case MROWS + 1: Item_Control_Temp(0); break; + case MROWS + 2: Item_Control_Motion(0); break; default: break; } } - else { + else Move_Highlight(-1, select_control.now + MROWS - index_control); - } } } else if (encoder_diffState == ENCODER_DIFF_ENTER) { @@ -2731,7 +2922,7 @@ void HMI_Control() { case CONTROL_CASE_ADVSET: // Advanced Settings checkkey = AdvSet; select_advset.reset(); - Draw_AdvSet_Menu(); + Draw_AdvancedSettings_Menu(); break; case CONTROL_CASE_INFO: // Info checkkey = Info; @@ -2746,7 +2937,7 @@ void HMI_Control() { #if HAS_ONESTEP_LEVELING - /* Leveling */ + // Leveling void HMI_Leveling() { Popup_Window_Leveling(); DWIN_UpdateLCD(); @@ -2755,7 +2946,7 @@ void HMI_Control() { #endif -/* Axis Move */ +// Axis Move void HMI_AxisMove() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2767,10 +2958,10 @@ void HMI_AxisMove() { HMI_flag.ETempTooLow_flag = false; HMI_ValueStruct.Move_E_scaled = current_position.e * MINUNITMULT; Draw_Move_Menu(); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scaled); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scaled); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scaled); - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(4), 0); + Draw_Edit_Float3(1, HMI_ValueStruct.Move_X_scaled); + Draw_Edit_Float3(2, HMI_ValueStruct.Move_Y_scaled); + Draw_Edit_Float3(3, HMI_ValueStruct.Move_Z_scaled); + Draw_Edit_Signed_Float3(4, 0); DWIN_UpdateLCD(); } return; @@ -2795,19 +2986,19 @@ void HMI_AxisMove() { case 1: // X axis move checkkey = Move_X; HMI_ValueStruct.Move_X_scaled = current_position.x * MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scaled); + Draw_Edit_Float3(1, HMI_ValueStruct.Move_X_scaled, true); EncoderRate.enabled = true; break; case 2: // Y axis move checkkey = Move_Y; HMI_ValueStruct.Move_Y_scaled = current_position.y * MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scaled); + Draw_Edit_Float3(2, HMI_ValueStruct.Move_Y_scaled, true); EncoderRate.enabled = true; break; case 3: // Z axis move checkkey = Move_Z; HMI_ValueStruct.Move_Z_scaled = current_position.z * MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scaled); + Draw_Edit_Float3(3, HMI_ValueStruct.Move_Z_scaled, true); EncoderRate.enabled = true; break; #if HAS_HOTEND @@ -2823,7 +3014,7 @@ void HMI_AxisMove() { #endif checkkey = Extruder; HMI_ValueStruct.Move_E_scaled = current_position.e * MINUNITMULT; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scaled); + Draw_Edit_Signed_Float3(4, HMI_ValueStruct.Move_E_scaled, true); EncoderRate.enabled = true; break; #endif @@ -2832,7 +3023,7 @@ void HMI_AxisMove() { DWIN_UpdateLCD(); } -/* TemperatureID */ +// TemperatureID void HMI_Temperature() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -2856,7 +3047,7 @@ void HMI_Temperature() { case TEMP_CASE_TEMP: // Nozzle temperature checkkey = ETemp; HMI_ValueStruct.E_Temp = thermalManager.degTargetHotend(0); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(1), HMI_ValueStruct.E_Temp); + Draw_Edit_Integer3(1, HMI_ValueStruct.E_Temp, true); EncoderRate.enabled = true; break; #endif @@ -2864,7 +3055,7 @@ void HMI_Temperature() { case TEMP_CASE_BED: // Bed temperature checkkey = BedTemp; HMI_ValueStruct.Bed_Temp = thermalManager.degTargetBed(); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(2), HMI_ValueStruct.Bed_Temp); + Draw_Edit_Integer3(2, HMI_ValueStruct.Bed_Temp, true); EncoderRate.enabled = true; break; #endif @@ -2872,7 +3063,7 @@ void HMI_Temperature() { case TEMP_CASE_FAN: // Fan speed checkkey = FanSpeed; HMI_ValueStruct.Fan_speed = thermalManager.fan_speed[0]; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(3), HMI_ValueStruct.Fan_speed); + Draw_Edit_Integer3(3, HMI_ValueStruct.Fan_speed, true); EncoderRate.enabled = true; break; #endif @@ -2885,53 +3076,53 @@ void HMI_Temperature() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 59, 16, 139, 29); // "PLA Settings" - DWIN_Frame_AreaCopy(1, 100, 89, 124, 101, LBLX, MBASE(PREHEAT_CASE_TEMP)); - DWIN_Frame_AreaCopy(1, 1, 134, 56, 146, LBLX + 24, MBASE(PREHEAT_CASE_TEMP)); // PLA nozzle temp + DWIN_Frame_TitleCopy(59, 16, 81, 14); // "PLA Settings" + Item_AreaCopy(100, 89, 124, 101, PREHEAT_CASE_TEMP); + Item_AreaCopy(1, 134, 56, 146, PREHEAT_CASE_TEMP, 24); // PLA nozzle temp #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 100, 89, 124, 101, LBLX, MBASE(PREHEAT_CASE_BED)); - DWIN_Frame_AreaCopy(1, 58, 134, 113, 146, LBLX + 24, MBASE(PREHEAT_CASE_BED)); // PLA bed temp + Item_AreaCopy(100, 89, 124, 101, PREHEAT_CASE_BED); + Item_AreaCopy(58, 134, 113, 146, PREHEAT_CASE_BED, 24); // PLA bed temp #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 100, 89, 124, 101, LBLX, MBASE(PREHEAT_CASE_FAN)); - DWIN_Frame_AreaCopy(1, 115, 134, 170, 146, LBLX + 24, MBASE(PREHEAT_CASE_FAN)); // PLA fan speed + Item_AreaCopy(100, 89, 124, 101, PREHEAT_CASE_FAN); + Item_AreaCopy(115, 134, 170, 146, PREHEAT_CASE_FAN, 24); // PLA fan speed #endif #if ENABLED(EEPROM_SETTINGS) - DWIN_Frame_AreaCopy(1, 72, 148, 151, 162, LBLX, MBASE(PREHEAT_CASE_SAVE)); // Save PLA configuration + Item_AreaCopy(72, 148, 151, 162, PREHEAT_CASE_SAVE); // Save PLA configuration #endif } else { #ifdef USE_STRING_HEADINGS - Draw_Title("PLA Settings"); // TODO: GET_TEXT_F + Draw_Title(PREHEAT_1_LABEL " Settings"); // TODO: GET_TEXT_F #else - DWIN_Frame_TitleCopy(1, 56, 16, 141, 28); // "PLA Settings" + DWIN_Frame_TitleCopy(56, 15, 85, 14); // "Temperature" TODO: "PLA Settings" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(PREHEAT_CASE_TEMP), F("Nozzle Temp")); + DWIN_Draw_Label(PREHEAT_CASE_TEMP, F("Nozzle Temp")); #if HAS_HEATED_BED - DWIN_Draw_Label(MBASE(PREHEAT_CASE_BED), F("Bed Temp")); + DWIN_Draw_Label(PREHEAT_CASE_BED, F("Bed Temp")); #endif #if HAS_FAN - DWIN_Draw_Label(MBASE(PREHEAT_CASE_FAN), GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_Label(PREHEAT_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); #endif #if ENABLED(EEPROM_SETTINGS) - DWIN_Draw_Label(MBASE(PREHEAT_CASE_SAVE), GET_TEXT_F(MSG_STORE_EEPROM)); + DWIN_Draw_Label(PREHEAT_CASE_SAVE, GET_TEXT_F(MSG_STORE_EEPROM)); #endif #else - DWIN_Frame_AreaCopy(1, 157, 76, 181, 86, LBLX, MBASE(PREHEAT_CASE_TEMP)); - DWIN_Frame_AreaCopy(1, 197, 104, 238, 114, LBLX + 27, MBASE(PREHEAT_CASE_TEMP)); - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 71, MBASE(PREHEAT_CASE_TEMP)); // PLA nozzle temp + say_pla_en(0, PREHEAT_CASE_TEMP); // "PLA" + Item_AreaCopy(198, 104, 237, 114, PREHEAT_CASE_TEMP, 27); // "Nozzle" + Item_AreaCopy(1, 89, 81, 102, PREHEAT_CASE_TEMP, 71); // "Temperature" #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 157, 76, 181, 86, LBLX, MBASE(PREHEAT_CASE_BED) + 3); - DWIN_Frame_AreaCopy(1, 240, 104, 264, 114, LBLX + 27, MBASE(PREHEAT_CASE_BED) + 3); - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 54, MBASE(PREHEAT_CASE_BED) + 3); // PLA bed temp + say_pla_en(0, PREHEAT_CASE_BED); // "PLA" + Item_AreaCopy(240, 104, 264, 114, PREHEAT_CASE_BED, 27); // "Bed" + Item_AreaCopy(1, 89, 83, 101, PREHEAT_CASE_BED, 54); // "Temperature" #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 157, 76, 181, 86, LBLX, MBASE(PREHEAT_CASE_FAN)); - DWIN_Frame_AreaCopy(1, 0, 119, 64, 132, LBLX + 27, MBASE(PREHEAT_CASE_FAN)); // PLA fan speed + say_pla_en(0, PREHEAT_CASE_FAN); // "PLA" + Item_AreaCopy(0, 119, 64, 132, PREHEAT_CASE_FAN, 27); // "Fan speed" #endif #if ENABLED(EEPROM_SETTINGS) - DWIN_Frame_AreaCopy(1, 97, 165, 229, 177, LBLX, MBASE(PREHEAT_CASE_SAVE)); // Save PLA configuration + Item_AreaCopy(98, 164, 233, 177, PREHEAT_CASE_SAVE); // "Save PLA parameters" #endif #endif } @@ -2940,14 +3131,14 @@ void HMI_Temperature() { uint8_t i = 0; Draw_Menu_Line(++i, ICON_SetEndTemp); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), ui.material_preset[0].hotend_temp); + Draw_Edit_Integer3(i, ui.material_preset[0].hotend_temp); #if HAS_HEATED_BED Draw_Menu_Line(++i, ICON_SetBedTemp); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), ui.material_preset[0].bed_temp); + Draw_Edit_Integer3(i, ui.material_preset[0].bed_temp); #endif #if HAS_FAN Draw_Menu_Line(++i, ICON_FanSpeed); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), ui.material_preset[0].fan_speed); + Draw_Edit_Integer3(i, ui.material_preset[0].fan_speed); #endif #if ENABLED(EEPROM_SETTINGS) Draw_Menu_Line(++i, ICON_WriteEEPROM); @@ -2962,56 +3153,56 @@ void HMI_Temperature() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 142, 16, 223, 29); // "ABS Settings" + DWIN_Frame_TitleCopy(142, 16, 82, 14); // "ABS Settings" - DWIN_Frame_AreaCopy(1, 180, 89, 204, 100, LBLX, MBASE(PREHEAT_CASE_TEMP)); - DWIN_Frame_AreaCopy(1, 1, 134, 56, 146, LBLX + 24, MBASE(PREHEAT_CASE_TEMP)); // ABS nozzle temp + Item_AreaCopy(180, 89, 204, 100, PREHEAT_CASE_TEMP); + Item_AreaCopy(1, 134, 56, 146, PREHEAT_CASE_TEMP, 24); // ABS nozzle temp #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 180, 89, 204, 100, LBLX, MBASE(PREHEAT_CASE_BED)); - DWIN_Frame_AreaCopy(1, 58, 134, 113, 146, LBLX + 24, MBASE(PREHEAT_CASE_BED)); // ABS bed temp + Item_AreaCopy(180, 89, 204, 100, PREHEAT_CASE_BED); + Item_AreaCopy(58, 134, 113, 146, PREHEAT_CASE_BED, 24); // ABS bed temp #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 180, 89, 204, 100, LBLX, MBASE(PREHEAT_CASE_FAN)); - DWIN_Frame_AreaCopy(1, 115, 134, 170, 146, LBLX + 24, MBASE(PREHEAT_CASE_FAN)); // ABS fan speed + Item_AreaCopy(180, 89, 204, 100, PREHEAT_CASE_FAN); + Item_AreaCopy(115, 134, 170, 146, PREHEAT_CASE_FAN, 24); // ABS fan speed #endif #if ENABLED(EEPROM_SETTINGS) - DWIN_Frame_AreaCopy(1, 72, 148, 151, 162, LBLX, MBASE(PREHEAT_CASE_SAVE)); - DWIN_Frame_AreaCopy(1, 180, 89, 204, 100, LBLX + 28, MBASE(PREHEAT_CASE_SAVE) + 2); // Save ABS configuration + Item_AreaCopy(72, 148, 151, 162, PREHEAT_CASE_SAVE); + Item_AreaCopy(180, 89, 204, 100, PREHEAT_CASE_SAVE, 28, 2); // Save ABS configuration #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title("ABS Settings"); // TODO: GET_TEXT_F #else - DWIN_Frame_TitleCopy(1, 56, 16, 141, 28); // "ABS Settings" + DWIN_Frame_TitleCopy(56, 15, 85, 14); // "Temperature" TODO: "ABS Settings" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(PREHEAT_CASE_TEMP), F("Nozzle Temp")); + DWIN_Draw_Label(PREHEAT_CASE_TEMP, F("Nozzle Temp")); #if HAS_HEATED_BED - DWIN_Draw_Label(MBASE(PREHEAT_CASE_BED), F("Bed Temp")); + DWIN_Draw_Label(PREHEAT_CASE_BED, F("Bed Temp")); #endif #if HAS_FAN - DWIN_Draw_Label(MBASE(PREHEAT_CASE_FAN), GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_Label(PREHEAT_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); #endif #if ENABLED(EEPROM_SETTINGS) - DWIN_Draw_Label(MBASE(PREHEAT_CASE_SAVE), GET_TEXT_F(MSG_STORE_EEPROM)); + DWIN_Draw_Label(PREHEAT_CASE_SAVE, GET_TEXT_F(MSG_STORE_EEPROM)); #endif #else - DWIN_Frame_AreaCopy(1, 172, 76, 198, 86, LBLX, MBASE(PREHEAT_CASE_TEMP)); - DWIN_Frame_AreaCopy(1, 197, 104, 238, 114, LBLX + 27, MBASE(PREHEAT_CASE_TEMP)); - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 71, MBASE(PREHEAT_CASE_TEMP)); // ABS nozzle temp + say_abs_en(0, PREHEAT_CASE_TEMP); // "ABS" + Item_AreaCopy(197, 104, 238, 114, PREHEAT_CASE_TEMP, 29); // "Nozzle" + Item_AreaCopy(1, 89, 34, 102, PREHEAT_CASE_TEMP, 73); // "Temp" #if HAS_HEATED_BED - DWIN_Frame_AreaCopy(1, 172, 76, 198, 86, LBLX, MBASE(PREHEAT_CASE_BED) + 3); - DWIN_Frame_AreaCopy(1, 240, 104, 264, 114, LBLX + 27, MBASE(PREHEAT_CASE_BED) + 3); - DWIN_Frame_AreaCopy(1, 1, 89, 83, 101, LBLX + 54, MBASE(PREHEAT_CASE_BED) + 3); // ABS bed temp + say_abs_en(0, PREHEAT_CASE_BED); // "ABS" + Item_AreaCopy(240, 104, 264, 114, PREHEAT_CASE_BED, 29); // "Bed" + Item_AreaCopy(1, 89, 83, 102, PREHEAT_CASE_BED, 56); // "Temperature" #endif #if HAS_FAN - DWIN_Frame_AreaCopy(1, 172, 76, 198, 86, LBLX, MBASE(PREHEAT_CASE_FAN)); - DWIN_Frame_AreaCopy(1, 0, 119, 64, 132, LBLX + 27, MBASE(PREHEAT_CASE_FAN)); // ABS fan speed + say_abs_en(0, PREHEAT_CASE_FAN); // "ABS" + Item_AreaCopy(0, 119, 64, 132, PREHEAT_CASE_FAN, 29); // "Fan speed" #endif #if ENABLED(EEPROM_SETTINGS) - DWIN_Frame_AreaCopy(1, 97, 165, 229, 177, LBLX, MBASE(PREHEAT_CASE_SAVE)); - DWIN_Frame_AreaCopy(1, 172, 76, 198, 86, LBLX + 33, MBASE(PREHEAT_CASE_SAVE)); // Save ABS configuration + Item_AreaCopy(98, 165, 233, 177, PREHEAT_CASE_SAVE); // "Save PLA parameters" + say_abs_en(33, PREHEAT_CASE_SAVE); // "ABS" #endif #endif } @@ -3020,14 +3211,14 @@ void HMI_Temperature() { uint8_t i = 0; Draw_Menu_Line(++i, ICON_SetEndTemp); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), ui.material_preset[1].hotend_temp); + Draw_Edit_Integer3(i, ui.material_preset[1].hotend_temp); #if HAS_HEATED_BED Draw_Menu_Line(++i, ICON_SetBedTemp); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), ui.material_preset[1].bed_temp); + Draw_Edit_Integer3(i, ui.material_preset[1].bed_temp); #endif #if HAS_FAN Draw_Menu_Line(++i, ICON_FanSpeed); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 216, MBASE(i), ui.material_preset[1].fan_speed); + Draw_Edit_Integer3(i, ui.material_preset[1].fan_speed); #endif #if ENABLED(EEPROM_SETTINGS) Draw_Menu_Line(++i, ICON_WriteEEPROM); @@ -3045,63 +3236,53 @@ void Draw_Max_Speed_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Max Speed (mm/s)" + DWIN_Frame_TitleCopy(1, 16, 28, 13); // "Max Speed (mm/s)" - auto say_max_speed = [](const uint16_t row) { - DWIN_Frame_AreaCopy(1, 173, 133, 228, 147, LBLX, row); // "Max speed" + auto say_max_speed_cn = [](const uint8_t line) { + Item_AreaCopy(173, 133, 228, 147, line); // "Max speed" }; - say_max_speed(MBASE(1)); // "Max speed" - DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 58, MBASE(1)); // X - say_max_speed(MBASE(2)); // "Max speed" - DWIN_Frame_AreaCopy(1, 1, 150, 7, 160, LBLX + 58, MBASE(2) + 3); // Y - say_max_speed(MBASE(3)); // "Max speed" - DWIN_Frame_AreaCopy(1, 9, 150, 16, 160, LBLX + 58, MBASE(3) + 3); // Z + say_max_speed_cn(1); // "Max speed" + Item_AreaCopy(229, 133, 236, 147, 1, 58); // "X" + say_max_speed_cn(2); // "Max speed" + Item_AreaCopy(1, 150, 7, 160, 2, 58, 3); // "Y" + say_max_speed_cn(3); // "Max speed" + Item_AreaCopy(9, 150, 16, 160, 3, 58, 3); // "Z" #if HAS_HOTEND - say_max_speed(MBASE(4)); // "Max speed" - DWIN_Frame_AreaCopy(1, 18, 150, 25, 160, LBLX + 58, MBASE(4) + 3); // E + say_max_speed_cn(4); // "Max speed" + Item_AreaCopy(18, 150, 25, 160, 4, 58, 3); // "E" #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title("Max Speed (mm/s)"); // TODO: GET_TEXT_F #else - DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Max Speed (mm/s)" + DWIN_Frame_TitleCopy(144, 16, 46, 11); // "Max Speed (mm/s)" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(1), F("Max Feedrate X")); - DWIN_Draw_Label(MBASE(2), F("Max Feedrate Y")); - DWIN_Draw_Label(MBASE(3), F("Max Feedrate Z")); + DWIN_Draw_Label(1, F("Max Feedrate X")); + DWIN_Draw_Label(2, F("Max Feedrate Y")); + DWIN_Draw_Label(3, F("Max Feedrate Z")); #if HAS_HOTEND - DWIN_Draw_Label(MBASE(4), F("Max Feedrate E")); + DWIN_Draw_Label(4, F("Max Feedrate E")); #endif #else - draw_max_en(MBASE(1)); // "Max" - DWIN_Frame_AreaCopy(1, 184, 119, 234, 132, LBLX + 27, MBASE(1)); // "Speed X" - - draw_max_en(MBASE(2)); // "Max" - draw_speed_en(27, MBASE(2)); // "Speed" - say_y(70, MBASE(2)); // "Y" - - draw_max_en(MBASE(3)); // "Max" - draw_speed_en(27, MBASE(3)); // "Speed" - say_z(70, MBASE(3)); // "Z" - + say_max_en(1); say_speed_en(30, 1); say_x_en(73, 1); // "Max Speed X" + say_max_en(2); say_speed_en(30, 2); say_y_en(73, 2); // "Max Speed Y" + say_max_en(3); say_speed_en(30, 3); say_z_en(73, 3); // "Max Speed Z" #if HAS_HOTEND - draw_max_en(MBASE(4)); // "Max" - draw_speed_en(27, MBASE(4)); // "Speed" - say_e(70, MBASE(4)); // "E" + say_max_en(4); say_speed_en(30, 4); say_e_en(73, 4); // "Max Speed E" #endif #endif } Draw_Back_First(); LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MaxSpeedX + i); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(1), planner.settings.max_feedrate_mm_s[X_AXIS]); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(2), planner.settings.max_feedrate_mm_s[Y_AXIS]); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(3), planner.settings.max_feedrate_mm_s[Z_AXIS]); + Draw_Edit_Integer4(1, planner.settings.max_feedrate_mm_s[X_AXIS]); + Draw_Edit_Integer4(2, planner.settings.max_feedrate_mm_s[Y_AXIS]); + Draw_Edit_Integer4(3, planner.settings.max_feedrate_mm_s[Z_AXIS]); #if HAS_HOTEND - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(4), planner.settings.max_feedrate_mm_s[E_AXIS]); + Draw_Edit_Integer4(4, planner.settings.max_feedrate_mm_s[E_AXIS]); #endif } @@ -3109,53 +3290,53 @@ void Draw_Max_Accel_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Acceleration" - - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX, MBASE(1)); - DWIN_Frame_AreaCopy(1, 28, 149, 69, 161, LBLX + 27, MBASE(1) + 1); - DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 71, MBASE(1)); // Max acceleration X - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX, MBASE(2)); - DWIN_Frame_AreaCopy(1, 28, 149, 69, 161, LBLX + 27, MBASE(2) + 1); - DWIN_Frame_AreaCopy(1, 1, 150, 7, 160, LBLX + 71, MBASE(2) + 2); // Max acceleration Y - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX, MBASE(3)); - DWIN_Frame_AreaCopy(1, 28, 149, 69, 161, LBLX + 27, MBASE(3) + 1); - DWIN_Frame_AreaCopy(1, 9, 150, 16, 160, LBLX + 71, MBASE(3) + 2); // Max acceleration Z + DWIN_Frame_TitleCopy(1, 16, 28, 13); // "Acceleration" + + Item_AreaCopy(173, 133, 200, 147, 1); + Item_AreaCopy( 28, 149, 69, 161, 1, 30, 1); + Item_AreaCopy(229, 133, 236, 147, 1, 74); // Max acceleration X + Item_AreaCopy(173, 133, 200, 147, 2); + Item_AreaCopy( 28, 149, 69, 161, 2, 30, 1); + Item_AreaCopy( 1, 150, 7, 160, 2, 74, 2); // Max acceleration Y + Item_AreaCopy(173, 133, 200, 147, 3); + Item_AreaCopy( 28, 149, 69, 161, 3, 30, 1); + Item_AreaCopy( 9, 150, 16, 160, 3, 74, 2); // Max acceleration Z #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX, MBASE(4)); - DWIN_Frame_AreaCopy(1, 28, 149, 69, 161, LBLX + 27, MBASE(4) + 1); - DWIN_Frame_AreaCopy(1, 18, 150, 25, 160, LBLX + 71, MBASE(4) + 2); // Max acceleration E + Item_AreaCopy(173, 133, 200, 147, 4); + Item_AreaCopy( 28, 149, 69, 161, 4, 30, 1); + Item_AreaCopy( 18, 150, 25, 160, 4, 74, 2); // Max acceleration E #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_ACCELERATION)); #else - DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Acceleration" + DWIN_Frame_TitleCopy(144, 16, 46, 11); // "Acceleration" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(1), F("Max Accel X")); - DWIN_Draw_Label(MBASE(2), F("Max Accel Y")); - DWIN_Draw_Label(MBASE(3), F("Max Accel Z")); + DWIN_Draw_Label(1, F("Max Accel X")); + DWIN_Draw_Label(2, F("Max Accel Y")); + DWIN_Draw_Label(3, F("Max Accel Z")); #if HAS_HOTEND - DWIN_Draw_Label(MBASE(4), F("Max Accel E")); + DWIN_Draw_Label(4, F("Max Accel E")); #endif #else - draw_max_accel_en(MBASE(1)); say_x(108, MBASE(1)); // "Max Acceleration X" - draw_max_accel_en(MBASE(2)); say_y(108, MBASE(2)); // "Max Acceleration Y" - draw_max_accel_en(MBASE(3)); say_z(108, MBASE(3)); // "Max Acceleration Z" + say_max_accel_en(1); say_x_en(112, 1); // "Max Acceleration X" + say_max_accel_en(2); say_y_en(112, 2); // "Max Acceleration Y" + say_max_accel_en(3); say_z_en(112, 3); // "Max Acceleration Z" #if HAS_HOTEND - draw_max_accel_en(MBASE(4)); say_e(108, MBASE(4)); // "Max Acceleration E" + say_max_accel_en(4); say_e_en(112, 4); // "Max Acceleration E" #endif #endif } Draw_Back_First(); LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MaxAccX + i); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(1), planner.settings.max_acceleration_mm_per_s2[X_AXIS]); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(2), planner.settings.max_acceleration_mm_per_s2[Y_AXIS]); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(3), planner.settings.max_acceleration_mm_per_s2[Z_AXIS]); + Draw_Edit_Integer4(1, planner.settings.max_acceleration_mm_per_s2[X_AXIS]); + Draw_Edit_Integer4(2, planner.settings.max_acceleration_mm_per_s2[Y_AXIS]); + Draw_Edit_Integer4(3, planner.settings.max_acceleration_mm_per_s2[Z_AXIS]); #if HAS_HOTEND - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 4, 210, MBASE(4), planner.settings.max_acceleration_mm_per_s2[E_AXIS]); + Draw_Edit_Integer4(4, planner.settings.max_acceleration_mm_per_s2[E_AXIS]); #endif } @@ -3164,72 +3345,57 @@ void Draw_Max_Accel_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Jerk" - - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX , MBASE(1)); - DWIN_Frame_AreaCopy(1, 1, 180, 28, 192, LBLX + 27, MBASE(1) + 1); - DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(1)); - DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 83, MBASE(1)); // Max Jerk speed X - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX , MBASE(2)); - DWIN_Frame_AreaCopy(1, 1, 180, 28, 192, LBLX + 27, MBASE(2) + 1); - DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(2)); - DWIN_Frame_AreaCopy(1, 1, 150, 7, 160, LBLX + 83, MBASE(2) + 3); // Max Jerk speed Y - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX , MBASE(3)); - DWIN_Frame_AreaCopy(1, 1, 180, 28, 192, LBLX + 27, MBASE(3) + 1); - DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(3)); - DWIN_Frame_AreaCopy(1, 9, 150, 16, 160, LBLX + 83, MBASE(3) + 3); // Max Jerk speed Z + DWIN_Frame_TitleCopy(1, 16, 28, 13); // "Jerk" + + Item_AreaCopy(173, 133, 200, 147, 1); + Item_AreaCopy( 1, 180, 28, 192, 1, 30, 1); + Item_AreaCopy(202, 133, 228, 147, 1, 56); + Item_AreaCopy(229, 133, 236, 147, 1, 86); // Max Jerk speed X + Item_AreaCopy(173, 133, 200, 147, 2); + Item_AreaCopy( 1, 180, 28, 192, 2, 30, 1); + Item_AreaCopy(202, 133, 228, 147, 2, 56); + Item_AreaCopy( 1, 150, 7, 160, 2, 86, 3); // Max Jerk speed Y + Item_AreaCopy(173, 133, 200, 147, 3); + Item_AreaCopy( 1, 180, 28, 192, 3, 30, 1); + Item_AreaCopy(202, 133, 228, 147, 3, 56); + Item_AreaCopy( 9, 150, 16, 160, 3, 86, 3); // Max Jerk speed Z #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX , MBASE(4)); - DWIN_Frame_AreaCopy(1, 1, 180, 28, 192, LBLX + 27, MBASE(4) + 1); - DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(4)); - DWIN_Frame_AreaCopy(1, 18, 150, 25, 160, LBLX + 83, MBASE(4) + 3); // Max Jerk speed E + Item_AreaCopy(173, 133, 200, 147, 4); + Item_AreaCopy( 1, 180, 28, 192, 4, 30, 1); + Item_AreaCopy(202, 133, 228, 147, 4, 56); + Item_AreaCopy( 18, 150, 25, 160, 4, 86, 3); // Max Jerk speed E #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_JERK)); #else - DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Jerk" + DWIN_Frame_TitleCopy(144, 16, 46, 11); // "Jerk" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(1), F("Max Jerk X")); - DWIN_Draw_Label(MBASE(2), F("Max Jerk Y")); - DWIN_Draw_Label(MBASE(3), F("Max Jerk Z")); + DWIN_Draw_Label(1, GET_TEXT_F(MSG_VA_JERK)); + DWIN_Draw_Label(2, GET_TEXT_F(MSG_VB_JERK)); + DWIN_Draw_Label(3, GET_TEXT_F(MSG_VC_JERK)); #if HAS_HOTEND - DWIN_Draw_Label(MBASE(4), F("Max Jerk E")); + DWIN_Draw_Label(4, GET_TEXT_F(MSG_VE_JERK)); #endif #else - draw_max_en(MBASE(1)); // "Max" - draw_jerk_en(MBASE(1)); // "Jerk" - draw_speed_en(72, MBASE(1)); // "Speed" - say_x(115, MBASE(1)); // "X" - - draw_max_en(MBASE(2)); // "Max" - draw_jerk_en(MBASE(2)); // "Jerk" - draw_speed_en(72, MBASE(2)); // "Speed" - say_y(115, MBASE(2)); // "Y" - - draw_max_en(MBASE(3)); // "Max" - draw_jerk_en(MBASE(3)); // "Jerk" - draw_speed_en(72, MBASE(3)); // "Speed" - say_z(115, MBASE(3)); // "Z" - + say_max_jerk_speed_en(1); say_x_en(102, 1); // Max Jerk speed X + say_max_jerk_speed_en(2); say_y_en(102, 2); // Max Jerk speed Y + say_max_jerk_speed_en(3); say_z_en(102, 3); // Max Jerk speed Z #if HAS_HOTEND - draw_max_en(MBASE(4)); // "Max" - draw_jerk_en(MBASE(4)); // "Jerk" - draw_speed_en(72, MBASE(4)); // "Speed" - say_e(115, MBASE(4)); // "E" + say_max_jerk_speed_en(4); say_e_en(102, 4); // Max Jerk speed E #endif #endif } Draw_Back_First(); LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MaxSpeedJerkX + i); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(1), planner.max_jerk[X_AXIS] * MINUNITMULT); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(2), planner.max_jerk[Y_AXIS] * MINUNITMULT); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(3), planner.max_jerk[Z_AXIS] * MINUNITMULT); + Draw_Edit_Float3(1, planner.max_jerk[X_AXIS] * MINUNITMULT); + Draw_Edit_Float3(2, planner.max_jerk[Y_AXIS] * MINUNITMULT); + Draw_Edit_Float3(3, planner.max_jerk[Z_AXIS] * MINUNITMULT); #if HAS_HOTEND - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(4), planner.max_jerk[E_AXIS] * MINUNITMULT); + Draw_Edit_Float3(4, planner.max_jerk[E_AXIS] * MINUNITMULT); #endif } #endif @@ -3238,53 +3404,53 @@ void Draw_Steps_Menu() { Clear_Main_Window(); if (HMI_IsChinese()) { - DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Steps per mm" - - DWIN_Frame_AreaCopy(1, 153, 148, 194, 161, LBLX, MBASE(1)); - DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 44, MBASE(1)); // Transmission Ratio X - DWIN_Frame_AreaCopy(1, 153, 148, 194, 161, LBLX, MBASE(2)); - DWIN_Frame_AreaCopy(1, 1, 150, 7, 160, LBLX + 44, MBASE(2) + 3); // Transmission Ratio Y - DWIN_Frame_AreaCopy(1, 153, 148, 194, 161, LBLX, MBASE(3)); - DWIN_Frame_AreaCopy(1, 9, 150, 16, 160, LBLX + 44, MBASE(3) + 3); // Transmission Ratio Z + DWIN_Frame_TitleCopy(1, 16, 28, 13); // "Steps per mm" + + Item_AreaCopy(153, 148, 194, 161, 1); + Item_AreaCopy(229, 133, 236, 147, 1, 44); // Transmission Ratio X + Item_AreaCopy(153, 148, 194, 161, 2); + Item_AreaCopy( 1, 150, 7, 160, 2, 44, 3); // Transmission Ratio Y + Item_AreaCopy(153, 148, 194, 161, 3); + Item_AreaCopy( 9, 150, 16, 160, 3, 44, 3); // Transmission Ratio Z #if HAS_HOTEND - DWIN_Frame_AreaCopy(1, 153, 148, 194, 161, LBLX, MBASE(4)); - DWIN_Frame_AreaCopy(1, 18, 150, 25, 160, LBLX + 44, MBASE(4) + 3); // Transmission Ratio E + Item_AreaCopy(153, 148, 194, 161, 4); + Item_AreaCopy( 18, 150, 25, 160, 4, 44, 3); // Transmission Ratio E #endif } else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_STEPS_PER_MM)); #else - DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Steps per mm" + DWIN_Frame_TitleCopy(144, 16, 46, 11); // "Steps per mm" #endif #ifdef USE_STRING_TITLES - DWIN_Draw_Label(MBASE(1), F("Steps/mm X")); - DWIN_Draw_Label(MBASE(2), F("Steps/mm Y")); - DWIN_Draw_Label(MBASE(3), F("Steps/mm Z")); + DWIN_Draw_Label(1, GET_TEXT_F(MSG_A_STEPS)); + DWIN_Draw_Label(2, GET_TEXT_F(MSG_B_STEPS)); + DWIN_Draw_Label(3, GET_TEXT_F(MSG_C_STEPS)); #if HAS_HOTEND - DWIN_Draw_Label(MBASE(4), F("Steps/mm E")); + DWIN_Draw_Label(4, GET_TEXT_F(MSG_E_STEPS)); #endif #else - draw_steps_per_mm(MBASE(1)); say_x(103, MBASE(1)); // "Steps-per-mm X" - draw_steps_per_mm(MBASE(2)); say_y(103, MBASE(2)); // "Y" - draw_steps_per_mm(MBASE(3)); say_z(103, MBASE(3)); // "Z" + say_steps_per_mm_en(1); say_x_en(101, 1); // "Steps-per-mm X" + say_steps_per_mm_en(2); say_y_en(101, 2); // "Y" + say_steps_per_mm_en(3); say_z_en(101, 3); // "Z" #if HAS_HOTEND - draw_steps_per_mm(MBASE(4)); say_e(103, MBASE(4)); // "E" + say_steps_per_mm_en(4); say_e_en(101, 4); // "E" #endif #endif } Draw_Back_First(); LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_StepX + i); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(1), planner.settings.axis_steps_per_mm[X_AXIS] * MINUNITMULT); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(2), planner.settings.axis_steps_per_mm[Y_AXIS] * MINUNITMULT); - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(3), planner.settings.axis_steps_per_mm[Z_AXIS] * MINUNITMULT); + Draw_Edit_Float3(1, planner.settings.axis_steps_per_mm[X_AXIS] * MINUNITMULT); + Draw_Edit_Float3(2, planner.settings.axis_steps_per_mm[Y_AXIS] * MINUNITMULT); + Draw_Edit_Float3(3, planner.settings.axis_steps_per_mm[Z_AXIS] * MINUNITMULT); #if HAS_HOTEND - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(4), planner.settings.axis_steps_per_mm[E_AXIS] * MINUNITMULT); + Draw_Edit_Float3(4, planner.settings.axis_steps_per_mm[E_AXIS] * MINUNITMULT); #endif } -/* Motion */ +// Motion void HMI_Motion() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3332,7 +3498,7 @@ void HMI_Motion() { DWIN_UpdateLCD(); } -/* Advanced Settings */ +// Advanced Settings void HMI_AdvSet() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3418,7 +3584,7 @@ void HMI_AdvSet() { #if ENABLED(POWER_LOSS_RECOVERY) case ADVSET_CASE_PWRLOSSR: // Power-loss recovery recovery.enable(!recovery.enabled); - Draw_Chkb_Line(ADVSET_CASE_PWRLOSSR + MROWS - index_advset, recovery.enabled); + Draw_Checkbox_Line(ADVSET_CASE_PWRLOSSR + MROWS - index_advset, recovery.enabled); break; #endif default: break; @@ -3429,7 +3595,7 @@ void HMI_AdvSet() { #if HAS_HOME_OFFSET - /* Home Offset */ + // Home Offset void HMI_HomeOff() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3446,21 +3612,21 @@ void HMI_AdvSet() { case 0: // Back checkkey = AdvSet; select_advset.set(ADVSET_CASE_HOMEOFF); - Draw_AdvSet_Menu(); + Draw_AdvancedSettings_Menu(); break; case 1: // Home Offset X checkkey = HomeOffX; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(1), HMI_ValueStruct.Home_OffX_scaled); + Draw_Edit_Signed_Float3(1, HMI_ValueStruct.Home_OffX_scaled, true); EncoderRate.enabled = true; break; case 2: // Home Offset Y checkkey = HomeOffY; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(2), HMI_ValueStruct.Home_OffY_scaled); + Draw_Edit_Signed_Float3(2, HMI_ValueStruct.Home_OffY_scaled, true); EncoderRate.enabled = true; break; case 3: // Home Offset Z checkkey = HomeOffZ; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(3), HMI_ValueStruct.Home_OffZ_scaled); + Draw_Edit_Signed_Float3(3, HMI_ValueStruct.Home_OffZ_scaled, true); EncoderRate.enabled = true; break; default: break; @@ -3471,17 +3637,17 @@ void HMI_AdvSet() { void HMI_HomeOffN(const AxisEnum axis, float &posScaled, const_float_t lo, const_float_t hi) { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, posScaled)) { - checkkey = HomeOff; - EncoderRate.enabled = false; - set_home_offset(axis, posScaled / 10); - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(select_item.now), posScaled); - return; - } - LIMIT(posScaled, lo, hi); - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, UNITFDIGITS, 216, MBASE(select_item.now), posScaled); + if (encoder_diffState == ENCODER_DIFF_NO) return; + + if (Apply_Encoder(encoder_diffState, posScaled)) { + checkkey = HomeOff; + EncoderRate.enabled = false; + set_home_offset(axis, posScaled / 10); + Draw_Edit_Signed_Float3(select_item.now, posScaled); + return; } + LIMIT(posScaled, lo, hi); + Draw_Edit_Signed_Float3(select_item.now, posScaled, true); } void HMI_HomeOffX() { HMI_HomeOffN(X_AXIS, HMI_ValueStruct.Home_OffX_scaled, -500, 500); } @@ -3491,7 +3657,7 @@ void HMI_AdvSet() { #endif // HAS_HOME_OFFSET #if HAS_ONESTEP_LEVELING - /*Probe Offset */ + // Probe Offset void HMI_ProbeOff() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3508,16 +3674,16 @@ void HMI_AdvSet() { case 0: // Back checkkey = AdvSet; select_advset.set(ADVSET_CASE_PROBEOFF); - Draw_AdvSet_Menu(); + Draw_AdvancedSettings_Menu(); break; case 1: // Probe Offset X checkkey = ProbeOffX; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(1), HMI_ValueStruct.Probe_OffX_scaled); + Draw_Edit_Signed_Float3(1, HMI_ValueStruct.Probe_OffX_scaled, true); EncoderRate.enabled = true; break; case 2: // Probe Offset X checkkey = ProbeOffY; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(2), HMI_ValueStruct.Probe_OffY_scaled); + Draw_Edit_Signed_Float3(2, HMI_ValueStruct.Probe_OffY_scaled, true); EncoderRate.enabled = true; break; } @@ -3527,17 +3693,17 @@ void HMI_AdvSet() { void HMI_ProbeOffN(float &posScaled, float &offset_ref) { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (Apply_Encoder(encoder_diffState, posScaled)) { - checkkey = ProbeOff; - EncoderRate.enabled = false; - offset_ref = posScaled / 10; - DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(select_item.now), posScaled); - return; - } - LIMIT(posScaled, -500, 500); - DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, UNITFDIGITS, 216, MBASE(select_item.now), posScaled); + if (encoder_diffState == ENCODER_DIFF_NO) return; + + if (Apply_Encoder(encoder_diffState, posScaled)) { + checkkey = ProbeOff; + EncoderRate.enabled = false; + offset_ref = posScaled / 10; + Draw_Edit_Signed_Float3(select_item.now, posScaled); + return; } + LIMIT(posScaled, -500, 500); + Draw_Edit_Signed_Float3(select_item.now, posScaled, true); } void HMI_ProbeOffX() { HMI_ProbeOffN(HMI_ValueStruct.Probe_OffX_scaled, probe.offset.x); } @@ -3545,7 +3711,7 @@ void HMI_AdvSet() { #endif // HAS_ONESTEP_LEVELING -/* Info */ +// Info void HMI_Info() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3562,7 +3728,7 @@ void HMI_Info() { DWIN_UpdateLCD(); } -/* Tune */ +// Tune void HMI_Tune() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3574,9 +3740,8 @@ void HMI_Tune() { index_tune = select_tune.now; Scroll_Menu(DWIN_SCROLL_UP); } - else { + else Move_Highlight(1, select_tune.now + MROWS - index_tune); - } } } else if (encoder_diffState == ENCODER_DIFF_CCW) { @@ -3586,9 +3751,8 @@ void HMI_Tune() { Scroll_Menu(DWIN_SCROLL_DOWN); if (index_tune == MROWS) Draw_Back_First(); } - else { + else Move_Highlight(-1, select_tune.now + MROWS - index_tune); - } } } else if (encoder_diffState == ENCODER_DIFF_ENTER) { @@ -3601,14 +3765,14 @@ void HMI_Tune() { case TUNE_CASE_SPEED: // Print speed checkkey = PrintSpeed; HMI_ValueStruct.print_speed = feedrate_percentage; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(TUNE_CASE_SPEED + MROWS - index_tune), HMI_ValueStruct.print_speed); + Draw_Edit_Integer3(TUNE_CASE_SPEED + MROWS - index_tune, HMI_ValueStruct.print_speed, true); EncoderRate.enabled = true; break; #if HAS_HOTEND case TUNE_CASE_TEMP: // Nozzle temp checkkey = ETemp; HMI_ValueStruct.E_Temp = thermalManager.degTargetHotend(0); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(TUNE_CASE_TEMP + MROWS - index_tune), HMI_ValueStruct.E_Temp); + Draw_Edit_Integer3(TUNE_CASE_TEMP + MROWS - index_tune, HMI_ValueStruct.E_Temp, true); EncoderRate.enabled = true; break; #endif @@ -3616,7 +3780,7 @@ void HMI_Tune() { case TUNE_CASE_BED: // Bed temp checkkey = BedTemp; HMI_ValueStruct.Bed_Temp = thermalManager.degTargetBed(); - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(TUNE_CASE_BED + MROWS - index_tune), HMI_ValueStruct.Bed_Temp); + Draw_Edit_Integer3(TUNE_CASE_BED + MROWS - index_tune, HMI_ValueStruct.Bed_Temp, true); EncoderRate.enabled = true; break; #endif @@ -3624,7 +3788,7 @@ void HMI_Tune() { case TUNE_CASE_FAN: // Fan speed checkkey = FanSpeed; HMI_ValueStruct.Fan_speed = thermalManager.fan_speed[0]; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(TUNE_CASE_FAN + MROWS - index_tune), HMI_ValueStruct.Fan_speed); + Draw_Edit_Integer3(TUNE_CASE_FAN + MROWS - index_tune, HMI_ValueStruct.Fan_speed, true); EncoderRate.enabled = true; break; #endif @@ -3633,7 +3797,7 @@ void HMI_Tune() { #if EITHER(HAS_BED_PROBE, BABYSTEPPING) checkkey = Homeoffset; HMI_ValueStruct.offset_value = BABY_Z_VAR * 100; - DWIN_Draw_Signed_Float(font8x16, Select_Color, 2, 2, 202, MBASE(TUNE_CASE_ZOFF + MROWS - index_tune), HMI_ValueStruct.offset_value); + Draw_Edit_Signed_Float2(TUNE_CASE_ZOFF + MROWS - index_tune, HMI_ValueStruct.offset_value, true); EncoderRate.enabled = true; #else // Apply workspace offset, making the current position 0,0,0 @@ -3650,7 +3814,7 @@ void HMI_Tune() { #if HAS_PREHEAT - /* PLA Preheat */ + // PLA Preheat void HMI_PLAPreheatSetting() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3674,7 +3838,7 @@ void HMI_Tune() { case PREHEAT_CASE_TEMP: // Nozzle temperature checkkey = ETemp; HMI_ValueStruct.E_Temp = ui.material_preset[0].hotend_temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(PREHEAT_CASE_TEMP), ui.material_preset[0].hotend_temp); + Draw_Edit_Integer3(PREHEAT_CASE_TEMP, ui.material_preset[0].hotend_temp, true); EncoderRate.enabled = true; break; #endif @@ -3682,7 +3846,7 @@ void HMI_Tune() { case PREHEAT_CASE_BED: // Bed temperature checkkey = BedTemp; HMI_ValueStruct.Bed_Temp = ui.material_preset[0].bed_temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(PREHEAT_CASE_BED), ui.material_preset[0].bed_temp); + Draw_Edit_Integer3(PREHEAT_CASE_BED, ui.material_preset[0].bed_temp, true); EncoderRate.enabled = true; break; #endif @@ -3690,7 +3854,7 @@ void HMI_Tune() { case PREHEAT_CASE_FAN: // Fan speed checkkey = FanSpeed; HMI_ValueStruct.Fan_speed = ui.material_preset[0].fan_speed; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(PREHEAT_CASE_FAN), ui.material_preset[0].fan_speed); + Draw_Edit_Integer3(PREHEAT_CASE_FAN, ui.material_preset[0].fan_speed, true); EncoderRate.enabled = true; break; #endif @@ -3706,7 +3870,7 @@ void HMI_Tune() { DWIN_UpdateLCD(); } - /* ABS Preheat */ + // ABS Preheat void HMI_ABSPreheatSetting() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3730,7 +3894,7 @@ void HMI_Tune() { case PREHEAT_CASE_TEMP: // Set nozzle temperature checkkey = ETemp; HMI_ValueStruct.E_Temp = ui.material_preset[1].hotend_temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(PREHEAT_CASE_TEMP), ui.material_preset[1].hotend_temp); + Draw_Edit_Integer3(PREHEAT_CASE_TEMP, ui.material_preset[1].hotend_temp, true); EncoderRate.enabled = true; break; #endif @@ -3738,7 +3902,7 @@ void HMI_Tune() { case PREHEAT_CASE_BED: // Set bed temperature checkkey = BedTemp; HMI_ValueStruct.Bed_Temp = ui.material_preset[1].bed_temp; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(PREHEAT_CASE_BED), ui.material_preset[1].bed_temp); + Draw_Edit_Integer3(PREHEAT_CASE_BED, ui.material_preset[1].bed_temp, true); EncoderRate.enabled = true; break; #endif @@ -3746,7 +3910,7 @@ void HMI_Tune() { case PREHEAT_CASE_FAN: // Set fan speed checkkey = FanSpeed; HMI_ValueStruct.Fan_speed = ui.material_preset[1].fan_speed; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 216, MBASE(PREHEAT_CASE_FAN), ui.material_preset[1].fan_speed); + Draw_Edit_Integer3(PREHEAT_CASE_FAN, ui.material_preset[1].fan_speed, true); EncoderRate.enabled = true; break; #endif @@ -3764,7 +3928,7 @@ void HMI_Tune() { #endif -/* Max Speed */ +// Max Speed void HMI_MaxSpeed() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3781,7 +3945,7 @@ void HMI_MaxSpeed() { checkkey = MaxSpeed_value; HMI_flag.feedspeed_axis = AxisEnum(select_speed.now - 1); HMI_ValueStruct.Max_Feedspeed = planner.settings.max_feedrate_mm_s[HMI_flag.feedspeed_axis]; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 4, 210, MBASE(select_speed.now), HMI_ValueStruct.Max_Feedspeed); + Draw_Edit_Integer4(select_speed.now, HMI_ValueStruct.Max_Feedspeed, true); EncoderRate.enabled = true; } else { // Back @@ -3793,7 +3957,7 @@ void HMI_MaxSpeed() { DWIN_UpdateLCD(); } -/* Max Acceleration */ +// Max Acceleration void HMI_MaxAcceleration() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3810,7 +3974,7 @@ void HMI_MaxAcceleration() { checkkey = MaxAcceleration_value; HMI_flag.acc_axis = AxisEnum(select_acc.now - 1); HMI_ValueStruct.Max_Acceleration = planner.settings.max_acceleration_mm_per_s2[HMI_flag.acc_axis]; - DWIN_Draw_IntValue(true, true, 0, font8x16, Color_White, Select_Color, 4, 210, MBASE(select_acc.now), HMI_ValueStruct.Max_Acceleration); + Draw_Edit_Integer4(select_acc.now, HMI_ValueStruct.Max_Acceleration, true); EncoderRate.enabled = true; } else { // Back @@ -3823,7 +3987,7 @@ void HMI_MaxAcceleration() { } #if HAS_CLASSIC_JERK - /* Max Jerk */ + // Max Jerk void HMI_MaxJerk() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3840,7 +4004,7 @@ void HMI_MaxAcceleration() { checkkey = MaxJerk_value; HMI_flag.jerk_axis = AxisEnum(select_jerk.now - 1); HMI_ValueStruct.Max_Jerk_scaled = planner.max_jerk[HMI_flag.jerk_axis] * MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk_scaled); + Draw_Edit_Float3(select_jerk.now, HMI_ValueStruct.Max_Jerk_scaled, true); EncoderRate.enabled = true; } else { // Back @@ -3853,7 +4017,7 @@ void HMI_MaxAcceleration() { } #endif // HAS_CLASSIC_JERK -/* Step */ +// Step void HMI_Step() { ENCODER_DiffState encoder_diffState = get_encoder_state(); if (encoder_diffState == ENCODER_DIFF_NO) return; @@ -3870,7 +4034,7 @@ void HMI_Step() { checkkey = Step_value; HMI_flag.step_axis = AxisEnum(select_step.now - 1); HMI_ValueStruct.Max_Step_scaled = planner.settings.axis_steps_per_mm[HMI_flag.step_axis] * MINUNITMULT; - DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step_scaled); + Draw_Edit_Float3(select_step.now, HMI_ValueStruct.Max_Step_scaled, true); EncoderRate.enabled = true; } else { // Back @@ -3934,7 +4098,7 @@ void EachMomentUpdate() { else if (HMI_flag.pause_flag != printingIsPaused()) { // print status update HMI_flag.pause_flag = printingIsPaused(); - if (HMI_flag.pause_flag) ICON_Continue(); else ICON_Pause(); + ICON_ResumeOrPause(); } } @@ -4005,9 +4169,6 @@ void EachMomentUpdate() { Popup_Window_Resume(); update_selection(true); - // TODO: Get the name of the current file from someplace - // - //(void)recovery.interrupted_file_exists(); char * const name = card.longest_filename(); const int8_t npos = _MAX(0U, DWIN_WIDTH - strlen(name) * (MENU_CHR_W)) / 2; DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, npos, 252, name); @@ -4125,9 +4286,9 @@ void DWIN_CompletedLeveling() { } void DWIN_StatusChanged(const char *text) { - DWIN_Draw_Rectangle(1, Color_Bg_Blue, 0, STATUS_Y, DWIN_WIDTH, STATUS_Y + 20); + DWIN_Draw_Rectangle(1, Color_Bg_Blue, 0, STATUS_Y, DWIN_WIDTH, STATUS_Y + 24); const int8_t x = _MAX(0U, DWIN_WIDTH - strlen_P(text) * MENU_CHR_W) / 2; - DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Blue, x, STATUS_Y + 2, F(text)); + DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Blue, x, STATUS_Y + 3, F(text)); DWIN_UpdateLCD(); } @@ -4137,10 +4298,4 @@ void DWIN_StatusChanged_P(PGM_P const pstr) { DWIN_StatusChanged(str); } -// GUI extension -void DWIN_Draw_Checkbox(uint16_t color, uint16_t bcolor, uint16_t x, uint16_t y, bool mode=false) { - DWIN_Draw_String(true, font8x16, Select_Color, bcolor, x + 4, y, F(mode ? "x" : " ")); - DWIN_Draw_Rectangle(0, color, x + 2, y + 2, x + 17, y + 17); -} - #endif // DWIN_CREALITY_LCD diff --git a/Marlin/src/lcd/e3v2/creality/dwin.h b/Marlin/src/lcd/e3v2/creality/dwin.h index 2808fea99ce1..69fe0d6bd675 100644 --- a/Marlin/src/lcd/e3v2/creality/dwin.h +++ b/Marlin/src/lcd/e3v2/creality/dwin.h @@ -163,18 +163,6 @@ typedef struct { extern HMI_value_t HMI_ValueStruct; extern HMI_Flag_t HMI_flag; -// Show ICO -void ICON_Print(bool show); -void ICON_Prepare(bool show); -void ICON_Control(bool show); -void ICON_Leveling(bool show); -void ICON_StartInfo(bool show); - -void ICON_Setting(bool show); -void ICON_Pause(bool show); -void ICON_Continue(bool show); -void ICON_Stop(bool show); - #if HAS_HOTEND || HAS_HEATED_BED // Popup message window void DWIN_Popup_Temperature(const bool toohigh); @@ -261,7 +249,6 @@ void EachMomentUpdate(); void DWIN_HandleScreen(); void DWIN_StatusChanged(const char *text); void DWIN_StatusChanged_P(PGM_P const pstr); -void DWIN_Draw_Checkbox(uint16_t color, uint16_t bcolor, uint16_t x, uint16_t y, bool mode /* = false*/); inline void DWIN_StartHoming() { HMI_flag.home_flag = true; } diff --git a/Marlin/src/lcd/e3v2/creality/dwin_lcd.h b/Marlin/src/lcd/e3v2/creality/dwin_lcd.h index e5e79df0fdb4..262276f590b6 100644 --- a/Marlin/src/lcd/e3v2/creality/dwin_lcd.h +++ b/Marlin/src/lcd/e3v2/creality/dwin_lcd.h @@ -31,6 +31,9 @@ #include +//#define USE_STRING_HEADINGS +//#define USE_STRING_TITLES + #define RECEIVED_NO_DATA 0x00 #define RECEIVED_SHAKE_HAND_ACK 0x01 @@ -42,17 +45,12 @@ #define DWIN_WIDTH 272 #define DWIN_HEIGHT 480 -// Character matrix width x height -//#define LCD_WIDTH ((DWIN_WIDTH) / 8) -//#define LCD_HEIGHT ((DWIN_HEIGHT) / 12) - // Picture ID -#define DWIN_Boot_Screen 0 #define Language_English 1 #define Language_Chinese 2 // ICON ID -#define ICON 0x09 +#define ICON 7 // Icon set file 7.ICO #define ICON_LOGO 0 #define ICON_Print_0 1 @@ -258,8 +256,7 @@ inline void DWIN_Draw_VLine(uint16_t color, uint16_t xStart, uint16_t yStart, ui // color: Rectangle color // xStart/yStart: upper left point // xEnd/yEnd: lower right point -void DWIN_Draw_Rectangle(uint8_t mode, uint16_t color, - uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd); +void DWIN_Draw_Rectangle(uint8_t mode, uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd); // Draw a box // mode: 0=frame, 1=fill, 2=XOR fill diff --git a/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp b/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp new file mode 100644 index 000000000000..97dc0eec42b6 --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp @@ -0,0 +1,470 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/******************************************************************************** + * @file lcd/e3v2/marlinui/dwin_lcd.cpp + * @brief DWIN screen control functions + ********************************************************************************/ + +#include "../../../inc/MarlinConfigPre.h" + +#if IS_DWIN_MARLINUI + +#include "../../../inc/MarlinConfig.h" + +#include "dwin_lcd.h" +#include // for memset + +//#define DEBUG_OUT 1 +#include "../../../core/debug_out.h" + +// Make sure DWIN_SendBuf is large enough to hold the largest string plus draw command and tail. +// Assume the narrowest (6 pixel) font and 2-byte gb2312-encoded characters. +uint8_t DWIN_SendBuf[11 + DWIN_WIDTH / 6 * 2] = { 0xAA }; +uint8_t DWIN_BufTail[4] = { 0xCC, 0x33, 0xC3, 0x3C }; +uint8_t databuf[26] = { 0 }; +uint8_t receivedType; + +int recnum = 0; + +inline void DWIN_Byte(size_t &i, const uint16_t bval) { + DWIN_SendBuf[++i] = bval; +} + +inline void DWIN_Word(size_t &i, const uint16_t wval) { + DWIN_SendBuf[++i] = wval >> 8; + DWIN_SendBuf[++i] = wval & 0xFF; +} + +inline void DWIN_Long(size_t &i, const uint32_t lval) { + DWIN_SendBuf[++i] = (lval >> 24) & 0xFF; + DWIN_SendBuf[++i] = (lval >> 16) & 0xFF; + DWIN_SendBuf[++i] = (lval >> 8) & 0xFF; + DWIN_SendBuf[++i] = lval & 0xFF; +} + +inline void DWIN_String(size_t &i, char * const string) { + const size_t len = _MIN(sizeof(DWIN_SendBuf) - i, strlen(string)); + memcpy(&DWIN_SendBuf[i+1], string, len); + i += len; +} + +inline void DWIN_String(size_t &i, const __FlashStringHelper * string) { + if (!string) return; + const size_t len = strlen_P((PGM_P)string); // cast it to PGM_P, which is basically const char *, and measure it using the _P version of strlen. + if (len == 0) return; + memcpy(&DWIN_SendBuf[i+1], string, len); + i += len; +} + +// Send the data in the buffer and the packet end +inline void DWIN_Send(size_t &i) { + ++i; + LOOP_L_N(n, i) { LCD_SERIAL.write(DWIN_SendBuf[n]); delayMicroseconds(1); } + LOOP_L_N(n, 4) { LCD_SERIAL.write(DWIN_BufTail[n]); delayMicroseconds(1); } +} + +/*-------------------------------------- System variable function --------------------------------------*/ + +// Handshake (1: Success, 0: Fail) +bool DWIN_Handshake(void) { + #ifndef LCD_BAUDRATE + #define LCD_BAUDRATE 115200 + #endif + LCD_SERIAL.begin(LCD_BAUDRATE); + const millis_t serial_connect_timeout = millis() + 1000UL; + while (!LCD_SERIAL.connected() && PENDING(millis(), serial_connect_timeout)) { /*nada*/ } + + size_t i = 0; + DWIN_Byte(i, 0x00); + DWIN_Send(i); + + while (LCD_SERIAL.available() > 0 && recnum < (signed)sizeof(databuf)) { + databuf[recnum] = LCD_SERIAL.read(); + // ignore the invalid data + if (databuf[0] != FHONE) { // prevent the program from running. + if (recnum > 0) { + recnum = 0; + ZERO(databuf); + } + continue; + } + delay(10); + recnum++; + } + + return ( recnum >= 3 + && databuf[0] == FHONE + && databuf[1] == '\0' + && databuf[2] == 'O' + && databuf[3] == 'K' ); +} + +void DWIN_Startup(void) { + DEBUG_ECHOPGM("\r\nDWIN handshake "); + delay(750); // Delay here or init later in the boot process + const bool success = DWIN_Handshake(); + if (success) DEBUG_ECHOLNPGM("ok."); else DEBUG_ECHOLNPGM("error."); + DWIN_Frame_SetDir(TERN(DWIN_MARLINUI_LANDSCAPE, 0, 1)); + DWIN_Frame_Clear(Color_Bg_Black); // MarlinUI handles the bootscreen so just clear here + DWIN_UpdateLCD(); +} + +// Set the backlight luminance +// luminance: (0x00-0xFF) +void DWIN_Backlight_SetLuminance(const uint8_t luminance) { + size_t i = 0; + DWIN_Byte(i, 0x30); + DWIN_Byte(i, _MAX(luminance, 0x1F)); + DWIN_Send(i); +} + +// Set screen display direction +// dir: 0=0°, 1=90°, 2=180°, 3=270° +void DWIN_Frame_SetDir(uint8_t dir) { + size_t i = 0; + DWIN_Byte(i, 0x34); + DWIN_Byte(i, 0x5A); + DWIN_Byte(i, 0xA5); + DWIN_Byte(i, dir); + DWIN_Send(i); +} + +// Update display +void DWIN_UpdateLCD(void) { + size_t i = 0; + DWIN_Byte(i, 0x3D); + DWIN_Send(i); +} + +/*---------------------------------------- Drawing functions ----------------------------------------*/ + +// Clear screen +// color: Clear screen color +void DWIN_Frame_Clear(const uint16_t color) { + size_t i = 0; + DWIN_Byte(i, 0x01); + DWIN_Word(i, color); + DWIN_Send(i); +} + +// Draw a point +// width: point width 0x01-0x0F +// height: point height 0x01-0x0F +// x,y: upper left point +void DWIN_Draw_Point(uint16_t color, uint8_t width, uint8_t height, uint16_t x, uint16_t y) { + size_t i = 0; + DWIN_Byte(i, 0x02); + DWIN_Word(i, color); + DWIN_Byte(i, width); + DWIN_Byte(i, height); + DWIN_Word(i, x); + DWIN_Word(i, y); + DWIN_Send(i); +} + +// Draw a line +// color: Line segment color +// xStart/yStart: Start point +// xEnd/yEnd: End point +void DWIN_Draw_Line(uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd) { + size_t i = 0; + DWIN_Byte(i, 0x03); + DWIN_Word(i, color); + DWIN_Word(i, xStart); + DWIN_Word(i, yStart); + DWIN_Word(i, xEnd); + DWIN_Word(i, yEnd); + DWIN_Send(i); +} + +// Draw a rectangle +// mode: 0=frame, 1=fill, 2=XOR fill +// color: Rectangle color +// xStart/yStart: upper left point +// xEnd/yEnd: lower right point +void DWIN_Draw_Rectangle(uint8_t mode, uint16_t color, + uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd) { + size_t i = 0; + DWIN_Byte(i, 0x05); + DWIN_Byte(i, mode); + DWIN_Word(i, color); + DWIN_Word(i, xStart); + DWIN_Word(i, yStart); + DWIN_Word(i, xEnd); + DWIN_Word(i, yEnd); + DWIN_Send(i); +} + +// Move a screen area +// mode: 0, circle shift; 1, translation +// dir: 0=left, 1=right, 2=up, 3=down +// dis: Distance +// color: Fill color +// xStart/yStart: upper left point +// xEnd/yEnd: bottom right point +void DWIN_Frame_AreaMove(uint8_t mode, uint8_t dir, uint16_t dis, + uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd) { + size_t i = 0; + DWIN_Byte(i, 0x09); + DWIN_Byte(i, (mode << 7) | dir); + DWIN_Word(i, dis); + DWIN_Word(i, color); + DWIN_Word(i, xStart); + DWIN_Word(i, yStart); + DWIN_Word(i, xEnd); + DWIN_Word(i, yEnd); + DWIN_Send(i); +} + +/*---------------------------------------- Text related functions ----------------------------------------*/ + +// Draw a string +// bShow: true=display background color; false=don't display background color +// size: Font size +// color: Character color +// bColor: Background color +// x/y: Upper-left coordinate of the string +// *string: The string +void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string) { + uint8_t widthAdjust = 0; + size_t i = 0; + DWIN_Byte(i, 0x11); + // Bit 7: widthAdjust + // Bit 6: bShow + // Bit 5-4: Unused (0) + // Bit 3-0: size + DWIN_Byte(i, (widthAdjust * 0x80) | (bShow * 0x40) | size); + DWIN_Word(i, color); + DWIN_Word(i, bColor); + DWIN_Word(i, x); + DWIN_Word(i, y); + DWIN_String(i, string); + DWIN_Send(i); +} + +// Draw a positive integer +// bShow: true=display background color; false=don't display background color +// zeroFill: true=zero fill; false=no zero fill +// zeroMode: 1=leading 0 displayed as 0; 0=leading 0 displayed as a space +// size: Font size +// color: Character color +// bColor: Background color +// iNum: Number of digits +// x/y: Upper-left coordinate +// value: Integer value +void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, + uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value) { + size_t i = 0; + DWIN_Byte(i, 0x14); + // Bit 7: bshow + // Bit 6: 1 = signed; 0 = unsigned number; + // Bit 5: zeroFill + // Bit 4: zeroMode + // Bit 3-0: size + DWIN_Byte(i, (bShow * 0x80) | (zeroFill * 0x20) | (zeroMode * 0x10) | size); + DWIN_Word(i, color); + DWIN_Word(i, bColor); + DWIN_Byte(i, iNum); + DWIN_Byte(i, 0); // fNum + DWIN_Word(i, x); + DWIN_Word(i, y); + #if 0 + for (char count = 0; count < 8; count++) { + DWIN_Byte(i, value); + value >>= 8; + if (!(value & 0xFF)) break; + } + #else + // Write a big-endian 64 bit integer + const size_t p = i + 1; + for (char count = 8; count--;) { // 7..0 + ++i; + DWIN_SendBuf[p + count] = value; + value >>= 8; + } + #endif + + DWIN_Send(i); +} + +// Draw a floating point number +// bShow: true=display background color; false=don't display background color +// zeroFill: true=zero fill; false=no zero fill +// zeroMode: 1=leading 0 displayed as 0; 0=leading 0 displayed as a space +// size: Font size +// color: Character color +// bColor: Background color +// iNum: Number of whole digits +// fNum: Number of decimal digits +// x/y: Upper-left point +// value: Float value +void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, + uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) { + //uint8_t *fvalue = (uint8_t*)&value; + size_t i = 0; + DWIN_Byte(i, 0x14); + DWIN_Byte(i, (bShow * 0x80) | (zeroFill * 0x20) | (zeroMode * 0x10) | size); + DWIN_Word(i, color); + DWIN_Word(i, bColor); + DWIN_Byte(i, iNum); + DWIN_Byte(i, fNum); + DWIN_Word(i, x); + DWIN_Word(i, y); + DWIN_Long(i, value); + /* + DWIN_Byte(i, fvalue[3]); + DWIN_Byte(i, fvalue[2]); + DWIN_Byte(i, fvalue[1]); + DWIN_Byte(i, fvalue[0]); + */ + DWIN_Send(i); +} + +/*---------------------------------------- Picture related functions ----------------------------------------*/ + +// Draw JPG and cached in #0 virtual display area +// id: Picture ID +void DWIN_JPG_ShowAndCache(const uint8_t id) { + size_t i = 0; + DWIN_Word(i, 0x2200); + DWIN_Byte(i, id); + DWIN_Send(i); // AA 23 00 00 00 00 08 00 01 02 03 CC 33 C3 3C +} + +// Draw an Icon +// libID: Icon library ID +// picID: Icon ID +// x/y: Upper-left point +void DWIN_ICON_Show(uint8_t libID, uint8_t picID, uint16_t x, uint16_t y) { + NOMORE(x, DWIN_WIDTH - 1); + NOMORE(y, DWIN_HEIGHT - 1); // -- ozy -- srl + size_t i = 0; + DWIN_Byte(i, 0x23); + DWIN_Word(i, x); + DWIN_Word(i, y); + DWIN_Byte(i, 0x80 | libID); + //DWIN_Byte(i, libID); + DWIN_Byte(i, picID); + DWIN_Send(i); +} + +// Unzip the JPG picture to a virtual display area +// n: Cache index +// id: Picture ID +void DWIN_JPG_CacheToN(uint8_t n, uint8_t id) { + size_t i = 0; + DWIN_Byte(i, 0x25); + DWIN_Byte(i, n); + DWIN_Byte(i, id); + DWIN_Send(i); +} + +// Copy area from virtual display area to current screen +// cacheID: virtual area number +// xStart/yStart: Upper-left of virtual area +// xEnd/yEnd: Lower-right of virtual area +// x/y: Screen paste point +void DWIN_Frame_AreaCopy(uint8_t cacheID, uint16_t xStart, uint16_t yStart, + uint16_t xEnd, uint16_t yEnd, uint16_t x, uint16_t y) { + size_t i = 0; + DWIN_Byte(i, 0x27); + DWIN_Byte(i, 0x80 | cacheID); + DWIN_Word(i, xStart); + DWIN_Word(i, yStart); + DWIN_Word(i, xEnd); + DWIN_Word(i, yEnd); + DWIN_Word(i, x); + DWIN_Word(i, y); + DWIN_Send(i); +} + +// Animate a series of icons +// animID: Animation ID; 0x00-0x0F +// animate: true on; false off; +// libID: Icon library ID +// picIDs: Icon starting ID +// picIDe: Icon ending ID +// x/y: Upper-left point +// interval: Display time interval, unit 10mS +void DWIN_ICON_Animation(uint8_t animID, bool animate, uint8_t libID, uint8_t picIDs, uint8_t picIDe, uint16_t x, uint16_t y, uint16_t interval) { + NOMORE(x, DWIN_WIDTH - 1); + NOMORE(y, DWIN_HEIGHT - 1); // -- ozy -- srl + size_t i = 0; + DWIN_Byte(i, 0x28); + DWIN_Word(i, x); + DWIN_Word(i, y); + // Bit 7: animation on or off + // Bit 6: start from begin or end + // Bit 5-4: unused (0) + // Bit 3-0: animID + DWIN_Byte(i, (animate * 0x80) | 0x40 | animID); + DWIN_Byte(i, libID); + DWIN_Byte(i, picIDs); + DWIN_Byte(i, picIDe); + DWIN_Byte(i, interval); + DWIN_Send(i); +} + +// Animation Control +// state: 16 bits, each bit is the state of an animation id +void DWIN_ICON_AnimationControl(uint16_t state) { + size_t i = 0; + DWIN_Byte(i, 0x29); + DWIN_Word(i, state); + DWIN_Send(i); +} + +/*---------------------------------------- Memory functions ----------------------------------------*/ +// The LCD has an additional 32KB SRAM and 16KB Flash + +// Data can be written to the sram and save to one of the jpeg page files + +// Write Data Memory +// command 0x31 +// Type: Write memory selection; 0x5A=SRAM; 0xA5=Flash +// Address: Write data memory address; 0x000-0x7FFF for SRAM; 0x000-0x3FFF for Flash +// Data: data +// +// Flash writing returns 0xA5 0x4F 0x4B + +// Read Data Memory +// command 0x32 +// Type: Read memory selection; 0x5A=SRAM; 0xA5=Flash +// Address: Read data memory address; 0x000-0x7FFF for SRAM; 0x000-0x3FFF for Flash +// Length: leangth of data to read; 0x01-0xF0 +// +// Response: +// Type, Address, Length, Data + +// Write Picture Memory +// Write the contents of the 32KB SRAM data memory into the designated image memory space +// Issued: 0x5A, 0xA5, PIC_ID +// Response: 0xA5 0x4F 0x4B +// +// command 0x33 +// 0x5A, 0xA5 +// PicId: Picture Memory location, 0x00-0x0F +// +// Flash writing returns 0xA5 0x4F 0x4B + +#endif // IS_DWIN_MARLINUI diff --git a/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.h b/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.h new file mode 100644 index 000000000000..09d7b5ddd228 --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.h @@ -0,0 +1,302 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +/******************************************************************************** + * @file lcd/e3v2/marlinui/dwin_lcd.h + * @brief DWIN screen control functions + ********************************************************************************/ + +#include + +#define RECEIVED_NO_DATA 0x00 +#define RECEIVED_SHAKE_HAND_ACK 0x01 + +#define FHONE 0xAA + +#define DWIN_SCROLL_UP 2 +#define DWIN_SCROLL_DOWN 3 + +#if DISABLED(DWIN_MARLINUI_LANDSCAPE) + #define DWIN_WIDTH 272 + #define DWIN_HEIGHT 480 +#else + #define DWIN_WIDTH 480 + #define DWIN_HEIGHT 272 +#endif + +// Picture ID +#define DWIN_Boot_Horiz 0 +#define DWIN_Boot_Vert 1 +#define DWIN_MarlinUI_Assets 2 + +/** + * 3-.0:The font size, 0x00-0x09, corresponds to the font size below: + * 0x00=6*12 0x01=8*16 0x02=10*20 0x03=12*24 0x04=14*28 + * 0x05=16*32 0x06=20*40 0x07=24*48 0x08=28*56 0x09=32*64 + */ +#define font6x12 0x00 +#define font8x16 0x01 +#define font10x20 0x02 +#define font12x24 0x03 +#define font14x28 0x04 +#define font16x32 0x05 +#define font20x40 0x06 +#define font24x48 0x07 +#define font28x56 0x08 +#define font32x64 0x09 + +#define DWIN_FONT_MENU font10x20 +#define DWIN_FONT_STAT font14x28 +#define DWIN_FONT_HEAD font10x20 +#define DWIN_FONT_ALERT font14x28 + +// Color +#define Color_White 0xFFFF +#define Color_Yellow 0xFF0F +#define Color_Error_Red 0xB000 // Error! +#define Color_Bg_Red 0xF00F // Red background color +#define Color_Bg_Window 0x31E8 // Popup background color +#define Color_Bg_Heading 0x3344 // Static Heading +#define Color_Bg_Blue 0x1125 // Dark blue background color +#define Color_Bg_Black 0x0841 // Black background color +#define Color_IconBlue 0x45FA // Lighter blue that matches icons/accents +#define Popup_Text_Color 0xD6BA // Popup font background color +#define Line_Color 0x3A6A // Split line color +#define Rectangle_Color 0xEE2F // Blue square cursor color +#define Percent_Color 0xFE29 // Percentage color +#define BarFill_Color 0x10E4 // Fill color of progress bar +#define Select_Color 0x33BB // Selected color + +// Character matrix width x height +//#define LCD_WIDTH ((DWIN_WIDTH) / 8) +//#define LCD_HEIGHT ((DWIN_HEIGHT) / 12) + +// ICON ID +#define BOOT_ICON 3 // Icon set file 3.ICO +#define ICON 4 // Icon set file 4.ICO + +// MarlinUI Boot Icons +#define ICON_MarlinBoot 0 +#define ICON_OpenSource 1 +#define ICON_GitHubURL 2 +#define ICON_MarlinURL 3 +#define ICON_Copyright 4 + +// MarlinUI Icons +#define ICON_LOGO_Marlin 0 +#define ICON_HotendOff 1 +#define ICON_HotendOn 2 +#define ICON_BedOff 3 +#define ICON_BedOn 4 +#define ICON_Fan0 5 +#define ICON_Fan1 6 +#define ICON_Fan2 7 +#define ICON_Fan3 8 +#define ICON_Halted 9 +#define ICON_Question 10 +#define ICON_Alert 11 +#define ICON_RotateCW 12 +#define ICON_RotateCCW 13 +#define ICON_UpArrow 14 +#define ICON_DownArrow 15 +#define ICON_BedLine 16 + +#define ICON_AdvSet ICON_Language +#define ICON_HomeOff ICON_AdvSet +#define ICON_HomeOffX ICON_StepX +#define ICON_HomeOffY ICON_StepY +#define ICON_HomeOffZ ICON_StepZ +#define ICON_ProbeOff ICON_AdvSet +#define ICON_ProbeOffX ICON_StepX +#define ICON_ProbeOffY ICON_StepY +#define ICON_PIDNozzle ICON_SetEndTemp +#define ICON_PIDbed ICON_SetBedTemp + +/*-------------------------------------- System variable function --------------------------------------*/ + +// Handshake (1: Success, 0: Fail) +bool DWIN_Handshake(void); + +// Common DWIN startup +void DWIN_Startup(void); + +// Set the backlight luminance +// luminance: (0x00-0xFF) +void DWIN_Backlight_SetLuminance(const uint8_t luminance); + +// Set screen display direction +// dir: 0=0°, 1=90°, 2=180°, 3=270° +void DWIN_Frame_SetDir(uint8_t dir); + +// Update display +void DWIN_UpdateLCD(void); + +/*---------------------------------------- Drawing functions ----------------------------------------*/ + +// Clear screen +// color: Clear screen color +void DWIN_Frame_Clear(const uint16_t color); + +// Draw a point +// color: point color +// width: point width 0x01-0x0F +// height: point height 0x01-0x0F +// x,y: upper left point +void DWIN_Draw_Point(uint16_t color, uint8_t width, uint8_t height, uint16_t x, uint16_t y); + +// Draw a line +// color: Line segment color +// xStart/yStart: Start point +// xEnd/yEnd: End point +void DWIN_Draw_Line(uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd); + +// Draw a Horizontal line +// color: Line segment color +// xStart/yStart: Start point +// xLength: Line Length +inline void DWIN_Draw_HLine(uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xLength) { + DWIN_Draw_Line(color, xStart, yStart, xStart + xLength - 1, yStart); +} + +// Draw a Vertical line +// color: Line segment color +// xStart/yStart: Start point +// yLength: Line Length +inline void DWIN_Draw_VLine(uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t yLength) { + DWIN_Draw_Line(color, xStart, yStart, xStart, yStart + yLength - 1); +} + +// Draw a rectangle +// mode: 0=frame, 1=fill, 2=XOR fill +// color: Rectangle color +// xStart/yStart: upper left point +// xEnd/yEnd: lower right point +void DWIN_Draw_Rectangle(uint8_t mode, uint16_t color, + uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd); + +// Draw a box +// mode: 0=frame, 1=fill, 2=XOR fill +// color: Rectangle color +// xStart/yStart: upper left point +// xSize/ySize: box size +inline void DWIN_Draw_Box(uint8_t mode, uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xSize, uint16_t ySize) { + DWIN_Draw_Rectangle(mode, color, xStart, yStart, xStart + xSize - 1, yStart + ySize - 1); +} + +// Move a screen area +// mode: 0, circle shift; 1, translation +// dir: 0=left, 1=right, 2=up, 3=down +// dis: Distance +// color: Fill color +// xStart/yStart: upper left point +// xEnd/yEnd: bottom right point +void DWIN_Frame_AreaMove(uint8_t mode, uint8_t dir, uint16_t dis, + uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd); + +/*---------------------------------------- Text related functions ----------------------------------------*/ + +// Draw a string +// bShow: true=display background color; false=don't display background color +// size: Font size +// color: Character color +// bColor: Background color +// x/y: Upper-left coordinate of the string +// *string: The string +void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string); + +class __FlashStringHelper; + +inline void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const __FlashStringHelper *title) { + DWIN_Draw_String(bShow, size, color, bColor, x, y, (char *)title); +} + +// Draw a positive integer +// bShow: true=display background color; false=don't display background color +// zeroFill: true=zero fill; false=no zero fill +// zeroMode: 1=leading 0 displayed as 0; 0=leading 0 displayed as a space +// size: Font size +// color: Character color +// bColor: Background color +// iNum: Number of digits +// x/y: Upper-left coordinate +// value: Integer value +void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, + uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value); + +// Draw a floating point number +// bShow: true=display background color; false=don't display background color +// zeroFill: true=zero fill; false=no zero fill +// zeroMode: 1=leading 0 displayed as 0; 0=leading 0 displayed as a space +// size: Font size +// color: Character color +// bColor: Background color +// iNum: Number of whole digits +// fNum: Number of decimal digits +// x/y: Upper-left point +// value: Float value +void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, + uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value); + +/*---------------------------------------- Picture related functions ----------------------------------------*/ + +// Draw JPG and cached in #0 virtual display area +// id: Picture ID +void DWIN_JPG_ShowAndCache(const uint8_t id); + +// Draw an Icon +// libID: Icon library ID +// picID: Icon ID +// x/y: Upper-left point +void DWIN_ICON_Show(uint8_t libID, uint8_t picID, uint16_t x, uint16_t y); + +// Unzip the JPG picture to a virtual display area +// n: Cache index +// id: Picture ID +void DWIN_JPG_CacheToN(uint8_t n, uint8_t id); + +// Unzip the JPG picture to virtual display area #1 +// id: Picture ID +inline void DWIN_JPG_CacheTo1(uint8_t id) { DWIN_JPG_CacheToN(1, id); } + +// Copy area from virtual display area to current screen +// cacheID: virtual area number +// xStart/yStart: Upper-left of virtual area +// xEnd/yEnd: Lower-right of virtual area +// x/y: Screen paste point +void DWIN_Frame_AreaCopy(uint8_t cacheID, uint16_t xStart, uint16_t yStart, + uint16_t xEnd, uint16_t yEnd, uint16_t x, uint16_t y); + +// Animate a series of icons +// animID: Animation ID up to 16 +// animate: animation on or off +// libID: Icon library ID +// picIDs: Icon starting ID +// picIDe: Icon ending ID +// x/y: Upper-left point +// interval: Display time interval, unit 10mS +void DWIN_ICON_Animation(uint8_t animID, bool animate, uint8_t libID, uint8_t picIDs, + uint8_t picIDe, uint16_t x, uint16_t y, uint16_t interval); + +// Animation Control +// state: 16 bits, each bit is the state of an animation id +void DWIN_ICON_AnimationControl(uint16_t state); diff --git a/Marlin/src/lcd/e3v2/marlinui/dwin_string.cpp b/Marlin/src/lcd/e3v2/marlinui/dwin_string.cpp new file mode 100644 index 000000000000..c7b37319c4df --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/dwin_string.cpp @@ -0,0 +1,180 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if IS_DWIN_MARLINUI + +#include "dwin_string.h" +//#include "../../fontutils.h" + +uint8_t DWIN_String::data[]; +uint16_t DWIN_String::span; +uint8_t DWIN_String::len; + +void DWIN_String::set() { + //*data = 0x00; + memset(data, 0x00, sizeof(data)); + span = 0; + len = 0; +} + +uint8_t read_byte(uint8_t *byte) { return *byte; } + +/** + * Add a string, applying substitutions for the following characters: + * + * = displays '0'....'10' for indexes 0 - 10 + * ~ displays '1'....'11' for indexes 0 - 10 + * * displays 'E1'...'E11' for indexes 0 - 10 (By default. Uses LCD_FIRST_TOOL) + */ +void DWIN_String::add(uint8_t *string, int8_t index, uint8_t *itemString) { + wchar_t wchar; + + while (*string) { + string = get_utf8_value_cb(string, read_byte, &wchar); + if (wchar > 255) wchar |= 0x0080; + uint8_t ch = uint8_t(wchar & 0x00FF); + + if (ch == '=' || ch == '~' || ch == '*') { + if (index >= 0) { + int8_t inum = index + ((ch == '=') ? 0 : LCD_FIRST_TOOL); + if (ch == '*') add_character('E'); + if (inum >= 10) { add_character('0' + (inum / 10)); inum %= 10; } + add_character('0' + inum); + } + else { + add(index == -2 ? GET_TEXT(MSG_CHAMBER) : GET_TEXT(MSG_BED)); + } + continue; + } + else if (ch == '$' && itemString) { + add(itemString); + continue; + } + + add_character(ch); + } + eol(); +} + +void DWIN_String::add(uint8_t *string, uint8_t max_len) { + wchar_t wchar; + while (*string && max_len) { + string = get_utf8_value_cb(string, read_byte, &wchar); + /* + if (wchar > 255) wchar |= 0x0080; + uint8_t ch = uint8_t(wchar & 0x00FF); + add_character(ch); + */ + add(wchar); + max_len--; + } + eol(); +} + +void DWIN_String::add(wchar_t character) { + int ret; + size_t idx = 0; + dwin_charmap_t pinval; + dwin_charmap_t *copy_address = nullptr; + pinval.uchar = character; + pinval.idx = -1; + + // For 8-bit ASCII just print the single character + char str[] = { '?', 0 }; + if (character < 255) { + str[0] = (char)character; + } + else { + copy_address = nullptr; + ret = pf_bsearch_r((void *)g_dwin_charmap_device, COUNT(g_dwin_charmap_device), pf_bsearch_cb_comp_dwinmap_pgm, (void *)&pinval, &idx); + if (ret >= 0) { + copy_address = (dwin_charmap_t*)(g_dwin_charmap_device + idx); + } + else { + ret = pf_bsearch_r((void *)g_dwin_charmap_common, COUNT(g_dwin_charmap_common), pf_bsearch_cb_comp_dwinmap_pgm, (void *)&pinval, &idx); + if (ret >= 0) + copy_address = (dwin_charmap_t*)(g_dwin_charmap_common + idx); + } + if (ret >= 0) { + dwin_charmap_t localval; + memcpy_P(&localval, copy_address, sizeof(localval)); + str[0] = localval.idx; + str[1] = localval.idx2; + } + } + if (str[0]) add_character(str[0]); + if (str[1]) add_character(str[1]); +} + +void DWIN_String::add_character(uint8_t character) { + if (len < MAX_STRING_LENGTH) { + data[len] = character; + len++; + //span += glyph(character)->DWidth; + } +} + +void DWIN_String::rtrim(uint8_t character) { + while (len) { + if (data[len - 1] == 0x20 || data[len - 1] == character) { + len--; + //span -= glyph(data[length])->DWidth; + eol(); + } + else + break; + } +} + +void DWIN_String::ltrim(uint8_t character) { + uint16_t i, j; + for (i = 0; (i < len) && (data[i] == 0x20 || data[i] == character); i++) { + //span -= glyph(data[i])->DWidth; + } + if (i == 0) return; + for (j = 0; i < len; data[j++] = data[i++]); + len = j; + eol(); +} + +void DWIN_String::trim(uint8_t character) { + rtrim(character); + ltrim(character); +} + +/* return v1 - v2 */ +int dwin_charmap_compare(dwin_charmap_t *v1, dwin_charmap_t *v2) { + return (v1->uchar < v2->uchar) ? -1 : (v1->uchar > v2->uchar) ? 1 : 0; +} + +int pf_bsearch_cb_comp_dwinmap_pgm(void *userdata, size_t idx, void * data_pin) { + dwin_charmap_t localval; + dwin_charmap_t *p_dwin_charmap = (dwin_charmap_t *)userdata; + memcpy_P(&localval, p_dwin_charmap + idx, sizeof(localval)); + return dwin_charmap_compare(&localval, (dwin_charmap_t *)data_pin); +} + +DWIN_String dwin_string; + +#endif // IS_DWIN_MARLINUI diff --git a/Marlin/src/lcd/e3v2/marlinui/dwin_string.h b/Marlin/src/lcd/e3v2/marlinui/dwin_string.h new file mode 100644 index 000000000000..d78d774095bf --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/dwin_string.h @@ -0,0 +1,1007 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include + + +#include "../../fontutils.h" +#include "../../marlinui.h" + +typedef struct _dwin_charmap_t { + wchar_t uchar; // the unicode char + uint8_t idx; // the glyph of the char in the ROM + uint8_t idx2; // the char used to be combined with the idx to simulate a single char +} dwin_charmap_t; + +#define MAX_STRING_LENGTH 64 + +#define S(V) (char*)(V) + +class DWIN_String { + private: + //static glyph_t *glyphs[256]; + //static font_t *font_header; + + static uint8_t data[MAX_STRING_LENGTH + 1]; + static uint16_t span; // in pixels + static uint8_t len; // in characters + + static void add_character(uint8_t character); + static void eol() { data[len] = 0x00; } + + public: + //static void set_font(const uint8_t *font); + //static void add_glyphs(const uint8_t *font); + + //static font_t *font() { return font_header; }; + //static uint16_t font_height() { return font_header->FontAscent - font_header->FontDescent; } + //static glyph_t *glyph(uint8_t character) { return glyphs[character] ?: glyphs[0x3F]; } /* Use '?' for unknown glyphs */ + //static inline glyph_t *glyph(uint8_t *character) { return glyph(*character); } + + static void set(); + //static void add(uint8_t character) { add_character(character); eol(); } + static void add(wchar_t character); + static void add(uint8_t *string, uint8_t max_len=MAX_STRING_LENGTH); + static void add(uint8_t *string, int8_t index, uint8_t *itemString=nullptr); + static void set(uint8_t *string) { set(); add(string); } + static void set(wchar_t character) { set(); add(character); } + static void set(uint8_t *string, int8_t index, const char *itemString=nullptr) { set(); add(string, index, (uint8_t *)itemString); } + static inline void set(const __FlashStringHelper *fstring) { set((uint8_t *)fstring); } + static inline void set(const char *string) { set((uint8_t *)string); } + static inline void set(const char *string, int8_t index, const char *itemString=nullptr) { set((uint8_t *)string, index, itemString); } + static inline void add(const char *string) { add((uint8_t *)string); } + + static void trim(uint8_t character=0x20); + static void rtrim(uint8_t character=0x20); + static void ltrim(uint8_t character=0x20); + + static void truncate(uint8_t maxlen) { if (len > maxlen) { len = maxlen; eol(); } } + + static uint8_t length() { return len; } + static uint16_t width() { return span; } + static uint8_t *string() { return data; } + static uint16_t center(uint16_t width) { return span > width ? 0 : (width - span) / 2; } +}; + +int dwin_charmap_compare(dwin_charmap_t *v1, dwin_charmap_t *v2); +int pf_bsearch_cb_comp_dwinmap_pgm(void *userdata, size_t idx, void * data_pin); + +extern DWIN_String dwin_string; + +#ifdef __AVR__ + #define IV(a) U##a +#else + #define IV(a) L##a +#endif + +const dwin_charmap_t g_dwin_charmap_device[] PROGMEM = { + // sorted by uchar: + #if DISPLAY_CHARSET_HD44780 == JAPANESE + + {IV('¢'), 0xEC, 0}, // A2 + {IV('°'), 0xDF, 0}, // B0, Marlin special: '°' LCD_STR_DEGREE (0x09) + {IV('ä'), 0xE1, 0}, // E4 + {IV('ö'), 0xEF, 0}, // F6 + {IV('÷'), 0xFD, 0}, // 00F7 + {IV('ü'), 0xF5, 0}, // 00FC + {IV('ˣ'), 0xEB, 0}, // 02E3 + + {IV('·'), 0xA5, 0}, // 0387 + {IV('Ώ'), 0xF4, 0}, // 038F + {IV('Θ'), 0xF2, 0}, // 0398, Theta + {IV('Ξ'), 0xE3, 0}, // 039E, Xi + {IV('Σ'), 0xF6, 0}, // 03A3, Sigma + {IV('Ω'), 0xF4, 0}, // 03A9, Omega + {IV('ά'), 0xE0, 0}, // 03AC + {IV('έ'), 0xE3, 0}, // 03AD + {IV('α'), 0xE0, 0}, // 03B1, alpha + {IV('β'), 0xE2, 0}, // 03B2, beta + {IV('ε'), 0xE3, 0}, // 03B5, epsilon + {IV('θ'), 0xF2, 0}, // 03B8, theta + {IV('μ'), 0xE4, 0}, // 03BC, mu + {IV('ξ'), 0xE3, 0}, // 03BE, xi + {IV('π'), 0xF7, 0}, // 03C0, pi + {IV('ρ'), 0xE6, 0}, // 03C1, rho + {IV('σ'), 0xE5, 0}, // 03C3, sigma + + {IV('←'), 0x7F, 0}, // 2190 + {IV('→'), 0x7E, 0}, // 2192, Marlin special: '⮈⮉⮊⮋➤→' LCD_STR_ARROW_RIGHT (0x03) + {IV('√'), 0xE8, 0}, // 221A + {IV('∞'), 0xF3, 0}, // 221E + {IV('█'), 0xFF, 0}, // 2588 + + //{IV(''), 0xA0, 0}, + {IV('。'), 0xA1, 0}, + {IV('「'), 0xA2, 0}, + {IV('」'), 0xA3, 0}, + {IV('゛'), 0xDE, 0}, // ‶ + {IV('゜'), 0xDF, 0}, // '〫' + {IV('゠'), '=', 0}, + {IV('ァ'), 0xA7, 0}, + {IV('ア'), 0xB1, 0}, + {IV('ィ'), 0xA8, 0}, + {IV('イ'), 0xB2, 0}, + {IV('ゥ'), 0xA9, 0}, + {IV('ウ'), 0xB3, 0}, + {IV('ェ'), 0xAA, 0}, + {IV('エ'), 0xB4, 0}, + {IV('ォ'), 0xAB, 0}, + + {IV('オ'), 0xB5, 0}, + {IV('カ'), 0xB6, 0}, + {IV('ガ'), 0xB6, 0xDE}, + {IV('キ'), 0xB7, 0}, + {IV('ギ'), 0xB7, 0xDE}, + {IV('ク'), 0xB8, 0}, + {IV('グ'), 0xB8, 0xDE}, + {IV('ケ'), 0xB9, 0}, + {IV('ゲ'), 0xB9, 0xDE}, + {IV('コ'), 0xBA, 0}, + {IV('ゴ'), 0xBA, 0xDE}, + {IV('サ'), 0xBB, 0}, + {IV('ザ'), 0xBB, 0xDE}, + {IV('シ'), 0xBC, 0}, + {IV('ジ'), 0xBC, 0xDE}, + {IV('ス'), 0xBD, 0}, + {IV('ズ'), 0xBD, 0xDE}, + {IV('セ'), 0xBE, 0}, + {IV('ゼ'), 0xBE, 0xDE}, + {IV('ソ'), 0xBF, 0}, + {IV('ゾ'), 0xBF, 0xDE}, + + {IV('タ'), 0xC0, 0}, + {IV('ダ'), 0xC0, 0xDE}, + {IV('チ'), 0xC1, 0}, + {IV('ヂ'), 0xC1, 0xDE}, + {IV('ッ'), 0xAF, 0}, + {IV('ツ'), 0xC2, 0}, + {IV('ヅ'), 0xC2, 0xDE}, + {IV('テ'), 0xC3, 0}, + {IV('デ'), 0xC3, 0xDE}, + {IV('ト'), 0xC4, 0}, + {IV('ド'), 0xC4, 0xDE}, + {IV('ナ'), 0xC5, 0}, + {IV('ニ'), 0xC6, 0}, + {IV('ヌ'), 0xC7, 0}, + {IV('ネ'), 0xC8, 0}, + {IV('ノ'), 0xC9, 0}, + {IV('ハ'), 0xCA, 0}, + {IV('バ'), 0xCA, 0xDE}, + {IV('パ'), 0xCA, 0xDF}, + {IV('ヒ'), 0xCB, 0}, + {IV('ビ'), 0xCB, 0xDE}, + {IV('ピ'), 0xCB, 0xDF}, + {IV('フ'), 0xCC, 0}, + {IV('ブ'), 0xCC, 0xDE}, + {IV('プ'), 0xCC, 0xDF}, + {IV('ヘ'), 0xCD, 0}, + {IV('ベ'), 0xCD, 0xDE}, + {IV('ペ'), 0xCD, 0xDF}, + {IV('ホ'), 0xCE, 0}, + {IV('ボ'), 0xCE, 0xDE}, + {IV('ポ'), 0xCE, 0xDF}, + {IV('マ'), 0xCF, 0}, + + {IV('ミ'), 0xD0, 0}, + {IV('ム'), 0xD1, 0}, + {IV('メ'), 0xD2, 0}, + {IV('モ'), 0xD3, 0}, + {IV('ャ'), 0xAC, 0}, + {IV('ヤ'), 0xD4, 0}, + {IV('ュ'), 0xAD, 0}, + {IV('ユ'), 0xD5, 0}, + {IV('ョ'), 0xAE, 0}, + {IV('ヨ'), 0xD6, 0}, + {IV('ラ'), 0xD7, 0}, + {IV('リ'), 0xD8, 0}, + {IV('ル'), 0xD9, 0}, + {IV('レ'), 0xDA, 0}, + {IV('ロ'), 0xDB, 0}, + {IV('ワ'), 0xDC, 0}, + {IV('ヲ'), 0xA6, 0}, + {IV('ン'), 0xDD, 0}, + {IV('ヴ'), 0xB3, 0xDE}, + {IV('ヷ'), 0xDC, 0xDE}, + {IV('ヺ'), 0xA6, 0xDE}, + {IV('・'), 0xA5, 0}, + {IV('ー'), 0xB0, 0}, + {IV('ヽ'), 0xA4, 0}, + + //{IV('g'), 0xE7, 0}, // error + //{IV(''), 0xE9, 0}, + //{IV('j'), 0xEA, 0}, // error + //{IV(''), 0xED, 0}, + //{IV(''), 0xEE, 0}, + + //{IV('p'), 0xF0, 0}, // error + //{IV('q'), 0xF1, 0}, // error + //{IV(''), 0xF8, 0}, + //{IV('y'), 0xF9, 0}, // error + {IV('万'), 0xFB, 0}, + {IV('円'), 0xFC, 0}, + {IV('千'), 0xFA, 0}, + //{IV(''), 0xFE, 0}, + + //、・ヲァィゥェォャュョッー + {IV('、'), 0xA4, 0}, //ヽ + {IV('・'), 0xA5, 0}, //・ + {IV('ヲ'), 0xA6, 0}, //ヲ + {IV('ァ'), 0xA7, 0}, //ァ + {IV('ィ'), 0xA8, 0}, //ィ + {IV('ゥ'), 0xA9, 0}, //ゥ + {IV('ェ'), 0xAA, 0}, //ェ + {IV('ォ'), 0xAB, 0}, //ォ + {IV('ャ'), 0xAC, 0}, //ャ + {IV('ュ'), 0xAD, 0}, //ュ + {IV('ョ'), 0xAE, 0}, //ョ + {IV('ッ'), 0xAF, 0}, //ッ + {IV('ー'), 0xB0, 0}, //ー + + //アイウエオカキクケコサシスセ + {IV('ア'), 0xB1, 0}, //ア + {IV('イ'), 0xB2, 0}, //イ + {IV('ウ'), 0xB3, 0}, //ウ + {IV('エ'), 0xB4, 0}, //エ + {IV('オ'), 0xB5, 0}, //オ + {IV('カ'), 0xB6, 0}, //カ + {IV('キ'), 0xB7, 0}, //キ + {IV('ク'), 0xB8, 0}, //ク + {IV('ケ'), 0xB9, 0}, //ケ + {IV('コ'), 0xBA, 0}, //コ + {IV('サ'), 0xBB, 0}, //サ + {IV('シ'), 0xBC, 0}, //シ + {IV('ス'), 0xBD, 0}, //ス + {IV('セ'), 0xBE, 0}, //セ + + //ソタチツテトナニヌネノハヒフ + {IV('ソ'), 0xBF, 0}, //ソ + {IV('タ'), 0xC0, 0}, //タ + {IV('チ'), 0xC1, 0}, //チ + {IV('ツ'), 0xC2, 0}, //ツ + {IV('テ'), 0xC3, 0}, //テ + {IV('ト'), 0xC4, 0}, //ト + {IV('ナ'), 0xC5, 0}, //ナ + {IV('ニ'), 0xC6, 0}, //ニ + {IV('ヌ'), 0xC7, 0}, //ヌ + {IV('ネ'), 0xC8, 0}, //ネ + {IV('ノ'), 0xC9, 0}, //ノ + {IV('ハ'), 0xCA, 0}, //ハ + {IV('ヒ'), 0xCB, 0}, //ヒ + {IV('フ'), 0xCC, 0}, //フ + + //ヘホマミムメモヤユヨラリルレロワン゙゚ + {IV('ヘ'), 0xCD, 0}, //ヘ + {IV('ホ'), 0xCE, 0}, //ホ + {IV('マ'), 0xCF, 0}, //マ + {IV('ミ'), 0xD0, 0}, //ミ + {IV('ム'), 0xD1, 0}, //ム + {IV('メ'), 0xD2, 0}, //メ + {IV('モ'), 0xD3, 0}, //モ + {IV('ヤ'), 0xD4, 0}, //ヤ + {IV('ユ'), 0xD5, 0}, //ユ + {IV('ヨ'), 0xD6, 0}, //ヨ + {IV('ラ'), 0xD7, 0}, //ラ + {IV('リ'), 0xD8, 0}, //リ + {IV('ル'), 0xD9, 0}, //ル + {IV('レ'), 0xDA, 0}, //レ + {IV('ロ'), 0xDB, 0}, //ロ + {IV('ワ'), 0xDC, 0}, //ワ + {IV('ン'), 0xDD, 0}, //ン + {IV('゙'), 0xDE, 0}, // ゛ + {IV('゚'), 0xDF, 0}, // ゜ + + {IV('¥'), 0x5C, 0}, + + #elif DISPLAY_CHARSET_HD44780 == WESTERN + // 0x10 -- 0x1F (except 0x1C) + // 0x80 -- 0xFF (except 0xA7,0xB0,0xB1,0xB3,0xB4,0xBF,0xD1,0xF8,0xFA,0xFC-0xFF) + + {IV('¡'), 0xA9, 0}, + {IV('¢'), 0xA4, 0}, + {IV('£'), 0xA5, 0}, + {IV('¥'), 0xA6, 0}, + {IV('§'), 0xD2, 0}, // section sign + {IV('©'), 0xCF, 0}, + + {IV('ª'), 0x9D, 0}, + {IV('«'), 0xBB, 0}, + {IV('®'), 0xCE, 0}, + + {IV('°'), 0xB2, 0}, // Marlin special: '°' LCD_STR_DEGREE (0x09) + //{IV(''), 0xD1, 0}, + {IV('±'), 0x10, 0}, //∓± + //{'='), 0x1C, 0}, // error + {IV('²'), 0x1E, 0}, + {IV('³'), 0x1F, 0}, + {IV('¶'), 0xD3, 0}, // pilcrow sign + {IV('º'), 0x9E, 0}, + {IV('»'), 0xBC, 0}, // 00BB + //{IV(''), 0xB3, 0}, // error + //{IV(''), 0xB4, 0}, // error + {IV('¼'), 0xB6, 0}, // 00BC + {IV('½'), 0xB5, 0}, // 00BD + //{IV('¾'), '3', 0}, // 00BE + {IV('¿'), 0x9F, 0}, // 00BF + + {IV('Â'), 0x8F, 0}, + {IV('Ã'), 0xAA, 0}, + {IV('Ä'), 0x8E, 0}, + {IV('Æ'), 0x92, 0}, + {IV('Ç'), 0x80, 0}, + {IV('É'), 0x90, 0}, + {IV('Ñ'), 0x9C, 0}, + {IV('Õ'), 0xAC, 0}, + {IV('Ö'), 0x99, 0}, + {IV('×'), 0xB7, 0}, + {IV('Ø'), 0xAE, 0}, + {IV('Ü'), 0x9A, 0}, + {IV('à'), 0x85, 0}, + {IV('á'), 0xA0, 0}, + {IV('â'), 0x83, 0}, + {IV('ã'), 0xAB, 0}, + {IV('ä'), 0x84, 0}, + {IV('å'), 0x86, 0}, + {IV('æ'), 0x91, 0}, + {IV('ç'), 0x87, 0}, + {IV('è'), 0x8A, 0}, + {IV('é'), 0x82, 0}, + {IV('ê'), 0x88, 0}, + {IV('ë'), 0x89, 0}, + {IV('ì'), 0x8D, 0}, + {IV('í'), 0xA1, 0}, + {IV('î'), 0x8C, 0}, + {IV('ï'), 0x8B, 0}, + + {IV('ñ'), 0x9B, 0}, + {IV('ò'), 0x95, 0}, + {IV('ó'), 0xA2, 0}, + {IV('ô'), 0x93, 0}, + {IV('õ'), 0xAD, 0}, + {IV('ö'), 0x94, 0}, + {IV('÷'), 0xB8, 0}, + {IV('ø'), 0xAF, 0}, + {IV('ù'), 0x97, 0}, + {IV('ú'), 0xA3, 0}, + {IV('û'), 0x96, 0}, + {IV('ü'), 0x81, 0}, + {IV('ÿ'), 0x98, 0}, + + //{IV(''), 0xB0, 0}, // error + //{IV(''), 0xB1, 0}, // error + {IV('ƒ'), 0xA8, 0}, // 0192 + + {IV('Ύ'), 0xDB, 0}, // 038E + {IV('Ώ'), 0xDE, 0}, // 038F + {IV('ΐ'), 0xE7, 0}, // 0390 + + {IV('Γ'), 0xD4, 0}, // 0393, Gamma + {IV('Δ'), 0xD5, 0}, // 0394, Delta, ◿ + {IV('Θ'), 0xD6, 0}, // 0398, Theta + {IV('Λ'), 0xD7, 0}, // 039B, Lambda + {IV('Ξ'), 0xD8, 0}, // 039E, Xi + {IV('Π'), 0xD9, 0}, // Pi + {IV('Σ'), 0xDA, 0}, // Sigma + {IV('Υ'), 0xDB, 0}, // Upsilon + {IV('Φ'), 0xDC, 0}, // Phi + {IV('Ψ'), 0xDD, 0}, // Psi + {IV('Ω'), 0xDE, 0}, // Omega + + {IV('ά'), 0xDF, 0}, // 03AC + {IV('έ'), 0xE3, 0}, // 03AD + {IV('ή'), 0xE5, 0}, // 03AE + {IV('ί'), 0xE7, 0}, // 03AF + {IV('ΰ'), 0xF1, 0}, // 03B0 + + {IV('α'), 0xDF, 0}, // alpha + {IV('β'), 0xE0, 0}, // beta + {IV('γ'), 0xE1, 0}, // gamma + {IV('δ'), 0xE2, 0}, // delta + {IV('ε'), 0xE3, 0}, // epsilon + {IV('ζ'), 0xE4, 0}, // zeta + {IV('η'), 0xE5, 0}, // eta + {IV('θ'), 0xE6, 0}, // theta + {IV('ι'), 0xE7, 0}, // lota + {IV('κ'), 0xE8, 0}, // kappa + {IV('λ'), 0xE9, 0}, // lambda + {IV('μ'), 0xEA, 0}, // mu + {IV('ν'), 0xEB, 0}, // nu + {IV('ξ'), 0xEC, 0}, // xi + {IV('π'), 0xED, 0}, // pi + {IV('ρ'), 0xEE, 0}, // rho + {IV('σ'), 0xEF, 0}, // sigma + + {IV('τ'), 0xF0, 0}, // tau + {IV('υ'), 0xF1, 0}, // upsilon + {IV('χ'), 0xF2, 0}, // chi + {IV('ψ'), 0xF3, 0}, // psi + {IV('ω'), 0xF4, 0}, // 03C9, omega + {IV('ϊ'), 0xE7, 0}, // 03CA + {IV('ϋ'), 0xF1, 0}, // 03CB + {IV('ύ'), 0xF1, 0}, // 03CD + {IV('ώ'), 0xF4, 0}, // 03CE + + {IV('•'), 0xCD, 0}, // · + {IV('℞'), 0xA7, 0}, // ℞ Pt ASCII 158 + {IV('™'), 0xD0, 0}, + {IV('↤'), 0xF9, 0}, // ⟻ + {IV('↵'), 0xC4, 0}, + {IV('↻'), 0x04, 0}, // Marlin special: '↻↺⟳⟲' LCD_STR_REFRESH (0x01) + {IV('⇥'), 0xFB, 0}, + {IV('√'), 0xBE, 0}, // √ + {IV('∞'), 0xC2, 0}, // infinity + {IV('∫'), 0x1B, 0}, + {IV('∼'), 0x1D, 0}, + {IV('≈'), 0x1A, 0}, + {IV('≠'), 0xBD, 0}, + {IV('≡'), 0x11, 0}, + {IV('≤'), 0xB9, 0},// ≤≥ ⩽⩾ + {IV('≥'), 0xBA, 0}, + //{IV(''), 0xBF, 0}, // error + + {IV('⌠'), 0xC0, 0}, + {IV('⌡'), 0xC1, 0}, + + {IV('⎧'), 0x14, 0}, + {IV('⎩'), 0x15, 0}, + {IV('⎫'), 0x16, 0}, + {IV('⎭'), 0x17, 0}, + {IV('⎰'), 0x18, 0}, + {IV('⎱'), 0x19, 0}, + + {IV('⎲'), 0x12, 0}, + {IV('⎳'), 0x13, 0}, + + {IV('⏱'), 0x07, 0}, // Marlin special: '🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕜🕝🕞🕟🕠🕡🕢🕣🕤🕥🕦🕧 ⌚⌛⏰⏱⏳⧖⧗' LCD_STR_CLOCK (0x05) + {IV('┌'), 0xC9, 0}, + {IV('┐'), 0xCA, 0}, + {IV('└'), 0xCB, 0}, + {IV('┘'), 0xCC, 0}, + {IV('◸'), 0xC3, 0}, // ◿ + {IV('⭠'), 0xC8, 0}, + {IV('⭡'), 0xC5, 0}, + {IV('⭢'), 0xC7, 0}, + {IV('⭣'), 0xC6, 0}, + + + {IV('⯆'), 0xF5, 0}, + {IV('⯇'), 0xF7, 0}, // ⯅ + {IV('⯈'), 0xF6, 0}, + //{IV(''), 0xF8, 0}, // error + //{IV(''), 0xFA, 0}, // error + //{IV(''), 0xFC, 0}, // error + //{IV(''), 0xFD, 0}, // error + //{IV(''), 0xFE, 0}, // error + //{IV(''), 0xFF, 0}, // error + + #elif DISPLAY_CHARSET_HD44780 == CYRILLIC + + {IV('¢'), 0x5C, 0}, // 00A2 + {IV('£'), 0xCF, 0}, // 00A3 + {IV('°'), 0x01, 0}, // 00B0, Marlin special: '°' LCD_STR_DEGREE (0x09) + + //{IV(''), 0x80, 0}, + //{IV(''), 0x81, 0}, + //{IV(''), 0x82, 0}, + //{IV(''), 0x83, 0}, + //{IV(''), 0x84, 0}, + //{IV(''), 0x85, 0}, + //{IV(''), 0x86, 0}, + //{IV(''), 0x87, 0}, + //{IV(''), 0x88, 0}, + //{IV(''), 0x89, 0}, + //{IV(''), 0x8A, 0}, + //{IV(''), 0x8B, 0}, + //{IV(''), 0x8C, 0}, + //{IV(''), 0x8D, 0}, + //{IV(''), 0x8E, 0}, + //{IV(''), 0x8F, 0}, + + //{IV(''), 0x90, 0}, + //{IV(''), 0x91, 0}, + //{IV(''), 0x92, 0}, + //{IV(''), 0x93, 0}, + //{IV(''), 0x94, 0}, + //{IV(''), 0x95, 0}, + //{IV(''), 0x96, 0}, + //{IV(''), 0x97, 0}, + //{IV(''), 0x98, 0}, + //{IV(''), 0x99, 0}, + //{IV(''), 0x9A, 0}, + //{IV(''), 0x9B, 0}, + //{IV(''), 0x9C, 0}, + //{IV(''), 0x9D, 0}, + //{IV(''), 0x9E, 0}, + //{IV(''), 0x9F, 0}, + + + {IV('¼'), 0xF0, 0}, // 00BC + {IV('⅓'), 0xF1, 0}, + {IV('½'), 0xF2, 0}, // 00BD + {IV('¾'), 0xF3, 0}, // 00BE + {IV('¿'), 0xCD, 0}, // 00BF + + #if ENABLED(DISPLAY_CHARSET_ISO10646_5) + + // Map Cyrillic to HD44780 extended CYRILLIC where possible + {IV('Ё'), 0xA2, 0}, // 0401 + {IV('А'), 'A', 0}, // 0410 + {IV('Б'), 0xA0, 0}, + {IV('В'), 'B', 0}, + {IV('Г'), 0xA1, 0}, + {IV('Д'), 0xE0, 0}, + {IV('Е'), 'E', 0}, + {IV('Ж'), 0xA3, 0}, + {IV('З'), 0xA4, 0}, + {IV('И'), 0xA5, 0}, + {IV('Й'), 0xA6, 0}, + {IV('К'), 'K', 0}, + {IV('Л'), 0xA7, 0}, + {IV('М'), 'M', 0}, + {IV('Н'), 'H', 0}, + {IV('О'), 'O', 0}, + {IV('П'), 0xA8, 0}, + {IV('Р'), 'P', 0}, + {IV('С'), 'C', 0}, + {IV('Т'), 'T', 0}, + {IV('У'), 0xA9, 0}, + {IV('Ф'), 0xAA, 0}, + {IV('Х'), 'X', 0}, + {IV('Ц'), 0xE1, 0}, + {IV('Ч'), 0xAB, 0}, + {IV('Ш'), 0xAC, 0}, + {IV('Щ'), 0xE2, 0}, + {IV('Ъ'), 0xAD, 0}, + {IV('Ы'), 0xAE, 0}, + {IV('Ь'), 'b', 0}, + {IV('Э'), 0xAF, 0}, + {IV('Ю'), 0xB0, 0}, + {IV('Я'), 0xB1, 0}, + {IV('а'), 'a', 0}, + + {IV('б'), 0xB2, 0}, + {IV('в'), 0xB3, 0}, + {IV('г'), 0xB4, 0}, + {IV('д'), 0xE3, 0}, + {IV('е'), 'e', 0}, + {IV('ж'), 0xB6, 0}, + {IV('з'), 0xB7, 0}, + {IV('и'), 0xB8, 0}, + {IV('й'), 0xB9, 0}, + {IV('к'), 0xBA, 0}, //клмноп + {IV('л'), 0xBB, 0}, + {IV('м'), 0xBC, 0}, + {IV('н'), 0xBD, 0}, + {IV('о'), 'o', 0}, + {IV('п'), 0xBE, 0}, + {IV('р'), 'p', 0}, + {IV('с'), 'c', 0}, + {IV('т'), 0xBF, 0}, + + {IV('у'), 'y', 0}, + {IV('ф'), 0xE4, 0}, + {IV('х'), 'x', 0}, + {IV('ц'), 0xE5, 0}, + {IV('ч'), 0xC0, 0}, + {IV('ш'), 0xC1, 0}, + {IV('щ'), 0xE6, 0}, + {IV('ъ'), 0xC2, 0}, + {IV('ы'), 0xC3, 0}, + {IV('ь'), 0xC4, 0}, + {IV('э'), 0xC5, 0}, + {IV('ю'), 0xC6, 0}, + {IV('я'), 0xC7, 0}, // 044F + {IV('ё'), 0xB5, 0}, // 0451 + //{IV(''), 0xC8, 0}, + //{IV(''), 0xC9, 0}, + //{IV(''), 0xCA, 0}, + //{IV(''), 0xCB, 0}, + //{IV(''), 0xCC, 0}, + //{IV(''), 0xCD, 0}, + //{IV(''), 0xCE, 0}, + + //{IV(''), 0xD0, 0}, + //{IV(''), 0xD1, 0}, + //{IV(''), 0xD2, 0}, + //{IV(''), 0xD3, 0}, + //{IV(''), 0xD4, 0}, + //{IV(''), 0xD5, 0}, + //{IV(''), 0xD6, 0}, + //{IV(''), 0xD7, 0}, + //{IV(''), 0xD8, 0}, + //{IV(''), 0xDB, 0}, + //{IV(''), 0xDC, 0}, + //{IV(''), 0xDD, 0}, + //{IV(''), 0xDE, 0}, + //{IV(''), 0xDF, 0}, + + //{IV(''), 0xE7, 0}, + //{IV(''), 0xE8, 0}, + //{IV(''), 0xE9, 0}, + //{IV(''), 0xEA, 0}, + //{IV(''), 0xEB, 0}, + //{IV(''), 0xEC, 0}, + //{IV(''), 0xED, 0}, + //{IV(''), 0xEE, 0}, + //{IV(''), 0xEF, 0}, + + //{IV(''), 0xF4, 0}, + //{IV(''), 0xF5, 0}, + //{IV(''), 0xF6, 0}, + //{IV(''), 0xF7, 0}, + //{IV(''), 0xF8, 0}, + //{IV(''), 0xF9, 0}, + //{IV(''), 0xFA, 0}, + //{IV(''), 0xFB, 0}, + //{IV(''), 0xFC, 0}, + //{IV(''), 0xFD, 0}, + //{IV(''), 0xFE, 0}, + //{IV(''), 0xFF, 0}, + + #endif + + {IV('↑'), 0xD9, 0}, // 2191 ←↑→↓ + {IV('↓'), 0xDA, 0}, // 2193 + #endif +}; + +// the plain ASCII replacement for various char +const dwin_charmap_t g_dwin_charmap_common[] PROGMEM = { + {IV('¡'), 'i', 0}, // A1 + {IV('¢'), 'c', 0}, // A2 + {IV('°'), 0x09, 0}, // B0 Marlin special: '°' LCD_STR_DEGREE (0x09) + + // Map WESTERN code to plain ASCII + {IV('Á'), 'A', 0}, // C1 + {IV('Â'), 'A', 0}, // C2 + {IV('Ã'), 'A', 0}, // C3 + {IV('Ä'), 'A', 0}, // C4 + {IV('Å'), 'A', 0}, // C5 + {IV('Æ'), 'A', 'E'}, // C6 + {IV('Ç'), 'C', 0}, // C7 + {IV('È'), 'E', 0}, // C8 + {IV('É'), 'E', 0}, // C9 + {IV('Í'), 'I', 0}, // CD + {IV('Ñ'), 'N', 0}, // D1 + {IV('Õ'), 'O', 0}, // D5 + {IV('Ö'), 'O', 0}, // D6 + {IV('×'), 'x', 0}, // D7 + {IV('Ü'), 'U', 0}, // DC + {IV('Ý'), 'Y', 0}, // DD + {IV('à'), 'a', 0}, // E0 + {IV('á'), 'a', 0}, + {IV('â'), 'a', 0}, + {IV('ã'), 'a', 0}, + {IV('ä'), 'a', 0}, + {IV('å'), 'a', 0}, + {IV('æ'), 'a', 'e'}, + {IV('ç'), 'c', 0}, + {IV('è'), 'e', 0}, // 00E8 + {IV('é'), 'e', 0}, + {IV('ê'), 'e', 0}, + {IV('ë'), 'e', 0}, + {IV('ì'), 'i', 0}, // 00EC + {IV('í'), 'i', 0}, + {IV('î'), 'i', 0}, + {IV('ï'), 'i', 0}, // 00EF + + {IV('ñ'), 'n', 0}, // 00F1 + {IV('ò'), 'o', 0}, + {IV('ó'), 'o', 0}, + {IV('ô'), 'o', 0}, + {IV('õ'), 'o', 0}, + {IV('ö'), 'o', 0}, + //{IV('÷'), 0xB8, 0}, + {IV('ø'), 'o', 0}, + {IV('ù'), 'u', 0}, + {IV('ú'), 'u', 0}, + {IV('û'), 'u', 0}, + {IV('ü'), 'u', 0}, // FC + {IV('ý'), 'y', 0}, // FD + {IV('ÿ'), 'y', 0}, // FF + + {IV('Ą'), 'A', 0}, // 0104 + {IV('ą'), 'a', 0}, // 0105 + {IV('Ć'), 'C', 0}, // 0106 + {IV('ć'), 'c', 0}, // 0107 + {IV('Č'), 'C', 0}, // 010C + {IV('č'), 'c', 0}, // 010D + {IV('Ď'), 'D', 0}, // 010E + {IV('ď'), 'd', 0}, // 010F + {IV('đ'), 'd', 0}, // 0111 + {IV('ę'), 'e', 0}, // 0119 + {IV('Ě'), 'E', 0}, // 011A + {IV('ě'), 'e', 0}, // 011B + {IV('ğ'), 'g', 0}, // 011F + {IV('İ'), 'I', 0}, // 0130 + {IV('ı'), 'i', 0}, // 0131 + + {IV('Ł'), 'L', 0}, // 0141 + {IV('ł'), 'l', 0}, // 0142 + {IV('Ń'), 'N', 0}, // 0143 + {IV('ń'), 'n', 0}, // 0144 + {IV('ň'), 'n', 0}, // 0148 + + {IV('Ř'), 'R', 0}, // 0158 + {IV('ř'), 'r', 0}, // 0159 + {IV('Ś'), 'S', 0}, // 015A + {IV('ś'), 's', 0}, // 015B + {IV('ş'), 's', 0}, // 015F + {IV('Š'), 'S', 0}, // 0160 + {IV('š'), 's', 0}, // 0161 + {IV('ť'), 't', 0}, // 0165 + {IV('ů'), 'u', 0}, // 016F + {IV('ż'), 'z', 0}, // 017C + {IV('Ž'), 'Z', 0}, // 017D + {IV('ž'), 'z', 0}, // 017E + {IV('ƒ'), 'f', 0}, // 0192 + + {IV('ˣ'), 'x', 0}, // 02E3 + + #if ENABLED(DISPLAY_CHARSET_ISO10646_VI) + + // Map Vietnamese phonetics + + //{IV('à'), 'a', 0}, {IV('À'), 'A', 0}, + {IV('ạ'), 'a', 0}, {IV('Ạ'), 'A', 0}, + {IV('ả'), 'a', 0}, {IV('Ả'), 'A', 0}, + //{IV('ã'), 'a', 0}, {IV('Ã'), 'A', 0}, + //{IV('á'), 'á', 0}, {IV('Á'), 'A', 0}, + {IV('Ạ'), 'A', 0}, + {IV('ă'), 'a', 0}, {IV('Ă'), 'A', 0}, + {IV('ằ'), 'a', 0}, {IV('Ằ'), 'A', 0}, + {IV('ẳ'), 'a', 0}, {IV('Ẳ'), 'A', 0}, + {IV('ẵ'), 'a', 0}, {IV('Ẵ'), 'A', 0}, + {IV('ắ'), 'a', 0}, {IV('Ắ'), 'A', 0}, + {IV('ặ'), 'a', 0}, {IV('Ặ'), 'A', 0}, + {IV('â'), 'a', 0}, {IV('Â'), 'A', 0}, + {IV('ầ'), 'a', 0}, {IV('Ầ'), 'A', 0}, + {IV('ẩ'), 'a', 0}, {IV('Ẩ'), 'A', 0}, + {IV('ẫ'), 'a', 0}, {IV('Ẫ'), 'A', 0}, + {IV('ấ'), 'a', 0}, {IV('Ấ'), 'A', 0}, + {IV('ậ'), 'a', 0}, {IV('Ậ'), 'A', 0}, + //{IV('đ'), 'd', 0}, + {IV('Đ'), 'D', 0}, + {IV('e'), 'e', 0}, {IV('E'), 'E', 0}, + {IV('è'), 'e', 0}, {IV('È'), 'E', 0}, + {IV('ẻ'), 'e', 0}, {IV('Ẻ'), 'E', 0}, + {IV('ẽ'), 'e', 0}, {IV('Ẽ'), 'E', 0}, + {IV('é'), 'e', 0}, {IV('É'), 'E', 0}, + {IV('ẹ'), 'e', 0}, {IV('Ẹ'), 'E', 0}, + {IV('ê'), 'e', 0}, {IV('Ê'), 'E', 0}, + {IV('ề'), 'e', 0}, {IV('Ề'), 'E', 0}, + {IV('ể'), 'e', 0}, {IV('Ể'), 'E', 0}, + {IV('ễ'), 'e', 0}, {IV('Ễ'), 'E', 0}, + {IV('ế'), 'e', 0}, {IV('Ế'), 'E', 0}, + {IV('ệ'), 'e', 0}, {IV('Ệ'), 'E', 0}, + {IV('i'), 'i', 0}, {IV('I'), 'I', 0}, + //{IV('ì'), 'ì', 0}, {IV('Ì'), 'Ì', 0}, + {IV('ỉ'), 'ỉ', 0}, {IV('Ỉ'), 'Ỉ', 0}, + {IV('ĩ'), 'ĩ', 0}, {IV('Ĩ'), 'Ĩ', 0}, + {IV('í'), 'í', 0}, {IV('Í'), 'Í', 0}, + {IV('ị'), 'ị', 0}, {IV('Ị'), 'Ị', 0}, + {IV('o'), 'o', 0}, {IV('O'), 'O', 0}, + {IV('ò'), 'o', 0}, {IV('Ò'), 'O', 0}, + {IV('ỏ'), 'o', 0}, {IV('Ỏ'), 'O', 0}, + {IV('õ'), 'o', 0}, {IV('Õ'), 'O', 0}, + {IV('ó'), 'o', 0}, {IV('Ó'), 'O', 0}, + {IV('ọ'), 'o', 0}, {IV('Ọ'), 'O', 0}, + {IV('ô'), 'o', 0}, {IV('Ô'), 'O', 0}, + {IV('ồ'), 'o', 0}, {IV('Ồ'), 'O', 0}, + {IV('ổ'), 'o', 0}, {IV('Ổ'), 'O', 0}, + {IV('ỗ'), 'o', 0}, {IV('Ỗ'), 'O', 0}, + {IV('ố'), 'o', 0}, {IV('Ố'), 'O', 0}, + {IV('ộ'), 'o', 0}, {IV('Ộ'), 'O', 0}, + {IV('ơ'), 'o', 0}, {IV('Ơ'), 'O', 0}, + {IV('ờ'), 'o', 0}, {IV('Ờ'), 'O', 0}, + {IV('ở'), 'o', 0}, {IV('Ở'), 'O', 0}, + {IV('ỡ'), 'o', 0}, {IV('Ỡ'), 'O', 0}, + {IV('ớ'), 'o', 0}, {IV('Ớ'), 'O', 0}, + {IV('ợ'), 'o', 0}, {IV('Ợ'), 'O', 0}, + {IV('ù'), 'u', 0}, {IV('Ù'), 'U', 0}, + {IV('ủ'), 'u', 0}, {IV('Ủ'), 'U', 0}, + {IV('ũ'), 'u', 0}, {IV('Ũ'), 'U', 0}, + //{IV('ú'), 'u', 0}, {IV('Ú'), 'U', 0}, + {IV('ụ'), 'u', 0}, {IV('Ụ'), 'U', 0}, + {IV('ư'), 'u', 0}, {IV('Ư'), 'U', 0}, + {IV('ừ'), 'u', 0}, {IV('Ừ'), 'U', 0}, + {IV('ử'), 'u', 0}, {IV('Ử'), 'U', 0}, + {IV('ữ'), 'u', 0}, {IV('Ữ'), 'U', 0}, + {IV('ứ'), 'u', 0}, {IV('Ứ'), 'U', 0}, + {IV('ự'), 'u', 0}, {IV('Ự'), 'U', 0}, + {IV('y'), 'y', 0}, {IV('Y'), 'Y', 0}, + + #endif + + #if ENABLED(DISPLAY_CHARSET_ISO10646_GREEK) + + {IV('΄'), '\'', 0}, // 0384 + {IV('΅'), '\'', 0}, // 0385 + {IV('Ά'), 'A', 0}, // 0386 + {IV('·'), '.', 0}, // 0387 + {IV('Έ'), 'E', 0}, // 0388 + {IV('Ή'), 'H', 0}, // 0389 + {IV('Ί'), 'I', 0}, // 038A + {IV('Ό'), 'O', 0}, // 038C + {IV('Ύ'), 'Y', 0}, // 038E + {IV('Ώ'), 'O', 0}, // 038F + {IV('ΐ'), 'i', 0}, // 0390 + {IV('Α'), 'A', 0}, // 0391 + {IV('Β'), 'B', 0}, // 0392 + {IV('Γ'), 'T', 0}, // 0393, Gamma + {IV('Δ'), '4', 0}, // 0394, Delta, ◿ + {IV('Ε'), 'E', 0}, // 0395 + {IV('Ζ'), 'Z', 0}, // 0396 + {IV('Η'), 'H', 0}, // 0397 + {IV('Θ'), '0', 0}, // 0398, Theta + {IV('Ι'), 'I', 0}, // 0399 + {IV('Κ'), 'K', 0}, // 039A + {IV('Λ'), '^', 0}, // 039B, Lambda + {IV('Μ'), 'M', 0}, // 039C + {IV('Ν'), 'N', 0}, // 039D + {IV('Ξ'), '3', 0}, // 039E, Xi + {IV('Ο'), 'O', 0}, // 039F + {IV('Π'), 'n', 0}, // 03A0, Pi + {IV('Ρ'), 'P', 0}, // 03A1 + {IV('Σ'), 'E', 0}, // 03A3, Sigma + {IV('Τ'), 'T', 0}, // 03A4 + {IV('Υ'), 'Y', 0}, // 03A5, Upsilon + {IV('Φ'), 'p', 0}, // 03A6, Phi + {IV('Χ'), 'X', 0}, // 03A7 + {IV('Ψ'), 'P', 0}, // 03A8, Psi + {IV('Ω'), 'O', 0}, // 03A9, Omega + {IV('Ϊ'), 'I', 0}, // 03AA + {IV('Ϋ'), 'Y', 0}, // 03AB + {IV('ά'), 'a', 0}, // 03AC + {IV('έ'), 'e', 0}, // 03AD + {IV('ή'), 'n', 0}, // 03AE + {IV('ί'), 'i', 0}, // 03AF + {IV('ΰ'), 'v', 0}, // 03B0 + {IV('α'), 'a', 0}, // 03B1, alpha + {IV('β'), 'B', 0}, // 03B2, beta + {IV('γ'), 'v', 0}, // 03B3, gamma + {IV('δ'), 'd', 0}, // 03B4, delta + {IV('ε'), 'e', 0}, // 03B5, epsilon + {IV('ζ'), 'Z', 0}, // 03B6, zeta + {IV('η'), 'n', 0}, // 03B7, eta + {IV('θ'), '0', 0}, // 03B8, theta + {IV('ι'), 'i', 0}, // 03B9, lota + {IV('κ'), 'k', 0}, // 03BA, kappa + {IV('λ'), 'L', 0}, // 03BB, lambda + {IV('μ'), 'u', 0}, // 03BC, mu + {IV('ν'), 'v', 0}, // 03BD, nu + {IV('ξ'), 'e', 0}, // 03BE, xi + {IV('ο'), 'o', 0}, // 03BF + {IV('π'), 'n', 0}, // 03C0, pi + {IV('ρ'), 'p', 0}, // 03C1, rho + {IV('ς'), 'c', 0}, // 03C2 + {IV('σ'), 'o', 0}, // 03C3, sigma + {IV('τ'), 't', 0}, // 03C4, tau + {IV('υ'), 'v', 0}, // 03C5, upsilon + {IV('φ'), 'p', 0}, // 03C6 + {IV('χ'), 'X', 0}, // 03C7, chi + {IV('ψ'), 'W', 0}, // 03C8, psi + {IV('ω'), 'w', 0}, // 03C9, omega + {IV('ϊ'), 'i', 0}, // 03CA + {IV('ϋ'), 'v', 0}, // 03CB + {IV('ό'), 'o', 0}, // 03CC + {IV('ύ'), 'v', 0}, // 03CD + {IV('ώ'), 'w', 0}, // 03CE + + #endif + + #if ENABLED(DISPLAY_CHARSET_ISO10646_5) + // Map CYRILLIC code to plain ASCII + {IV('Ё'), 'E', 0}, // 0401 + {IV('А'), 'A', 0}, // 0410 + {IV('Б'), 'b', 0}, // 0411 + {IV('В'), 'B', 0}, // 0412 + {IV('Г'), 'T', 0}, // 0413 + {IV('Д'), 'Q', 0}, // 0414 + {IV('Е'), 'E', 0}, // 0415 + {IV('Ж'), '*', 0}, // 0416 + {IV('З'), 'E', 0}, // 0417 + {IV('И'), 'N', 0}, // 0418 + {IV('Й'), 'N', 0}, // 0419 + {IV('К'), 'K', 0}, // 041A + {IV('Л'), 'T', 0}, // 041B + {IV('М'), 'M', 0}, // 041C + {IV('Н'), 'H', 0}, // 041D + {IV('О'), 'O', 0}, // 041E + {IV('П'), 'n', 0}, // 041F + {IV('Р'), 'P', 0}, // 0420 + {IV('С'), 'C', 0}, // 0421 + {IV('Т'), 'T', 0}, // 0422 + {IV('У'), 'Y', 0}, + {IV('Ф'), 'o', 0}, + {IV('Х'), 'X', 0}, + {IV('Ц'), 'U', 0}, + {IV('Ч'), 'y', 0}, + {IV('Ш'), 'W', 0}, + {IV('Щ'), 'W', 0}, + {IV('Ъ'), 'b', 0}, + {IV('Ы'), 'b', '|'}, + {IV('Ь'), 'b'}, + {IV('Э'), 'e'}, + {IV('Ю'), '|', 'O'}, + {IV('Я'), '9', '|'}, // 042F + + {IV('а'), 'a', 0}, // 0430 + {IV('б'), '6', 0}, // 0431 + {IV('в'), 'B', 0}, // 0432, + {IV('г'), 'r', 0}, // 0433 + {IV('д'), 'a', 0}, // 0434, + {IV('е'), 'e', 0}, // 0435 + {IV('ж'), '*', 0}, // 0436 + {IV('з'), 'e', 0}, // 0437, + {IV('и'), 'u', 0}, // 0438 + {IV('й'), 'u', 0}, // 0439, + {IV('к'), 'k', 0}, // 043A + {IV('л'), 'n', 0}, + {IV('м'), 'm', 0}, + {IV('н'), 'H', 0}, + {IV('о'), 'o', 0}, + {IV('п'), 'n', 0}, + {IV('р'), 'p', 0}, + {IV('с'), 'c', 0}, + {IV('т'), 't', 0}, + {IV('у'), 'y', 0}, + {IV('ф'), 'q', 'p'}, + {IV('х'), 'x', 0}, + {IV('ц'), 'u', 0}, + {IV('ч'), 'y', 0}, + {IV('ш'), 'w', 0}, + {IV('щ'), 'w', 0}, + {IV('ъ'), 'b', 0}, + {IV('ы'), 'b', '|'}, + {IV('ь'), 'b', 0}, + {IV('э'), 'e', 0}, + {IV('ю'), '|', 'o'}, + {IV('я'), 'g', 0}, // 044F + {IV('ё'), 'e', 0}, // 0451 + #endif + + {IV('•'), '.', 0}, // 2022 · + {IV('℞'), 'P', 'x'}, // 211E ℞ Pt ASCII 158 + {IV('™'), 'T', 'M'}, // 2122 + {IV('←'), '<', '-'}, // 2190 + {IV('→'), '-', '>'}, // 2192, Marlin special: '⮈⮉⮊⮋➤→⏵➟➠➡' LCD_STR_ARROW_RIGHT (0x03) + //{IV('↰'), '<', 0}, // 21B0, Marlin special: '⮥⮭⮉⇧↑↰⤴' LCD_STR_UPLEVEL (0x04) + {IV('↰'), 0x03, 0}, // 21B0, Marlin special: '⮥⮭⮉⇧↑↰⤴' LCD_STR_UPLEVEL (0x04) + {IV('↻'), 0x04, 0}, // 21BB Marlin special: '↻↺⟳⟲' LCD_STR_REFRESH (0x01) + {IV('∼'), '~', 0}, // 223C + {IV('≈'), '~', '='}, // 2248 + {IV('≠'), '!', '='}, // 2260 + {IV('≡'), '=', 0}, // 2261 + {IV('≤'), '<', '='},// 2264, ≤≥ ⩽⩾ + {IV('≥'), '>', '='}, // 2265 + {IV('⏱'), 0x07, 0}, // 23F1, Marlin special: '🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕜🕝🕞🕟🕠🕡🕢🕣🕤🕥🕦🕧 ⌚⌛⏰⏱⏳⧖⧗' LCD_STR_CLOCK (0x05) + + {IV('゠'), '=', 0}, // 30A0 + + // ⏰⏱⏲⏳◴◵◶◷ + // ⏻⏼♁♂ + //{IV(''), 0x00, 0}, // Marlin special: '' LCD_STR_BEDTEMP (0x07) + {IV('🌡'), 0x02, 0}, // D83CDF21 Marlin special: '🌡' LCD_STR_THERMOMETER (0x08) + {IV('📂'), 0x05, 0}, // D83DDCC2 Marlin special: '📁📂' LCD_STR_FOLDER (0x02) + //{IV(''), 0x06, 0}, // Marlin special: '' LCD_STR_FEEDRATE (0x06) +}; diff --git a/Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.cpp b/Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.cpp new file mode 100644 index 000000000000..20b3727dbc93 --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.cpp @@ -0,0 +1,193 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * lcd/e3v2/marlinui/lcdprint_dwin.cpp + * + * Due to DWIN hardware limitations simplified characters are used + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if IS_DWIN_MARLINUI + +#include "lcdprint_dwin.h" +#include "dwin_lcd.h" +#include "dwin_string.h" + +#include "../../marlinui.h" +#include "../../../MarlinCore.h" + +#include + +cursor_t cursor; + +extern dwin_font_t dwin_font; + +void lcd_moveto_xy(const lcd_uint_t x, const lcd_uint_t y) { cursor.x = x; cursor.y = y; } + +void lcd_moveto(const lcd_uint_t col, const lcd_uint_t row) { + cursor.x = col * dwin_font.width; + cursor.y = (row * (dwin_font.height + EXTRA_ROW_HEIGHT)) + (EXTRA_ROW_HEIGHT / 2); +} + +inline void lcd_advance_cursor() { cursor.x += dwin_font.width; } + +void lcd_put_int(const int i) { + // TODO: Draw an int at the cursor position, advance the cursor +} + +int lcd_put_dwin_string() { + DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string()); + cursor.x += dwin_string.length() * dwin_font.width; + return dwin_string.length(); +} + +// return < 0 on error +// return the advanced cols +int lcd_put_wchar_max(wchar_t c, pixel_len_t max_length) { + dwin_string.set(); + dwin_string.add(c); + dwin_string.truncate(max_length); + // Draw the char(s) at the cursor and advance the cursor + DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string()); + cursor.x += dwin_string.length() * dwin_font.width; + return dwin_string.length(); +} + +/** + * @brief Draw a UTF-8 string + * + * @param utf8_str : the UTF-8 string + * @param cb_read_byte : the callback function to read one byte from the utf8_str (from RAM or ROM) + * @param max_length : the pixel length of the string allowed (or number of slots in HD44780) + * + * @return the number of pixels advanced + * + * Draw a UTF-8 string + */ +static int lcd_put_u8str_max_cb(const char * utf8_str, uint8_t (*cb_read_byte)(uint8_t * str), pixel_len_t max_length) { + uint8_t *p = (uint8_t *)utf8_str; + dwin_string.set(); + while (dwin_string.length() < max_length) { + wchar_t ch = 0; + p = get_utf8_value_cb(p, cb_read_byte, &ch); + if (!ch) break; + dwin_string.add(ch); + } + DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string()); + cursor.x += dwin_string.length() * dwin_font.width; + return dwin_string.length(); +} + +int lcd_put_u8str_max(const char * utf8_str, pixel_len_t max_length) { + return lcd_put_u8str_max_cb(utf8_str, read_byte_ram, max_length); +} + +int lcd_put_u8str_max_P(PGM_P utf8_str_P, pixel_len_t max_length) { + return lcd_put_u8str_max_cb(utf8_str_P, read_byte_rom, max_length); +} + +lcd_uint_t lcd_put_u8str_ind_P(PGM_P const pstr, const int8_t ind, PGM_P const inStr/*=nullptr*/, const lcd_uint_t maxlen/*=LCD_WIDTH*/) { + dwin_string.set(); + dwin_string.add((uint8_t*)pstr, ind, (uint8_t*)inStr); + dwin_string.truncate(maxlen); + DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string()); + cursor.x += dwin_string.length() * dwin_font.width; + return dwin_string.length(); +} + +#if ENABLED(DEBUG_LCDPRINT) + + int test_dwin_charmap(dwin_charmap_t *data, size_t size, char *name, char flg_show_contents) { + int ret; + size_t idx = 0; + dwin_charmap_t preval = { 0, 0, 0 }; + dwin_charmap_t pinval = { 0, 0, 0 }; + char flg_error = 0; + + int i; + + TRACE("Test %s\n", name); + + for (i = 0; i < size; i ++) { + memcpy_P(&pinval, &(data[i]), sizeof(pinval)); + + if (flg_show_contents) { + #if 1 + TRACE("[% 4d] % 6" PRIu32 "(0x%04" PRIX32 ") --> 0x%02X,0x%02X%s\n", i, pinval.uchar, pinval.uchar, (unsigned int)(pinval.idx), (unsigned int)(pinval.idx2), (preval.uchar < pinval.uchar?"":" <--- ERROR")); + #else + TRACE("[% 4d]", i); + TRACE("% 6" PRIu32 "(0x%04" PRIX32 "),", pinval.uchar, pinval.uchar); + TRACE("0x%02X,", (unsigned int)(pinval.idx)); + TRACE("0x%02X,", (unsigned int)(pinval.idx2)); + TRACE("%s", (preval.uchar < pinval.uchar?"":" <--- ERROR")); + #endif + } + if (preval.uchar >= pinval.uchar) { + flg_error = 1; + //TRACE("Error: out of order in array %s: idx=%d, val=%d(0x%x)\n", name, i, pinval.uchar, pinval.uchar); + //return -1; + } + memcpy(&preval, &pinval, sizeof(pinval)); + + ret = pf_bsearch_r((void *)data, size, pf_bsearch_cb_comp_dwinmap_pgm, (void *)&pinval, &idx); + if (ret < 0) { + flg_error = 1; + TRACE("Error: not found item in array %s: idx=%d, val=%d(0x%x)\n", name, i, pinval.uchar, pinval.uchar); + //return -1; + } + if (idx != i) { + flg_error = 1; + TRACE("Error: wrong index found item in array %s: idx=%d, val=%d(0x%x)\n", name, i, pinval.uchar, pinval.uchar); + //return -1; + } + } + if (flg_error) { + TRACE("\nError: in array %s\n\n", name); + return -1; + } + TRACE("\nPASS array %s\n\n", name); + return 0; + } + + int test_dwin_charmap_all() { + int flg_error = 0; + if (test_dwin_charmap(g_dwin_charmap_device, COUNT(g_dwin_charmap_device), "g_dwin_charmap_device", 0) < 0) { + flg_error = 1; + test_dwin_charmap(g_dwin_charmap_device, COUNT(g_dwin_charmap_device), "g_dwin_charmap_device", 1); + } + if (test_dwin_charmap(g_dwin_charmap_common, COUNT(g_dwin_charmap_common), "g_dwin_charmap_common", 0) < 0) { + flg_error = 1; + test_dwin_charmap(g_dwin_charmap_common, COUNT(g_dwin_charmap_common), "g_dwin_charmap_common", 1); + } + if (flg_error) { + TRACE("\nFAILED in dwin tests!\n"); + return -1; + } + TRACE("\nPASS in dwin tests.\n"); + return 0; + } + +#endif // DEBUG_LCDPRINT + +#endif // IS_DWIN_MARLINUI diff --git a/Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.h b/Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.h new file mode 100644 index 000000000000..692f448e7631 --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.h @@ -0,0 +1,30 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../lcdprint.h" + +typedef struct { int16_t x, y; } cursor_t; +extern cursor_t cursor; + +int lcd_put_dwin_string(); +void lcd_moveto_xy(const lcd_uint_t, const lcd_uint_t); diff --git a/Marlin/src/lcd/e3v2/marlinui/marlinui_dwin.h b/Marlin/src/lcd/e3v2/marlinui/marlinui_dwin.h new file mode 100644 index 000000000000..de87c30b6b00 --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/marlinui_dwin.h @@ -0,0 +1,146 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +/** + * lcd/e3v2/marlinui/lcdprint_dwin.h + */ + +#include "../../../inc/MarlinConfigPre.h" +#include "dwin_lcd.h" + +typedef uint16_t dwin_coord_t; // Screen can be pretty big +typedef uint16_t lcd_uint_t; +typedef int16_t lcd_int_t; + +typedef struct { + uint8_t index, width, height; + uint16_t fg, bg; + bool solid; +} dwin_font_t; + +extern dwin_font_t dwin_font; + +// Only Western languages support big / small fonts +//#if DISABLED(DISPLAY_CHARSET_ISO10646_1) +// #undef USE_BIG_EDIT_FONT +// #undef USE_SMALL_INFOFONT +//#endif + +#if ENABLED(USE_BIG_EDIT_FONT) + #define DWIN_FONT_EDIT font10x20 +#else + #define DWIN_FONT_EDIT font8x16 +#endif + +#define DWIN_FONT_INFO font8x16 + +#if DWIN_FONT_MENU == font6x12 + #define MENU_FONT_WIDTH 6 + #define MENU_FONT_ASCENT 10 + #define MENU_FONT_DESCENT 2 +#elif DWIN_FONT_MENU == font8x16 + #define MENU_FONT_WIDTH 8 + #define MENU_FONT_ASCENT 13 + #define MENU_FONT_DESCENT 3 +#elif DWIN_FONT_MENU == font10x20 + #define MENU_FONT_WIDTH 10 + #define MENU_FONT_ASCENT 16 + #define MENU_FONT_DESCENT 4 +#endif +#define MENU_FONT_HEIGHT (MENU_FONT_ASCENT + MENU_FONT_DESCENT) + +#define EXTRA_ROW_HEIGHT 8 +#define MENU_LINE_HEIGHT (MENU_FONT_HEIGHT + EXTRA_ROW_HEIGHT) + +#if DWIN_FONT_EDIT == font6x12 + #define EDIT_FONT_WIDTH 6 + #define EDIT_FONT_ASCENT 10 + #define EDIT_FONT_DESCENT 2 +#elif DWIN_FONT_EDIT == font8x16 + #define EDIT_FONT_WIDTH 8 + #define EDIT_FONT_ASCENT 13 + #define EDIT_FONT_DESCENT 3 +#elif DWIN_FONT_EDIT == font10x20 + #define EDIT_FONT_WIDTH 10 + #define EDIT_FONT_ASCENT 16 + #define EDIT_FONT_DESCENT 4 +#endif +#define EDIT_FONT_HEIGHT (EDIT_FONT_ASCENT + EDIT_FONT_DESCENT) + +#if DWIN_FONT_INFO == font6x12 + #define INFO_FONT_WIDTH 6 + #define INFO_FONT_ASCENT 10 + #define INFO_FONT_DESCENT 2 +#elif DWIN_FONT_INFO == font8x16 + #define INFO_FONT_WIDTH 8 + #define INFO_FONT_ASCENT 13 + #define INFO_FONT_DESCENT 3 +#elif DWIN_FONT_INFO == font10x20 + #define INFO_FONT_WIDTH 10 + #define INFO_FONT_ASCENT 16 + #define INFO_FONT_DESCENT 4 +#endif +#define INFO_FONT_HEIGHT (INFO_FONT_ASCENT + INFO_FONT_DESCENT) + +#if DWIN_FONT_STAT == font6x12 + #define STAT_FONT_WIDTH 6 + #define STAT_FONT_ASCENT 10 + #define STAT_FONT_DESCENT 2 +#elif DWIN_FONT_STAT == font8x16 + #define STAT_FONT_WIDTH 8 + #define STAT_FONT_ASCENT 13 + #define STAT_FONT_DESCENT 3 +#elif DWIN_FONT_STAT == font10x20 + #define STAT_FONT_WIDTH 10 + #define STAT_FONT_ASCENT 16 + #define STAT_FONT_DESCENT 4 +#elif DWIN_FONT_STAT == font12x24 + #define STAT_FONT_WIDTH 12 + #define STAT_FONT_ASCENT 19 + #define STAT_FONT_DESCENT 5 +#elif DWIN_FONT_STAT == font14x28 + #define STAT_FONT_WIDTH 14 + #define STAT_FONT_ASCENT 22 + #define STAT_FONT_DESCENT 6 +#elif DWIN_FONT_STAT == font16x32 + #define STAT_FONT_WIDTH 16 + #define STAT_FONT_ASCENT 26 + #define STAT_FONT_DESCENT 6 +#elif DWIN_FONT_STAT == font20x40 + #define STAT_FONT_WIDTH 20 + #define STAT_FONT_ASCENT 32 + #define STAT_FONT_DESCENT 8 +#elif DWIN_FONT_STAT == font24x48 + #define STAT_FONT_WIDTH 24 + #define STAT_FONT_ASCENT 38 + #define STAT_FONT_DESCENT 10 +#elif DWIN_FONT_STAT == font28x56 + #define STAT_FONT_WIDTH 28 + #define STAT_FONT_ASCENT 44 + #define STAT_FONT_DESCENT 12 +#elif DWIN_FONT_STAT == font32x64 + #define STAT_FONT_WIDTH 32 + #define STAT_FONT_ASCENT 50 + #define STAT_FONT_DESCENT 14 +#endif +#define STAT_FONT_HEIGHT (STAT_FONT_ASCENT + STAT_FONT_DESCENT) diff --git a/Marlin/src/lcd/e3v2/marlinui/ui_common.cpp b/Marlin/src/lcd/e3v2/marlinui/ui_common.cpp new file mode 100644 index 000000000000..7655e059e2b9 --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/ui_common.cpp @@ -0,0 +1,595 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if IS_DWIN_MARLINUI + +#include "marlinui_dwin.h" +#include "dwin_lcd.h" +#include "dwin_string.h" + +//#include "../../lcdprint.h" +#include "lcdprint_dwin.h" +#include "../../fontutils.h" +#include "../../../libs/numtostr.h" +#include "../../marlinui.h" + +#include "../../../sd/cardreader.h" +#include "../../../module/motion.h" +#include "../../../module/temperature.h" +#include "../../../module/printcounter.h" + +#if ENABLED(SDSUPPORT) + #include "../../../libs/duration_t.h" +#endif + +#if ENABLED(AUTO_BED_LEVELING_UBL) + #include "../../../feature/bedlevel/bedlevel.h" +#endif + +// DWIN printing specifies the font on each string operation +// but we'll make the font modal for Marlin +dwin_font_t dwin_font = { font8x16, 8, 16, Color_White, Color_Bg_Black, true }; +void MarlinUI::set_font(const uint8_t font_nr) { + if (font_nr != dwin_font.index) { + dwin_font.index = font_nr; + uint8_t w, h; + switch (font_nr) { + default: + case font6x12: w = 6; h = 12; break; + case font8x16: w = 8; h = 16; break; + case font10x20: w = 10; h = 20; break; + case font12x24: w = 12; h = 24; break; + case font14x28: w = 14; h = 28; break; + case font16x32: w = 16; h = 32; break; + case font20x40: w = 20; h = 40; break; + case font24x48: w = 24; h = 48; break; + case font28x56: w = 28; h = 56; break; + case font32x64: w = 32; h = 64; break; + } + dwin_font.width = w; + dwin_font.height = h; + // TODO: Array with dimensions, auto fit menu items, + // update char width / height of the screen based on + // new (fixed-width) font size. + } +} + +// This display is always detected +bool MarlinUI::detected() { return true; } + +// Initialize or re-initialize the LCD +void MarlinUI::init_lcd() { + DWIN_Startup(); + + // Load the assets JPG (currently just the status screen 'icon') + DWIN_JPG_CacheToN(1, DWIN_MarlinUI_Assets); +} + +// This LCD should clear where it will draw anew +void MarlinUI::clear_lcd() { + DWIN_ICON_AnimationControl(0x0000); // disable all icon animations + DWIN_Frame_Clear(Color_Bg_Black); + DWIN_UpdateLCD(); + + did_first_redraw = false; +} + +#if ENABLED(SHOW_BOOTSCREEN) + + void MarlinUI::show_bootscreen() { + clear_lcd(); + dwin_string.set(F(SHORT_BUILD_VERSION)); + + #if ENABLED(DWIN_MARLINUI_PORTRAIT) + #define LOGO_CENTER ((LCD_PIXEL_WIDTH) / 2) + #define INFO_CENTER LOGO_CENTER + #define VERSION_Y 330 + DWIN_ICON_Show(BOOT_ICON, ICON_MarlinBoot, LOGO_CENTER - 266 / 2, 15); + DWIN_ICON_Show(BOOT_ICON, ICON_OpenSource, LOGO_CENTER - 174 / 2, 280); + DWIN_ICON_Show(BOOT_ICON, ICON_GitHubURL, LOGO_CENTER - 180 / 2, 420); + DWIN_ICON_Show(BOOT_ICON, ICON_MarlinURL, LOGO_CENTER - 100 / 2, 440); + DWIN_ICON_Show(BOOT_ICON, ICON_Copyright, LOGO_CENTER - 126 / 2, 460); + #else + #define LOGO_CENTER (280 / 2) + #define INFO_CENTER ((LCD_PIXEL_WIDTH) - 200 / 2) + #define VERSION_Y 84 + DWIN_ICON_Show(BOOT_ICON, ICON_MarlinBoot, LOGO_CENTER - 266 / 2, 15); + DWIN_ICON_Show(BOOT_ICON, ICON_OpenSource, INFO_CENTER - 174 / 2, 60); + DWIN_ICON_Show(BOOT_ICON, ICON_GitHubURL, INFO_CENTER - 180 / 2, 130); + DWIN_ICON_Show(BOOT_ICON, ICON_MarlinURL, INFO_CENTER - 100 / 2, 152); + DWIN_ICON_Show(BOOT_ICON, ICON_Copyright, INFO_CENTER - 126 / 2, 200); + #endif + + DWIN_Draw_String(false, font10x20, Color_Yellow, Color_Bg_Black, INFO_CENTER - (dwin_string.length() * 10) / 2, VERSION_Y, S(dwin_string.string())); + DWIN_UpdateLCD(); + } + + void MarlinUI::bootscreen_completion(const millis_t sofar) { + if ((BOOTSCREEN_TIMEOUT) > sofar) safe_delay((BOOTSCREEN_TIMEOUT) - sofar); + clear_lcd(); + } + +#endif + +// The kill screen is displayed for unrecoverable conditions +void MarlinUI::draw_kill_screen() { + set_font(DWIN_FONT_ALERT); + DWIN_Frame_Clear(Color_Bg_Black); + dwin_font.fg = Color_Error_Red; + dwin_font.solid = false; + DWIN_Draw_Rectangle(1, Color_Bg_Window, 20, 20, LCD_PIXEL_WIDTH - 20, LCD_PIXEL_HEIGHT - 20); + // make the frame a few pixels thick + DWIN_Draw_Rectangle(0, Color_Yellow, 20, 20, LCD_PIXEL_WIDTH - 20, LCD_PIXEL_HEIGHT - 20); + DWIN_Draw_Rectangle(0, Color_Yellow, 21, 21, LCD_PIXEL_WIDTH - 21, LCD_PIXEL_HEIGHT - 21); + DWIN_Draw_Rectangle(0, Color_Yellow, 22, 22, LCD_PIXEL_WIDTH - 22, LCD_PIXEL_HEIGHT - 22); + + uint8_t cx = (LCD_PIXEL_WIDTH / dwin_font.width / 2), + cy = (LCD_PIXEL_HEIGHT / dwin_font.height / 2); + + #if ENABLED(DWIN_MARLINUI_LANDSCAPE) + cx += (96 / 2 / dwin_font.width); + DWIN_ICON_Show(ICON, ICON_Halted, 40, (LCD_PIXEL_HEIGHT - 96) / 2); + #else + DWIN_ICON_Show(ICON, ICON_Halted, (LCD_PIXEL_WIDTH - 96) / 2, 40); + #endif + + uint8_t slen = utf8_strlen(status_message); + lcd_moveto(cx - (slen / 2), cy - 1); + lcd_put_u8str(status_message); + + slen = utf8_strlen(S(GET_TEXT_F(MSG_HALTED))); + lcd_moveto(cx - (slen / 2), cy); + lcd_put_u8str_P((const char*)GET_TEXT_F(MSG_HALTED)); + + slen = utf8_strlen(S(GET_TEXT_F(MSG_HALTED))); + lcd_moveto(cx - (slen / 2), cy + 1); + lcd_put_u8str_P((const char*)GET_TEXT_F(MSG_HALTED)); +} + +// +// Status Message +// +void MarlinUI::draw_status_message(const bool blink) { + set_font(DWIN_FONT_STAT); + dwin_font.solid = true; + dwin_font.fg = Color_White; + dwin_font.bg = Color_Bg_Black; + lcd_moveto_xy(0, LCD_PIXEL_HEIGHT - (STAT_FONT_HEIGHT) - 1); + + constexpr uint8_t max_status_chars = (LCD_PIXEL_WIDTH) / (STAT_FONT_WIDTH); + + auto status_changed = []{ + static uint16_t old_hash = 0x0000; + uint16_t hash = 0x0000; + for (uint8_t i = 0; i < MAX_MESSAGE_LENGTH; i++) { + const char c = ui.status_message[i]; + if (!c) break; + hash = ((hash << 1) | (hash >> 15)) ^ c; + } + const bool hash_changed = hash != old_hash; + old_hash = hash; + return hash_changed || !ui.did_first_redraw; + }; + + #if ENABLED(STATUS_MESSAGE_SCROLLING) + static bool last_blink = false; + + // Get the UTF8 character count of the string + uint8_t slen = utf8_strlen(status_message); + + // If the string fits into the LCD, just print it and do not scroll it + if (slen <= max_status_chars) { + + if (status_changed()) { + + // The string isn't scrolling and may not fill the screen + lcd_put_u8str(status_message); + + // Fill the rest with spaces + while (slen < max_status_chars) { lcd_put_wchar(' '); ++slen; } + } + } + else { + // String is larger than the available line space + + // Get a pointer to the next valid UTF8 character + // and the string remaining length + uint8_t rlen; + const char *stat = status_and_len(rlen); + lcd_put_u8str_max(stat, max_status_chars); + + // If the string doesn't completely fill the line... + if (rlen < max_status_chars) { + lcd_put_wchar('.'); // Always at 1+ spaces left, draw a dot + uint8_t chars = max_status_chars - rlen; // Amount of space left in characters + if (--chars) { // Draw a second dot if there's space + lcd_put_wchar('.'); + if (--chars) + lcd_put_u8str_max(status_message, chars); // Print a second copy of the message + } + } + + if (last_blink != blink) { + last_blink = blink; + advance_status_scroll(); + } + } + + #else + + UNUSED(blink); + + if (status_changed()) { + // Get the UTF8 character count of the string + uint8_t slen = utf8_strlen(status_message); + + // Just print the string to the LCD + lcd_put_u8str_max(status_message, max_status_chars); + + // Fill the rest with spaces if there are missing spaces + while (slen < max_status_chars) { lcd_put_wchar(' '); ++slen; } + } + + #endif +} + +#if HAS_LCD_MENU + + #include "../../menu/menu.h" + + #if ENABLED(ADVANCED_PAUSE_FEATURE) + + void MarlinUI::draw_hotend_status(const uint8_t row, const uint8_t extruder) { + + dwin_font.solid = false; + dwin_font.fg = Color_White; + dwin_string.set("E"); + dwin_string.add('1' + extruder); + dwin_string.add(' '); + dwin_string.add(i16tostr3rj(thermalManager.degHotend(extruder))); + dwin_string.add('/'); + if (get_blink() || !thermalManager.heater_idle[thermalManager.idle_index_for_id(extruder)].timed_out) + dwin_string.add(i16tostr3rj(thermalManager.degTargetHotend(extruder))); + else + dwin_string.add(PSTR(" ")); + + lcd_moveto(LCD_WIDTH - dwin_string.length(), row); + lcd_put_dwin_string(); + } + + #endif + + // Set the colors for a menu item based on whether it is selected + static bool mark_as_selected(const uint8_t row, const bool sel, const bool is_static=false) { + const dwin_coord_t y = row * (MENU_LINE_HEIGHT) + 1; + if (y >= LCD_PIXEL_HEIGHT) return false; + + if (is_static && sel) + DWIN_Draw_Box(1, Color_Bg_Heading, 0, y, LCD_PIXEL_WIDTH, MENU_LINE_HEIGHT - 1); + else { + #if ENABLED(MENU_HOLLOW_FRAME) + DWIN_Draw_Box(1, Color_Bg_Black, 0, y, LCD_PIXEL_WIDTH, MENU_LINE_HEIGHT - 1); + if (sel) DWIN_Draw_Box(0, Select_Color, 0, y, LCD_PIXEL_WIDTH, MENU_LINE_HEIGHT - 1); + #else + DWIN_Draw_Box(1, sel ? Select_Color : Color_Bg_Black, 0, y, LCD_PIXEL_WIDTH, MENU_LINE_HEIGHT - 1); + #endif + } + + return true; + } + + // Draw a static line of text in the same idiom as a menu item + + void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const vstr/*=nullptr*/) { + // Call mark_as_selected to draw a bigger selection box + // and draw the text without a background + if (mark_as_selected(row, (bool)(style & SS_INVERT), true)) { + ui.set_font(DWIN_FONT_MENU); + dwin_font.solid = false; + dwin_font.fg = Color_White; + + dwin_string.set(); + const int8_t plen = pstr ? utf8_strlen_P(pstr) : 0, + vlen = vstr ? utf8_strlen(vstr) : 0; + if (style & SS_CENTER) { + int8_t pad = (LCD_WIDTH - 1 - plen - vlen) / 2; + while (--pad) dwin_string.add(' '); + } + + if (plen) dwin_string.add((uint8_t*)pstr, itemIndex, (uint8_t*)itemString); + if (vlen) dwin_string.add((uint8_t*)vstr); + if (style & SS_CENTER) { + int8_t pad = (LCD_WIDTH - 1 - plen - vlen) / 2; + while (--pad) dwin_string.add(' '); + } + + lcd_moveto(1, row); + lcd_put_dwin_string(); + } + } + + // Draw a generic menu item + void MenuItemBase::_draw(const bool sel, const uint8_t row, PGM_P const pstr, const char, const char post_char) { + if (mark_as_selected(row, sel)) { + ui.set_font(DWIN_FONT_MENU); + dwin_font.solid = false; + dwin_font.fg = Color_White; + + dwin_string.set(pstr, itemIndex, itemString); + + pixel_len_t n = LCD_WIDTH - 1 - dwin_string.length(); + while (--n > 1) dwin_string.add(' '); + + dwin_string.add(post_char); + + lcd_moveto(1, row); + lcd_put_dwin_string(); + } + } + + // + // Draw a menu item with an editable value + // + void MenuEditItemBase::draw(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data, const bool pgm) { + if (mark_as_selected(row, sel)) { + ui.set_font(DWIN_FONT_MENU); + dwin_font.solid = false; + dwin_font.fg = Color_White; + + const uint8_t vallen = (pgm ? utf8_strlen_P(data) : utf8_strlen(S(data))); + + dwin_string.set(pstr, itemIndex, itemString); + if (vallen) dwin_string.add(':'); + + lcd_moveto(1, row); + lcd_put_dwin_string(); + + if (vallen) { + dwin_font.fg = Color_Yellow; + dwin_string.set(data); + lcd_moveto(LCD_WIDTH - vallen - 1, row); + lcd_put_dwin_string(); + } + } + } + + // + // Draw an edit screen with label and current value + // + void MenuEditItemBase::draw_edit_screen(PGM_P const pstr, const char* const value/*=nullptr*/) { + ui.encoder_direction_normal(); + + const dwin_coord_t labellen = utf8_strlen_P(pstr), vallen = utf8_strlen(value); + + dwin_string.set(); + dwin_string.add((uint8_t*)pstr, itemIndex); + if (vallen) dwin_string.add(':'); // If a value is included, add a colon + + // Assume the label is alpha-numeric (with a descender) + const uint16_t row = (LCD_HEIGHT / 2) - 1; + + dwin_font.fg = Color_White; + dwin_font.solid = true; + lcd_moveto((LCD_WIDTH - labellen + !!vallen) / 2, row); + lcd_put_dwin_string(); + + // If a value is included, print the value in larger text below the label + if (vallen) { + dwin_string.set(); + dwin_string.add(value); + + const dwin_coord_t by = (row * MENU_LINE_HEIGHT) + MENU_FONT_HEIGHT + EXTRA_ROW_HEIGHT / 2; + DWIN_Draw_String(true, font16x32, Color_Yellow, Color_Bg_Black, (LCD_PIXEL_WIDTH - vallen * 16) / 2, by, S(dwin_string.string())); + + extern screenFunc_t _manual_move_func_ptr; + if (ui.currentScreen != _manual_move_func_ptr && !ui.external_control) { + + const dwin_coord_t slider_length = LCD_PIXEL_WIDTH - TERN(DWIN_MARLINUI_LANDSCAPE, 120, 20), + slider_height = 16, + slider_x = (LCD_PIXEL_WIDTH - slider_length) / 2, + slider_y = by + 32 + 4, + amount = ui.encoderPosition * slider_length / maxEditValue; + + DWIN_Draw_Rectangle(1, Color_Bg_Window, slider_x - 1, slider_y - 1, slider_x - 1 + slider_length + 2 - 1, slider_y - 1 + slider_height + 2 - 1); + if (amount > 0) + DWIN_Draw_Box(1, BarFill_Color, slider_x, slider_y, amount, slider_height); + if (amount < slider_length) + DWIN_Draw_Box(1, Color_Bg_Black, slider_x + amount, slider_y, slider_length - amount, slider_height); + } + } + } + + inline void draw_boxed_string(const bool yesopt, PGM_P const pstr, const bool inv) { + const uint8_t len = utf8_strlen_P(pstr), + mar = TERN(DWIN_MARLINUI_PORTRAIT, 1, 4), + col = yesopt ? LCD_WIDTH - mar - len : mar, + row = (LCD_HEIGHT >= 8 ? LCD_HEIGHT / 2 + 3 : LCD_HEIGHT - 1); + lcd_moveto(col, row); + DWIN_Draw_Box(1, inv ? Select_Color : Color_Bg_Black, cursor.x - dwin_font.width, cursor.y + 1, dwin_font.width * (len + 2), dwin_font.height + 2); + lcd_put_u8str_P(col, row, pstr); + } + + void MenuItem_confirm::draw_select_screen( + PGM_P const yes, PGM_P const no, const bool yesno, + PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/ + ) { + ui.set_font(DWIN_FONT_MENU); + dwin_font.solid = false; + dwin_font.fg = Color_White; + ui.draw_select_screen_prompt(pref, string, suff); + draw_boxed_string(false, no, !yesno); + draw_boxed_string(true, yes, yesno); + } + + #if ENABLED(SDSUPPORT) + + void MenuItem_sdbase::draw(const bool sel, const uint8_t row, PGM_P const, CardReader &theCard, const bool isDir) { + if (mark_as_selected(row, sel)) { + dwin_string.set(); + + uint8_t maxlen = LCD_WIDTH - 1; + if (isDir) { + dwin_string.add(LCD_STR_FOLDER " "); + maxlen -= 2; + } + + dwin_string.add((uint8_t*)ui.scrolled_filename(theCard, maxlen, row, sel), maxlen); + uint8_t n = maxlen - dwin_string.length(); + while (n > 0) { dwin_string.add(' '); --n; } + lcd_moveto(1, row); + lcd_put_dwin_string(); + } + } + + #endif // SDSUPPORT + + #if ENABLED(AUTO_BED_LEVELING_UBL) + + /** + * UBL LCD "radar" map data + */ + #define MAP_UPPER_LEFT_CORNER_X 5 // These probably should be moved to the .h file But for now, + #define MAP_UPPER_LEFT_CORNER_Y 5 // it is easier to play with things having them here + #define MAP_MAX_PIXELS_X 262 // 272 - 10 + #define MAP_MAX_PIXELS_Y 262 + + void MarlinUI::ubl_plot(const uint8_t x_plot, const uint8_t y_plot) { + // Scale the box pixels appropriately + dwin_coord_t x_map_pixels = ((MAP_MAX_PIXELS_X - 4) / (GRID_MAX_POINTS_X)) * (GRID_MAX_POINTS_X), + y_map_pixels = ((MAP_MAX_PIXELS_Y - 4) / (GRID_MAX_POINTS_Y)) * (GRID_MAX_POINTS_Y), + + pixels_per_x_mesh_pnt = x_map_pixels / (GRID_MAX_POINTS_X), + pixels_per_y_mesh_pnt = y_map_pixels / (GRID_MAX_POINTS_Y), + + x_offset = MAP_UPPER_LEFT_CORNER_X + 1 + (MAP_MAX_PIXELS_X - x_map_pixels - 2) / 2, + y_offset = MAP_UPPER_LEFT_CORNER_Y + 1 + (MAP_MAX_PIXELS_Y - y_map_pixels - 2) / 2; + + // Clear the Mesh Map + + // First draw the bigger box in White so we have a border around the mesh map box + DWIN_Draw_Rectangle(1, Color_White, x_offset - 2, y_offset - 2, x_offset + 2 + x_map_pixels, y_offset + 2 + y_map_pixels); + // Now actually clear the mesh map box + DWIN_Draw_Rectangle(1, Color_Bg_Black, x_offset, y_offset, x_offset + x_map_pixels, y_offset + y_map_pixels); + + // Fill in the Specified Mesh Point + + const uint8_t y_plot_inv = (GRID_MAX_POINTS_Y - 1) - y_plot; // The origin is typically in the lower right corner. We need to + // invert the Y to get it to plot in the right location. + + const dwin_coord_t by = y_offset + y_plot_inv * pixels_per_y_mesh_pnt; + DWIN_Draw_Rectangle(1, Select_Color, + x_offset + (x_plot * pixels_per_x_mesh_pnt), by, + x_offset + (x_plot * pixels_per_x_mesh_pnt) + pixels_per_x_mesh_pnt, by + pixels_per_y_mesh_pnt + ); + + // Display Mesh Point Locations + const dwin_coord_t sx = x_offset + pixels_per_x_mesh_pnt / 2; + dwin_coord_t y = y_offset + pixels_per_y_mesh_pnt / 2; + for (uint8_t j = 0; j < GRID_MAX_POINTS_Y; j++, y += pixels_per_y_mesh_pnt) + for (uint8_t i = 0, x = sx; i < GRID_MAX_POINTS_X; i++, x += pixels_per_x_mesh_pnt) + DWIN_Draw_Point(Color_White, 1, 1, x, y); + + // Put Relevant Text on Display + + // Show X and Y positions at top of screen + dwin_font.fg = Color_White; + dwin_font.solid = true; + const xy_pos_t pos = { ubl.mesh_index_to_xpos(x_plot), ubl.mesh_index_to_ypos(y_plot) }, + lpos = pos.asLogical(); + + lcd_moveto( + TERN(DWIN_MARLINUI_LANDSCAPE, ((x_offset + x_map_pixels) / MENU_FONT_WIDTH) + 2, 1), + TERN(DWIN_MARLINUI_LANDSCAPE, 1, ((y_offset + y_map_pixels) / MENU_LINE_HEIGHT) + 1) + ); + lcd_put_u8str_P(X_LBL); + lcd_put_u8str(ftostr52(lpos.x)); + lcd_moveto( + TERN(DWIN_MARLINUI_LANDSCAPE, ((x_offset + x_map_pixels) / MENU_FONT_WIDTH) + 2, 1), + TERN(DWIN_MARLINUI_LANDSCAPE, 3, ((y_offset + y_map_pixels) / MENU_LINE_HEIGHT) + 2) + ); + lcd_put_u8str_P(Y_LBL); + lcd_put_u8str(ftostr52(lpos.y)); + + // Print plot position + dwin_string.set("("); + dwin_string.add(i8tostr3rj(x_plot)); + dwin_string.add(","); + dwin_string.add(i8tostr3rj(y_plot)); + dwin_string.add(")"); + lcd_moveto( + TERN(DWIN_MARLINUI_LANDSCAPE, ((x_offset + x_map_pixels) / MENU_FONT_WIDTH) + 2, LCD_WIDTH - dwin_string.length()), + TERN(DWIN_MARLINUI_LANDSCAPE, LCD_HEIGHT - 2, ((y_offset + y_map_pixels) / MENU_LINE_HEIGHT) + 1) + ); + lcd_put_dwin_string(); + + // Show the location value + dwin_string.set(Z_LBL); + if (!isnan(ubl.z_values[x_plot][y_plot])) + dwin_string.add(ftostr43sign(ubl.z_values[x_plot][y_plot])); + else + dwin_string.add(PSTR(" -----")); + lcd_moveto( + TERN(DWIN_MARLINUI_LANDSCAPE, ((x_offset + x_map_pixels) / MENU_FONT_WIDTH) + 2, LCD_WIDTH - dwin_string.length()), + TERN(DWIN_MARLINUI_LANDSCAPE, LCD_HEIGHT - 1, ((y_offset + y_map_pixels) / MENU_LINE_HEIGHT) + 2) + ); + lcd_put_dwin_string(); + } + + #endif // AUTO_BED_LEVELING_UBL + + #if ANY(BABYSTEP_ZPROBE_GFX_OVERLAY, MESH_EDIT_GFX_OVERLAY, BABYSTEP_GFX_OVERLAY) + + void _lcd_zoffset_overlay_gfx(const float zvalue) { + // Determine whether the user is raising or lowering the nozzle. + static int8_t dir; + static float old_zvalue; + if (zvalue != old_zvalue) { + dir = zvalue ? zvalue < old_zvalue ? -1 : 1 : 0; + old_zvalue = zvalue; + } + + const int rot_up = TERN(OVERLAY_GFX_REVERSE, ICON_RotateCCW, ICON_RotateCW), + rot_down = TERN(OVERLAY_GFX_REVERSE, ICON_RotateCW, ICON_RotateCCW); + + const int nozzle = (LCD_PIXEL_WIDTH / 2) - 20; + + // Draw a representation of the nozzle + DWIN_Draw_Box(1, Color_Bg_Black, nozzle + 3, 8, 48, 52); // 'clear' the area where the nozzle is drawn in case it was moved up/down + DWIN_ICON_Show(ICON, ICON_HotendOff, nozzle + 3, 10 - dir); + DWIN_ICON_Show(ICON, ICON_BedLine, nozzle, 10 + 36); + + // Draw cw/ccw indicator and up/down arrows + const int arrow_y = LCD_PIXEL_HEIGHT / 2 - 24; + DWIN_ICON_Show(ICON, ICON_DownArrow, 0, arrow_y - dir); + DWIN_ICON_Show(ICON, rot_down, 48, arrow_y); + + DWIN_ICON_Show(ICON, ICON_UpArrow, LCD_PIXEL_WIDTH - 10 - (48*2), arrow_y - dir); + DWIN_ICON_Show(ICON, rot_up, LCD_PIXEL_WIDTH - 10 - 48, arrow_y); + } + + #endif // BABYSTEP_ZPROBE_GFX_OVERLAY || MESH_EDIT_GFX_OVERLAY + +#endif // HAS_LCD_MENU + +#endif // IS_DWIN_MARLINUI diff --git a/Marlin/src/lcd/e3v2/marlinui/ui_status_480x272.cpp b/Marlin/src/lcd/e3v2/marlinui/ui_status_480x272.cpp new file mode 100644 index 000000000000..0e2f3a3d4cac --- /dev/null +++ b/Marlin/src/lcd/e3v2/marlinui/ui_status_480x272.cpp @@ -0,0 +1,391 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if IS_DWIN_MARLINUI + +#include "marlinui_dwin.h" +#include "dwin_lcd.h" +#include "dwin_string.h" +#include "lcdprint_dwin.h" + +#include "../../fontutils.h" +#include "../../../libs/numtostr.h" +#include "../../marlinui.h" + +#include "../../../sd/cardreader.h" +#include "../../../module/motion.h" +#include "../../../module/temperature.h" +#include "../../../module/printcounter.h" + +#if ENABLED(SDSUPPORT) + #include "../../../libs/duration_t.h" +#endif + +#if ENABLED(LCD_SHOW_E_TOTAL) + #include "../../../MarlinCore.h" // for printingIsActive +#endif + +#define STATUS_HEATERS_X 15 +#define STATUS_HEATERS_Y 56 +#define STATUS_HEATERS_XSPACE 64 +#define STATUS_FAN_WIDTH 48 +#define STATUS_FAN_HEIGHT 48 +#define STATUS_FAN_Y STATUS_HEATERS_Y + 22 +#define STATUS_CHR_WIDTH 14 +#define STATUS_CHR_HEIGHT 28 + +// +// Before homing, blink '123' <-> '???'. +// Homed but unknown... '123' <-> ' '. +// Homed and known, display constantly. +// +FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const bool blink, const uint16_t x, const uint16_t y) { + uint8_t vallen = utf8_strlen(value); + + if (!ui.did_first_redraw) { + dwin_string.set(); + dwin_string.add('X' + axis); + DWIN_Draw_String(true, font16x32, Color_IconBlue, Color_Bg_Black, x + (vallen * 14 - 14) / 2, y + 2, S(dwin_string.string())); + } + + dwin_string.set(); + if (blink) + dwin_string.add(value); + else { + if (!TEST(axis_homed, axis)) + while (const char c = *value++) dwin_string.add(c <= '.' ? c : '?'); + else { + #if NONE(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING) + if (!TEST(axis_trusted, axis)) + dwin_string.add(TERN1(DWIN_MARLINUI_PORTRAIT, axis == Z_AXIS) ? PSTR(" ") : PSTR(" ")); + else + #endif + dwin_string.add(value); + } + } + + // For E_TOTAL there may be some characters to cover up + if (BOTH(DWIN_MARLINUI_PORTRAIT, LCD_SHOW_E_TOTAL) && axis == X_AXIS) + dwin_string.add(" "); + + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + 32, S(dwin_string.string())); +} + +#if ENABLED(LCD_SHOW_E_TOTAL) + + FORCE_INLINE void _draw_e_value(const_float_t value, const uint16_t x, const uint16_t y) { + const uint8_t scale = value >= 100000.0f ? 10 : 1; // show cm after 99,999mm + + if (!ui.did_first_redraw) { + // Extra spaces so we don't have to clear the 'Y' label separately + dwin_string.set("E "); + DWIN_Draw_String(true, font16x32, Color_IconBlue, Color_Bg_Black, x + (4 * 14 / 2) - 7, y + 2, S(dwin_string.string())); + } + + dwin_string.set(ui16tostr5rj(value / scale)); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + 32, S(dwin_string.string())); + + // Extra spaces so we don't have to clear out the Y value separately + DWIN_Draw_String(true, font14x28, Color_IconBlue, Color_Bg_Black, x + (5 * 14), y + 32, S(scale == 1 ? "mm " : "cm ")); + } + +#endif + +// +// Fan Icon and Percentage +// +FORCE_INLINE void _draw_fan_status(const uint16_t x, const uint16_t y) { + const uint16_t fanx = (4 * STATUS_CHR_WIDTH - STATUS_FAN_WIDTH) / 2; + const uint8_t fan_pct = thermalManager.scaledFanSpeedPercent(0); + const bool fan_on = !!fan_pct; + if (fan_on) { + DWIN_ICON_Animation(0, fan_on, ICON, ICON_Fan0, ICON_Fan3, x + fanx, y, 25); + dwin_string.set(i8tostr3rj(fan_pct)); + dwin_string.add('%'); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + STATUS_FAN_HEIGHT, S(dwin_string.string())); + } + else { + DWIN_ICON_Show(ICON, ICON_Fan0, x + fanx, y); + dwin_string.set(PSTR(" ")); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + STATUS_FAN_HEIGHT, S(dwin_string.string())); + } +} + +#if HOTENDS > 2 + #define HOTEND_STATS 3 +#elif HOTENDS > 1 + #define HOTEND_STATS 2 +#elif HAS_HOTEND + #define HOTEND_STATS 1 +#endif + +/** + * Draw a single heater icon with current and target temperature, at the given XY + */ +FORCE_INLINE void _draw_heater_status(const heater_id_t heater, const uint16_t x, const uint16_t y) { + + #if HAS_HOTEND + static celsius_t old_temp[HOTEND_STATS] = ARRAY_N_1(HOTEND_STATS, 500), + old_target[HOTEND_STATS] = ARRAY_N_1(HOTEND_STATS, 500); + static bool old_on[HOTEND_STATS] = ARRAY_N_1(HOTEND_STATS, false); + #endif + + #if HAS_HEATED_BED + static celsius_t old_bed_temp = 500, old_bed_target = 500; + static bool old_bed_on = false; + #endif + + #if HAS_HOTEND && HAS_HEATED_BED + const bool isBed = heater < 0; + const float tc = (isBed ? thermalManager.degBed() : thermalManager.degHotend(heater)), + tt = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater)); + const uint8_t ta = isBed ? thermalManager.isHeatingBed() : thermalManager.isHeatingHotend(heater); + const bool c_draw = tc != (isBed ? old_bed_temp : old_temp[heater]), + t_draw = tt != (isBed ? old_bed_target : old_target[heater]), + i_draw = ta != (isBed ? old_bed_on : old_on[heater]); + if (isBed) { old_bed_temp = tc; old_bed_target = tt; old_bed_on = ta; } + else { old_temp[heater] = tc; old_target[heater] = tt; old_on[heater] = ta; } + #elif HAS_HOTEND + constexpr bool isBed = false; + const float tc = thermalManager.degHotend(heater), tt = thermalManager.degTargetHotend(heater); + const uint8_t ta = thermalManager.isHeatingHotend(heater); + const bool c_draw = tc != old_bed_temp, t_draw = tt != old_bed_target, i_draw = ta != old_bed_on; + old_temp[heater] = tc; old_target[heater] = tt; old_on[heater] = ta; + #elif HAS_HEATED_BED + constexpr bool isBed = true; + const float tc = thermalManager.degBed(), tt = thermalManager.degTargetBed(); + const uint8_t ta = thermalManager.isHeatingBed(); + const bool c_draw = tc != old_temp[heater], t_draw = tt != old_target[heater], i_draw = ta != old_on[heater]; + old_bed_temp = tc; old_bed_target = tt; old_bed_on = ta; + #endif + + if (!ui.did_first_redraw || t_draw) { + dwin_string.set(i16tostr3rj(tt + 0.5)); + dwin_string.add(LCD_STR_DEGREE); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y, S(dwin_string.string())); + } + + if (!ui.did_first_redraw || i_draw) + DWIN_ICON_Show(ICON, (isBed ? ICON_BedOff : ICON_HotendOff) + ta, x, y + STATUS_CHR_HEIGHT + 2); + + if (!ui.did_first_redraw || c_draw) { + dwin_string.set(i16tostr3rj(tc + 0.5)); + dwin_string.add(LCD_STR_DEGREE); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + 70, S(dwin_string.string())); + } +} + +/** + * Draw the current "feed rate" percentage preceded by the >> character + */ +FORCE_INLINE void _draw_feedrate_status(const char *value, uint16_t x, uint16_t y) { + if (!ui.did_first_redraw) { + dwin_string.set(LCD_STR_FEEDRATE); + DWIN_Draw_String(true, font14x28, Color_IconBlue, Color_Bg_Black, x, y, S(dwin_string.string())); + } + + dwin_string.set(value); + dwin_string.add(PSTR("%")); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x + 14, y, S(dwin_string.string())); +} + +/** + * Draw the MarlinUI Status Screen for Ender 3 V2 + */ +void MarlinUI::draw_status_screen() { + const bool blink = get_blink(); + + // Draw elements that never change + if (!ui.did_first_redraw) { + // Logo/Status Icon + #define STATUS_LOGO_WIDTH 128 + #define STATUS_LOGO_HEIGHT 40 + DWIN_ICON_Show(ICON, ICON_LOGO_Marlin, (LCD_PIXEL_WIDTH - (STATUS_LOGO_WIDTH)) / 2, ((STATUS_HEATERS_Y - 4) - (STATUS_LOGO_HEIGHT)) / 2); + + // Draw a frame around the x/y/z values + #if ENABLED(DWIN_MARLINUI_PORTRAIT) + DWIN_Draw_Rectangle(0, Select_Color, 0, 193, LCD_PIXEL_WIDTH, 260); + #else + //DWIN_Draw_Rectangle(0, Select_Color, LCD_PIXEL_WIDTH - 106, 50, LCD_PIXEL_WIDTH - 1, 230); + #endif + } + + uint16_t hx = STATUS_HEATERS_X; + #if HAS_HOTEND + _draw_heater_status(H_E0, hx, STATUS_HEATERS_Y); + hx += STATUS_HEATERS_XSPACE; + #endif + #if HAS_MULTI_HOTEND + _draw_heater_status(H_E1, hx, STATUS_HEATERS_Y); + hx += STATUS_HEATERS_XSPACE; + #endif + #if HAS_HEATED_BED + _draw_heater_status(H_BED, hx, STATUS_HEATERS_Y); + #endif + + #if HAS_FAN + // Fan display, pinned to the right side + #if ENABLED(DWIN_MARLINUI_PORTRAIT) + _draw_fan_status(LCD_PIXEL_WIDTH - STATUS_CHR_WIDTH * 4, STATUS_FAN_Y); + #else + _draw_fan_status(212, STATUS_FAN_Y); + #endif + #endif + + // Axis values + const xyz_pos_t lpos = current_position.asLogical(); + const bool show_e_total = TERN0(LCD_SHOW_E_TOTAL, printingIsActive()); UNUSED(show_e_total); + #if ENABLED(DWIN_MARLINUI_PORTRAIT) + constexpr int16_t cpy = 195; + if (show_e_total) { + TERN_(LCD_SHOW_E_TOTAL, _draw_e_value(e_move_accumulator, 6, cpy)); + } + else { + _draw_axis_value(X_AXIS, ftostr4sign(lpos.x), blink, 6, cpy); + TERN_(HAS_Y_AXIS, _draw_axis_value(Y_AXIS, ftostr4sign(lpos.y), blink, 95, cpy)); + } + TERN_(HAS_Z_AXIS, _draw_axis_value(Z_AXIS, ftostr52sp(lpos.z), blink, 165, cpy)); + #else + constexpr int16_t cpx = LCD_PIXEL_WIDTH - 104; + _draw_axis_value(X_AXIS, ftostr52sp(lpos.x), blink, cpx, STATUS_HEATERS_Y); + TERN_(HAS_Y_AXIS, _draw_axis_value(Y_AXIS, ftostr52sp(lpos.y), blink, cpx, STATUS_HEATERS_Y + 59)); + TERN_(HAS_Z_AXIS, _draw_axis_value(Z_AXIS, ftostr52sp(lpos.z), blink, cpx, STATUS_HEATERS_Y + 118)); + #endif + + // Feedrate + static uint16_t old_fp = 0; + if (!ui.did_first_redraw || old_fp != feedrate_percentage) { + old_fp = feedrate_percentage; + _draw_feedrate_status(i16tostr3rj(feedrate_percentage), + #if ENABLED(DWIN_MARLINUI_PORTRAIT) + 5, 290 + #else + 294, STATUS_HEATERS_Y + #endif + ); + } + + // + // Elapsed time + // + char buffer[14]; + duration_t time; + + #if ENABLED(DWIN_MARLINUI_PORTRAIT) + + // Portrait mode only shows one value at a time, and will rotate if ROTATE_PROGRESS_DISPLAY + dwin_string.set(); + char prefix = ' '; + #if ENABLED(SHOW_REMAINING_TIME) + if (TERN1(ROTATE_PROGRESS_DISPLAY, blink) && print_job_timer.isRunning()) { + time = get_remaining_time(); + prefix = 'R'; + } + else + #endif + time = print_job_timer.duration(); + + time.toDigital(buffer); + dwin_string.add(prefix); + dwin_string.add(buffer); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, (LCD_PIXEL_WIDTH - ((dwin_string.length() + 1) * 14)), 290, S(dwin_string.string())); + + #else + + // landscape mode shows both elapsed and remaining (if SHOW_REMAINING_TIME) + time = print_job_timer.duration(); + time.toDigital(buffer); + dwin_string.set(" "); + dwin_string.add(buffer); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, 280, 100, S(dwin_string.string())); + + #if ENABLED(LCD_SHOW_E_TOTAL) + if (show_e_total && TERN1(SHOW_REMAINING_TIME, !blink)) { // if SHOW_REMAINING_TIME is also + const uint8_t escale = e_move_accumulator >= 100000.0f ? 10 : 1; // show cm after 99,000mm + + DWIN_Draw_String(true, font14x28, Color_IconBlue, Color_Bg_Black, 249, 135, S("E")); + dwin_string.set(ui16tostr5rj(e_move_accumulator * escale)); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, 263, 135, S(dwin_string.string())); + DWIN_Draw_String(true, font14x28, Color_IconBlue, Color_Bg_Black, 333, 135, S(escale==1 ? "mm" : "cm")); + } + #endif + #if ENABLED(SHOW_REMAINING_TIME) + if (!show_e_total || blink) { + DWIN_Draw_String(true, font14x28, Color_IconBlue, Color_Bg_Black, 249, 135, S(" R ")); + time = get_remaining_time(); + time.toDigital(buffer); + dwin_string.set(buffer); + DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, 291, 135, S(dwin_string.string())); + } + #endif + #endif + + // + // Progress Bar + // + constexpr int16_t pb_margin = 5, pb_left = pb_margin, pb_height = 60, + pb_right = LCD_PIXEL_WIDTH - TERN(DWIN_MARLINUI_PORTRAIT, 0, 107) - pb_margin, + pb_bottom = TERN(DWIN_MARLINUI_PORTRAIT, 410, 230), + pb_top = pb_bottom - pb_height, + pb_width = pb_right - pb_left; + + const progress_t progress = TERN(HAS_PRINT_PROGRESS_PERMYRIAD, get_progress_permyriad, get_progress_percent)(); + + if (!ui.did_first_redraw) + DWIN_Draw_Rectangle(0, Select_Color, pb_left, pb_top, pb_right, pb_bottom); // Outline + + static uint16_t old_solid = 50; + const uint16_t pb_solid = (pb_width - 2) * (progress / (PROGRESS_SCALE)) * 0.01f; + const bool p_draw = !ui.did_first_redraw || old_solid != pb_solid; + + if (p_draw) { + //if (pb_solid) + DWIN_Draw_Rectangle(1, Select_Color, pb_left + 1, pb_top + 1, pb_left + pb_solid, pb_bottom - 1); // Fill the solid part + + //if (pb_solid < old_solid) + DWIN_Draw_Rectangle(1, Color_Bg_Black, pb_left + 1 + pb_solid, pb_top + 1, pb_right - 1, pb_bottom - 1); // Erase the rest + + #if ENABLED(SHOW_SD_PERCENT) + dwin_string.set(TERN(PRINT_PROGRESS_SHOW_DECIMALS, permyriadtostr4(progress), ui8tostr3rj(progress / (PROGRESS_SCALE)))); + dwin_string.add(PSTR("%")); + DWIN_Draw_String( + false, font16x32, Percent_Color, Color_Bg_Black, + pb_left + (pb_width - dwin_string.length() * 16) / 2, + pb_top + (pb_height - 32) / 2, + S(dwin_string.string()) + ); + #endif + + old_solid = pb_solid; + } + + // + // Status Message + // + draw_status_message(blink); + + ui.did_first_redraw = true; +} + +#endif // IS_DWIN_MARLINUI diff --git a/Marlin/src/lcd/extui/dgus/dgus_extui.cpp b/Marlin/src/lcd/extui/dgus/dgus_extui.cpp index 55546caaf157..589821e23a64 100644 --- a/Marlin/src/lcd/extui/dgus/dgus_extui.cpp +++ b/Marlin/src/lcd/extui/dgus/dgus_extui.cpp @@ -64,7 +64,7 @@ namespace ExtUI { ScreenHandler.SetupConfirmAction(setUserConfirmed); ScreenHandler.GotoScreen(DGUSLCD_SCREEN_POPUP); } - else if (ScreenHandler.getCurrentScreen() == DGUSLCD_SCREEN_POPUP ) { + else if (ScreenHandler.getCurrentScreen() == DGUSLCD_SCREEN_POPUP) { ScreenHandler.SetupConfirmAction(nullptr); ScreenHandler.PopToOldScreen(); } diff --git a/Marlin/src/lcd/language/language_an.h b/Marlin/src/lcd/language/language_an.h index 787096994f7d..e5fc965ed1fa 100644 --- a/Marlin/src/lcd/language/language_an.h +++ b/Marlin/src/lcd/language/language_an.h @@ -106,10 +106,13 @@ namespace Language_an { PROGMEM Language_Str MSG_ACC = _UxGT("Aceleracion"); PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vel. viache min"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accel"); - PROGMEM Language_Str MSG_AMAX_A = _UxGT("Acel. max") LCD_STR_A; - PROGMEM Language_Str MSG_AMAX_B = _UxGT("Acel. max") LCD_STR_B; - PROGMEM Language_Str MSG_AMAX_C = _UxGT("Acel. max") LCD_STR_C; - PROGMEM Language_Str MSG_AMAX_E = _UxGT("Acel. max") LCD_STR_E; + PROGMEM Language_Str MSG_AMAX_A = _UxGT("Acel. max ") LCD_STR_A; + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Acel. max ") LCD_STR_B; + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Acel. max ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Acel. max ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Acel. max ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Acel. max ") LCD_STR_K; + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Acel. max ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Acel. max *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Acel. retrac."); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Acel. Viaje"); @@ -117,6 +120,9 @@ namespace Language_an { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" trangos/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" trangos/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" trangos/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" trangos/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" trangos/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" trangos/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E trangos/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* trangos/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); diff --git a/Marlin/src/lcd/language/language_bg.h b/Marlin/src/lcd/language/language_bg.h index 0d4291b8355d..37d896f60d58 100644 --- a/Marlin/src/lcd/language/language_bg.h +++ b/Marlin/src/lcd/language/language_bg.h @@ -99,9 +99,12 @@ namespace Language_bg { PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-откат"); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-travel"); PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Стъпки/mm"); - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("стъпки/mm"); - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("стъпки/mm"); - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("стъпки/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" стъпки/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E стъпки/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* стъпки/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура"); diff --git a/Marlin/src/lcd/language/language_ca.h b/Marlin/src/lcd/language/language_ca.h index f97a783d0183..19ba9acab74f 100644 --- a/Marlin/src/lcd/language/language_ca.h +++ b/Marlin/src/lcd/language/language_ca.h @@ -104,9 +104,12 @@ namespace Language_ca { PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Accel. retracc"); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Accel. Viatge"); PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passos/mm"); - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("passos/mm"); - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("passos/mm"); - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("passos/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" passos/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" passos/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" passos/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" passos/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" passos/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" passos/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("Epassos/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("*passos/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); diff --git a/Marlin/src/lcd/language/language_cz.h b/Marlin/src/lcd/language/language_cz.h index fa6a8e21a3ac..a6e97ea40ce2 100644 --- a/Marlin/src/lcd/language/language_cz.h +++ b/Marlin/src/lcd/language/language_cz.h @@ -268,33 +268,45 @@ namespace Language_cz { PROGMEM Language_Str MSG_SELECT_E = _UxGT("Vybrat *"); PROGMEM Language_Str MSG_ACC = _UxGT("Zrychl"); PROGMEM Language_Str MSG_JERK = _UxGT("Jerk"); - PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-jerk"); - PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-jerk"); - PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-jerk"); - PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Jerk"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("Max ") LCD_STR_A _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VB_JERK = _UxGT("Max ") LCD_STR_B _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VC_JERK = _UxGT("Max ") LCD_STR_C _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Max ") LCD_STR_I _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Max ") LCD_STR_J _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Max ") LCD_STR_K _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VE_JERK = _UxGT("Max E Jerk"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Odchylka spoje"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Rychlost"); - PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; - PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; - PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; - PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); + PROGMEM Language_Str MSG_VMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Rychlost"); + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Max * Rychlost"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VTrav Min"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Akcelerace"); - PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; - PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; - PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; - PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); + PROGMEM Language_Str MSG_AMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Akcel"); + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Max * Akcel"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt"); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-přejezd"); PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Kroků/mm"); - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("kroků/mm"); - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("kroků/mm"); - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("kroků/mm"); - PROGMEM Language_Str MSG_E_STEPS = _UxGT("Ekroků/mm"); - PROGMEM Language_Str MSG_EN_STEPS = _UxGT("*kroků/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" kroků/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" kroků/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" kroků/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" kroků/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" kroků/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" kroků/mm"); + PROGMEM Language_Str MSG_E_STEPS = _UxGT("E kroků/mm"); + PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* kroků/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Teplota"); PROGMEM Language_Str MSG_MOTION = _UxGT("Pohyb"); PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament"); @@ -475,9 +487,12 @@ namespace Language_cz { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Buzení motorů"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Motor %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Motor %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Motor %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Motor %"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC uložit EEPROM"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC CHYBA SPOJENÍ"); @@ -590,6 +605,9 @@ namespace Language_cz { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korekce"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Vyhlazení"); } diff --git a/Marlin/src/lcd/language/language_da.h b/Marlin/src/lcd/language/language_da.h index 95c2573ae144..ef312f1334cd 100644 --- a/Marlin/src/lcd/language/language_da.h +++ b/Marlin/src/lcd/language/language_da.h @@ -176,9 +176,12 @@ namespace Language_da { PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Strømfors."); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driv Styrke"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driv %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driv %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driv %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driv %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driv %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driv %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driv %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driv %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driv %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driv %"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Skriv"); diff --git a/Marlin/src/lcd/language/language_de.h b/Marlin/src/lcd/language/language_de.h index f06370078a4b..0fa895638b12 100644 --- a/Marlin/src/lcd/language/language_de.h +++ b/Marlin/src/lcd/language/language_de.h @@ -271,15 +271,21 @@ namespace Language_de { PROGMEM Language_Str MSG_SELECT_E = _UxGT("Auswählen *"); PROGMEM Language_Str MSG_ACC = _UxGT("Beschleunigung"); PROGMEM Language_Str MSG_JERK = _UxGT("Jerk"); - PROGMEM Language_Str MSG_VA_JERK = _UxGT("V ") LCD_STR_A _UxGT(" Jerk"); - PROGMEM Language_Str MSG_VB_JERK = _UxGT("V ") LCD_STR_B _UxGT(" Jerk"); - PROGMEM Language_Str MSG_VC_JERK = _UxGT("V ") LCD_STR_C _UxGT(" Jerk"); - PROGMEM Language_Str MSG_VE_JERK = _UxGT("V E Jerk"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("Max ") LCD_STR_A _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VB_JERK = _UxGT("Max ") LCD_STR_B _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VC_JERK = _UxGT("Max ") LCD_STR_C _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Max ") LCD_STR_I _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Max ") LCD_STR_J _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Max ") LCD_STR_K _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VE_JERK = _UxGT("Max E Jerk"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Geschwindigkeit"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("V max ") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("V max ") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("V max ") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("V max ") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("V max ") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("V max ") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("V max ") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("V max *"); PROGMEM Language_Str MSG_VMIN = _UxGT("V min "); @@ -289,6 +295,9 @@ namespace Language_de { PROGMEM Language_Str MSG_AMAX_A = _UxGT("A max ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("A max ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("A max ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("A max ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("A max ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("A max ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("A max ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("A max *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A Einzug"); @@ -299,6 +308,9 @@ namespace Language_de { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" Steps/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" Steps/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" Steps/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" Steps/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" Steps/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" Steps/mm"); PROGMEM Language_Str MSG_E_STEPS = LCD_STR_E _UxGT(" Steps/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* Steps/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatur"); @@ -499,9 +511,12 @@ namespace Language_de { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Netzteil"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorleistung"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Treiber %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Treiber %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Treiber %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Treiber %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Treiber %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Treiber %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Treiber %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Treiber %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Treiber %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Treiber %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC Verbindungsfehler"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Werte speichern"); @@ -618,6 +633,9 @@ namespace Language_de { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korrektur"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Glätten"); PROGMEM Language_Str MSG_LEVEL_X_AXIS = _UxGT("X Achse leveln"); diff --git a/Marlin/src/lcd/language/language_el.h b/Marlin/src/lcd/language/language_el.h index b69b4695d3be..824b90a232d4 100644 --- a/Marlin/src/lcd/language/language_el.h +++ b/Marlin/src/lcd/language/language_el.h @@ -108,10 +108,16 @@ namespace Language_el { PROGMEM Language_Str MSG_VA_JERK = _UxGT("Vαντίδραση ") LCD_STR_A; PROGMEM Language_Str MSG_VB_JERK = _UxGT("Vαντίδραση ") LCD_STR_B; PROGMEM Language_Str MSG_VC_JERK = _UxGT("Vαντίδραση ") LCD_STR_C; + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Vαντίδραση ") LCD_STR_I; + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Vαντίδραση ") LCD_STR_J; + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Vαντίδραση ") LCD_STR_K; PROGMEM Language_Str MSG_VE_JERK = _UxGT("Vαντίδραση E"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("V Μέγιστο") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("V Μέγιστο") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("V Μέγιστο") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("V Μέγιστο") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("V Μέγιστο") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("V Μέγιστο") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("V Μέγιστο") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("V Μέγιστο *"); PROGMEM Language_Str MSG_VMIN = _UxGT("V Ελάχιστο"); @@ -120,6 +126,9 @@ namespace Language_el { PROGMEM Language_Str MSG_AMAX_A = _UxGT("Aμεγ ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Aμεγ ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Aμεγ ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Aμεγ ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Aμεγ ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Aμεγ ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Aμεγ ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Aμεγ *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Α-ανάσυρση"); @@ -128,6 +137,9 @@ namespace Language_el { PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bήματα ") LCD_STR_A _UxGT(" ανά μμ"); PROGMEM Language_Str MSG_B_STEPS = _UxGT("Bήματα ") LCD_STR_B _UxGT(" ανά μμ"); PROGMEM Language_Str MSG_C_STEPS = _UxGT("Bήματα ") LCD_STR_C _UxGT(" ανά μμ"); + PROGMEM Language_Str MSG_I_STEPS = _UxGT("Bήματα ") LCD_STR_I _UxGT(" ανά μμ"); + PROGMEM Language_Str MSG_J_STEPS = _UxGT("Bήματα ") LCD_STR_J _UxGT(" ανά μμ"); + PROGMEM Language_Str MSG_K_STEPS = _UxGT("Bήματα ") LCD_STR_K _UxGT(" ανά μμ"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("Bήματα Ε ανά μμ"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("Bήματα * ανά μμ"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Θερμοκρασία"); diff --git a/Marlin/src/lcd/language/language_el_gr.h b/Marlin/src/lcd/language/language_el_gr.h index 208d7c2363be..e5c169446b6b 100644 --- a/Marlin/src/lcd/language/language_el_gr.h +++ b/Marlin/src/lcd/language/language_el_gr.h @@ -110,10 +110,16 @@ namespace Language_el_gr { PROGMEM Language_Str MSG_VA_JERK = _UxGT("Vαντίδραση ") LCD_STR_A; PROGMEM Language_Str MSG_VB_JERK = _UxGT("Vαντίδραση ") LCD_STR_B; PROGMEM Language_Str MSG_VC_JERK = _UxGT("Vαντίδραση ") LCD_STR_C; + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Vαντίδραση ") LCD_STR_I; + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Vαντίδραση ") LCD_STR_J; + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Vαντίδραση ") LCD_STR_K; PROGMEM Language_Str MSG_VE_JERK = _UxGT("Vαντίδραση E"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vμεγ ") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vμεγ ") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vμεγ ") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Vμεγ ") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Vμεγ ") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Vμεγ ") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vμεγ ") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vμεγ *"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vελαχ"); @@ -122,6 +128,9 @@ namespace Language_el_gr { PROGMEM Language_Str MSG_AMAX_A = _UxGT("Aμεγ ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Aμεγ ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Aμεγ ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Aμεγ ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Aμεγ ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Aμεγ ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Aμεγ ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Aμεγ *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Α-ανάσυρση"); @@ -130,6 +139,9 @@ namespace Language_el_gr { PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bήματα ") LCD_STR_A _UxGT(" ανά μμ"); PROGMEM Language_Str MSG_B_STEPS = _UxGT("Bήματα ") LCD_STR_B _UxGT(" ανά μμ"); PROGMEM Language_Str MSG_C_STEPS = _UxGT("Bήματα ") LCD_STR_C _UxGT(" ανά μμ"); + PROGMEM Language_Str MSG_I_STEPS = _UxGT("Bήματα ") LCD_STR_I _UxGT(" ανά μμ"); + PROGMEM Language_Str MSG_J_STEPS = _UxGT("Bήματα ") LCD_STR_J _UxGT(" ανά μμ"); + PROGMEM Language_Str MSG_K_STEPS = _UxGT("Bήματα ") LCD_STR_K _UxGT(" ανά μμ"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("Bήματα Ε ανά μμ"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("Bήματα * ανά μμ"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Θερμοκρασία"); diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index cd204eef5915..ede69046275e 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -139,8 +139,8 @@ namespace Language_en { PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Bed Leveling"); PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Level Bed"); PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Bed Tramming"); - PROGMEM Language_Str MSG_BED_TRAMMING_RAISE = _UxGT("Raise Bed Until Probe Triggered"); - PROGMEM Language_Str MSG_BED_TRAMMING_IN_RANGE = _UxGT("All Corners Within Tolerance. Level Bed"); + PROGMEM Language_Str MSG_BED_TRAMMING_RAISE = _UxGT("Adjust bed until the probe triggers."); + PROGMEM Language_Str MSG_BED_TRAMMING_IN_RANGE = _UxGT("Corners within tolerance. Bed trammed."); PROGMEM Language_Str MSG_BED_TRAMMING_GOOD_POINTS = _UxGT("Good Points: "); PROGMEM Language_Str MSG_BED_TRAMMING_LAST_Z = _UxGT("Last Z: "); PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Next Corner"); @@ -273,8 +273,8 @@ namespace Language_en { PROGMEM Language_Str MSG_MOVE_I = _UxGT("Move ") LCD_STR_I; PROGMEM Language_Str MSG_MOVE_J = _UxGT("Move ") LCD_STR_J; PROGMEM Language_Str MSG_MOVE_K = _UxGT("Move ") LCD_STR_K; - PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extruder"); - PROGMEM Language_Str MSG_MOVE_EN = _UxGT("Extruder *"); + PROGMEM Language_Str MSG_MOVE_E = _UxGT("Move Extruder"); + PROGMEM Language_Str MSG_MOVE_EN = _UxGT("Move E*"); PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend too cold"); PROGMEM Language_Str MSG_MOVE_N_MM = _UxGT("Move %smm"); PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Move 0.1mm"); @@ -318,6 +318,7 @@ namespace Language_en { PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Off"); PROGMEM Language_Str MSG_PID_AUTOTUNE = _UxGT("PID Autotune"); PROGMEM Language_Str MSG_PID_AUTOTUNE_E = _UxGT("PID Autotune *"); + PROGMEM Language_Str MSG_PID_CYCLE = _UxGT("PID Cycle"); PROGMEM Language_Str MSG_PID_AUTOTUNE_DONE = _UxGT("PID tuning done"); PROGMEM Language_Str MSG_PID_BAD_EXTRUDER_NUM = _UxGT("Autotune failed. Bad extruder."); PROGMEM Language_Str MSG_PID_TEMP_TOO_HIGH = _UxGT("Autotune failed. Temperature too high."); @@ -336,38 +337,38 @@ namespace Language_en { PROGMEM Language_Str MSG_SELECT_E = _UxGT("Select *"); PROGMEM Language_Str MSG_ACC = _UxGT("Accel"); PROGMEM Language_Str MSG_JERK = _UxGT("Jerk"); - PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VI_JERK = _UxGT("V") LCD_STR_I _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Jerk"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("Max ") LCD_STR_A _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VB_JERK = _UxGT("Max ") LCD_STR_B _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VC_JERK = _UxGT("Max ") LCD_STR_C _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Max ") LCD_STR_I _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Max ") LCD_STR_J _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Max ") LCD_STR_K _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VE_JERK = _UxGT("Max E Jerk"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocity"); - PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; - PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; - PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; - PROGMEM Language_Str MSG_VMAX_I = _UxGT("Vmax ") LCD_STR_I; - PROGMEM Language_Str MSG_VMAX_J = _UxGT("Vmax ") LCD_STR_J; - PROGMEM Language_Str MSG_VMAX_K = _UxGT("Vmax ") LCD_STR_K; - PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); - PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); - PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VTrav Min"); + PROGMEM Language_Str MSG_VMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Max * Vel"); + PROGMEM Language_Str MSG_VMIN = _UxGT("Min Velocity"); + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Min Travel Vel"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Acceleration"); - PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; - PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; - PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; - PROGMEM Language_Str MSG_AMAX_I = _UxGT("Amax ") LCD_STR_I; - PROGMEM Language_Str MSG_AMAX_J = _UxGT("Amax ") LCD_STR_J; - PROGMEM Language_Str MSG_AMAX_K = _UxGT("Amax ") LCD_STR_K; - PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); - PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-Retract"); - PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-Travel"); - PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("Frequency max"); - PROGMEM Language_Str MSG_XY_FREQUENCY_FEEDRATE = _UxGT("Feed min"); + PROGMEM Language_Str MSG_AMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Max * Accel"); + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Retract Accel"); + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Travel Accel"); + PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("XY Freq Limit"); + PROGMEM Language_Str MSG_XY_FREQUENCY_FEEDRATE = _UxGT("Min FR Factor"); PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Steps/mm"); PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" Steps/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" Steps/mm"); @@ -423,7 +424,7 @@ namespace Language_en { PROGMEM Language_Str MSG_PAUSING = _UxGT("Pausing..."); PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pause Print"); PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Resume Print"); - PROGMEM Language_Str MSG_HOST_START_PRINT = _UxGT("Host Start"); + PROGMEM Language_Str MSG_HOST_START_PRINT = _UxGT("Start Host Print"); PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Stop Print"); PROGMEM Language_Str MSG_END_LOOPS = _UxGT("End Repeat Loops"); PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("Printing Object"); @@ -588,12 +589,12 @@ namespace Language_en { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Drive Strength"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_I = AXIS4_STR _UxGT(" Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_J = AXIS5_STR _UxGT(" Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_K = AXIS6_STR _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driver %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC CONNECTION ERROR"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write"); diff --git a/Marlin/src/lcd/language/language_es.h b/Marlin/src/lcd/language/language_es.h index 8fdf0bd47ed2..46e4e262e76c 100644 --- a/Marlin/src/lcd/language/language_es.h +++ b/Marlin/src/lcd/language/language_es.h @@ -105,7 +105,7 @@ namespace Language_es { PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover ejes"); PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Nivelando Cama"); PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Nivelar Cama"); - PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Recorrido asistido"); + PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Recorrido Cama"); PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Siguente Esquina"); PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Editor Mallado"); PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Editar Mallado"); @@ -269,23 +269,32 @@ namespace Language_es { PROGMEM Language_Str MSG_SELECT_E = _UxGT("Seleccionar *"); PROGMEM Language_Str MSG_ACC = _UxGT("Aceleración"); PROGMEM Language_Str MSG_JERK = _UxGT("Jerk"); - PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Jerk"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("Max ") LCD_STR_A _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VB_JERK = _UxGT("Max ") LCD_STR_B _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VC_JERK = _UxGT("Max ") LCD_STR_C _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Max ") LCD_STR_I _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Max ") LCD_STR_J _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Max ") LCD_STR_K _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VE_JERK = _UxGT("Max E Jerk"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Desvi. Unión"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocidad"); - PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; - PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; - PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; - PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); + PROGMEM Language_Str MSG_VMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Max * Vel"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vel. viaje min"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Acceleración"); PROGMEM Language_Str MSG_AMAX_A = _UxGT("Acel. max") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Acel. max") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Acel. max") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Acel. max") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Acel. max") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Acel. max") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Acel. max") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Acel. max *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Acel. retrac."); @@ -294,6 +303,9 @@ namespace Language_es { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pasos/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pasos/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pasos/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" pasos/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" pasos/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" pasos/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pasos/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* pasos/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); @@ -473,9 +485,12 @@ namespace Language_es { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp. Máxima"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("F. Aliment."); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Fuerza de empuje"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driver %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERROR CONEX. TMC"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escribe DAC EEPROM"); @@ -575,6 +590,9 @@ namespace Language_es { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Corrección"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Suavizado"); diff --git a/Marlin/src/lcd/language/language_eu.h b/Marlin/src/lcd/language/language_eu.h index 530742d6d3a2..30cc4931d80d 100644 --- a/Marlin/src/lcd/language/language_eu.h +++ b/Marlin/src/lcd/language/language_eu.h @@ -167,6 +167,9 @@ namespace Language_eu { PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-astindua"); PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-astindua"); PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-astindua"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("V") LCD_STR_I _UxGT("-astindua"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-astindua"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-astindua"); PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-astindua"); PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VBidaia min"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt"); @@ -175,6 +178,9 @@ namespace Language_eu { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pausoak/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pausoak/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pausoak/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" pausoak/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" pausoak/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" pausoak/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pausoak/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* pausoak/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Tenperatura"); @@ -294,9 +300,12 @@ namespace Language_eu { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Tenp. Maximoa"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Elikadura-iturria"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driver-aren potentzia"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driver %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Idatzi DAC EEPROM"); PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("HARIZPIA ALDATU"); diff --git a/Marlin/src/lcd/language/language_fr.h b/Marlin/src/lcd/language/language_fr.h index 6032937e0f18..e0f13356ba17 100644 --- a/Marlin/src/lcd/language/language_fr.h +++ b/Marlin/src/lcd/language/language_fr.h @@ -110,7 +110,7 @@ namespace Language_fr { PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Déplacer un axe"); PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Régler Niv. lit"); PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Niveau du lit"); - PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Assistant Molettes"); + PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Niveau des coins"); PROGMEM Language_Str MSG_BED_TRAMMING_RAISE = _UxGT("Relever le coin jusqu'à la sonde"); PROGMEM Language_Str MSG_BED_TRAMMING_IN_RANGE = _UxGT("Coins dans la tolérance. Niveau lit "); PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Coin suivant"); @@ -521,12 +521,12 @@ namespace Language_fr { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp Max"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Alim."); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Puiss. moteur "); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("Driver X %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Driver Y %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Driver Z %"); - PROGMEM Language_Str MSG_DAC_PERCENT_I = _UxGT("Driver " AXIS4_STR " %"); - PROGMEM Language_Str MSG_DAC_PERCENT_J = _UxGT("Driver " AXIS5_STR " %"); - PROGMEM Language_Str MSG_DAC_PERCENT_K = _UxGT("Driver " AXIS6_STR " %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = _UxGT("Driver ") LCD_STR_A _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = _UxGT("Driver ") LCD_STR_B _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = _UxGT("Driver ") LCD_STR_C _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = _UxGT("Driver ") LCD_STR_I _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = _UxGT("Driver ") LCD_STR_J _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = _UxGT("Driver ") LCD_STR_K _UxGT(" %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("Driver E %"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM sauv."); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERREUR CONNEXION TMC"); diff --git a/Marlin/src/lcd/language/language_gl.h b/Marlin/src/lcd/language/language_gl.h index 8defd2b01f37..f657d5e34d7f 100644 --- a/Marlin/src/lcd/language/language_gl.h +++ b/Marlin/src/lcd/language/language_gl.h @@ -271,25 +271,34 @@ namespace Language_gl { PROGMEM Language_Str MSG_SELECT_E = _UxGT("Escolla *"); PROGMEM Language_Str MSG_ACC = _UxGT("Acel"); PROGMEM Language_Str MSG_JERK = _UxGT("Jerk"); - PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Jerk"); - PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Jerk"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("Max ") LCD_STR_A _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VB_JERK = _UxGT("Max ") LCD_STR_B _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VC_JERK = _UxGT("Max ") LCD_STR_C _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Max ") LCD_STR_I _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Max ") LCD_STR_J _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Max ") LCD_STR_K _UxGT(" Jerk"); + PROGMEM Language_Str MSG_VE_JERK = _UxGT("Max E Jerk"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Desvío Unión"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocidade"); - PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; - PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; - PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; - PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); + PROGMEM Language_Str MSG_VMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Vel"); + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Max * Vel"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("V-viaxe min"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Aceleración"); - PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax") LCD_STR_A; - PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax") LCD_STR_B; - PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax") LCD_STR_C; - PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax") LCD_STR_E; - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); + PROGMEM Language_Str MSG_AMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Max * Accel"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrac."); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-viaxe"); PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("Frecuencia max"); @@ -298,6 +307,9 @@ namespace Language_gl { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pasos/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pasos/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pasos/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" pasos/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" pasos/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" pasos/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pasos/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* pasos/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); @@ -490,9 +502,12 @@ namespace Language_gl { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp Máx"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fonte Alimentación"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Forza do Motor"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driver %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERRO CONEX. TMC"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escribe DAC EEPROM"); @@ -593,6 +608,9 @@ namespace Language_gl { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Corrección"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Suavizado"); diff --git a/Marlin/src/lcd/language/language_hu.h b/Marlin/src/lcd/language/language_hu.h index 6fb41f90ff2d..444c29560b14 100644 --- a/Marlin/src/lcd/language/language_hu.h +++ b/Marlin/src/lcd/language/language_hu.h @@ -132,7 +132,7 @@ namespace Language_hu { PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Tengelyek mozgatása"); PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Ágy szintezés"); PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Ágy szintezése"); - PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Elektromos segéd"); + PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Sarok szint"); PROGMEM Language_Str MSG_BED_TRAMMING_RAISE = _UxGT("Ágy emelése a szonda váltásig"); PROGMEM Language_Str MSG_BED_TRAMMING_IN_RANGE = _UxGT("Minden sarok tolerancián belül. Szint jó."); PROGMEM Language_Str MSG_BED_TRAMMING_GOOD_POINTS = _UxGT("Jó pontok: "); @@ -582,12 +582,12 @@ namespace Language_hu { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max höfok"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Meghajtási erö"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X meghajtó %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y meghajtó %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z meghajtó %"); - PROGMEM Language_Str MSG_DAC_PERCENT_I = AXIS4_STR _UxGT(" Meghajtó %"); - PROGMEM Language_Str MSG_DAC_PERCENT_J = AXIS5_STR _UxGT(" Meghajtó %"); - PROGMEM Language_Str MSG_DAC_PERCENT_K = AXIS6_STR _UxGT(" Meghajtó %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Meghajtó %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Meghajtó %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Meghajtó %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Meghajtó %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Meghajtó %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Meghajtó %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E meghajtó %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC CSATLAKOZÁSI HIBA"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM írása"); diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h index 32bc7ff7c708..4ae85e7bbe16 100644 --- a/Marlin/src/lcd/language/language_it.h +++ b/Marlin/src/lcd/language/language_it.h @@ -346,14 +346,14 @@ namespace Language_it { PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VTrav min"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accelerazione"); - PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; - PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; - PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; - PROGMEM Language_Str MSG_AMAX_I = _UxGT("Amax ") LCD_STR_I; - PROGMEM Language_Str MSG_AMAX_J = _UxGT("Amax ") LCD_STR_J; - PROGMEM Language_Str MSG_AMAX_K = _UxGT("Amax ") LCD_STR_K; - PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); + PROGMEM Language_Str MSG_AMAX_A = _UxGT("Max ") LCD_STR_A _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Max ") LCD_STR_B _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Max ") LCD_STR_C _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Max ") LCD_STR_I _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Max ") LCD_STR_J _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Max ") LCD_STR_K _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Max ") LCD_STR_E _UxGT(" Accel"); + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Max * Accel"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-Ritrazione"); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-Spostamento"); PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("Frequenza max"); @@ -577,12 +577,12 @@ namespace Language_it { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp max"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Alimentatore"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Potenza Drive"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("Driver X %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Driver Y %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Driver Z %"); - PROGMEM Language_Str MSG_DAC_PERCENT_I = _UxGT("Driver ") AXIS4_STR _UxGT(" %"); - PROGMEM Language_Str MSG_DAC_PERCENT_J = _UxGT("Driver ") AXIS5_STR _UxGT(" %"); - PROGMEM Language_Str MSG_DAC_PERCENT_K = _UxGT("Driver ") AXIS6_STR _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = _UxGT("Driver ") LCD_STR_A _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = _UxGT("Driver ") LCD_STR_B _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = _UxGT("Driver ") LCD_STR_C _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = _UxGT("Driver ") LCD_STR_I _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = _UxGT("Driver ") LCD_STR_J _UxGT(" %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = _UxGT("Driver ") LCD_STR_K _UxGT(" %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("Driver E %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERR.CONNESSIONE TMC"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Scrivi DAC EEPROM"); @@ -701,6 +701,9 @@ namespace Language_it { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correzione"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Appianamento"); diff --git a/Marlin/src/lcd/language/language_jp_kana.h b/Marlin/src/lcd/language/language_jp_kana.h index 61740e3b40eb..c0fe2451b0af 100644 --- a/Marlin/src/lcd/language/language_jp_kana.h +++ b/Marlin/src/lcd/language/language_jp_kana.h @@ -119,14 +119,20 @@ namespace Language_jp_kana { PROGMEM Language_Str MSG_VA_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_A; // "Va-jerk" PROGMEM Language_Str MSG_VB_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_B; // "Vb-jerk" PROGMEM Language_Str MSG_VC_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_C; // "Vc-jerk" + PROGMEM Language_Str MSG_VI_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_I; // "Va-jerk" + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_J; // "Vb-jerk" + PROGMEM Language_Str MSG_VK_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_K; // "Vc-jerk" PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("ステップ/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("ステップ/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("ステップ/mm"); PROGMEM Language_Str MSG_VE_JERK = _UxGT("エクストルーダー ヤクド"); // "Ve-jerk" PROGMEM Language_Str MSG_VMAX_A = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax A" - PROGMEM Language_Str MSG_VMAX_B = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax B" - PROGMEM Language_Str MSG_VMAX_C = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax C" - PROGMEM Language_Str MSG_VMAX_E = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax E" + PROGMEM Language_Str MSG_VMAX_B = _UxGT("サイダイオクリソクド ") LCD_STR_B; // "Vmax B" + PROGMEM Language_Str MSG_VMAX_C = _UxGT("サイダイオクリソクド ") LCD_STR_C; // "Vmax C" + PROGMEM Language_Str MSG_VMAX_I = _UxGT("サイダイオクリソクド ") LCD_STR_I; // "Vmax I" + PROGMEM Language_Str MSG_VMAX_J = _UxGT("サイダイオクリソクド ") LCD_STR_J; // "Vmax J" + PROGMEM Language_Str MSG_VMAX_K = _UxGT("サイダイオクリソクド ") LCD_STR_K; // "Vmax K" + PROGMEM Language_Str MSG_VMAX_E = _UxGT("サイダイオクリソクド ") LCD_STR_E; // "Vmax E" PROGMEM Language_Str MSG_VMAX_EN = _UxGT("サイダイオクリソクド *"); // "Vmax E1" PROGMEM Language_Str MSG_VMIN = _UxGT("サイショウオクリソクド"); // "Vmin" PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("サイショウイドウソクド"); // "VTrav min" @@ -214,9 +220,12 @@ namespace Language_jp_kana { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("セッテイサイコウオン"); // "Max Temp" PROGMEM Language_Str MSG_INFO_PSU = _UxGT("デンゲンシュベツ"); // "Power Supply" PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("モータークドウリョク"); // "Drive Strength" - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X DACシュツリョク %"); // "X Driver %" - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y DACシュツリョク %"); // "Y Driver %" - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z DACシュツリョク %"); // "Z Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" DACシュツリョク %"); // "X Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" DACシュツリョク %"); // "Y Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" DACシュツリョク %"); // "Z Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" DACシュツリョク %"); // "I Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" DACシュツリョク %"); // "J Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" DACシュツリョク %"); // "K Driver %" PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E DACシュツリョク %"); // "E Driver %" PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("EEPROMヘホゾン"); // "Store memory" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("イチジテイシ"); diff --git a/Marlin/src/lcd/language/language_pl.h b/Marlin/src/lcd/language/language_pl.h index e467178f6a98..b55777717d37 100644 --- a/Marlin/src/lcd/language/language_pl.h +++ b/Marlin/src/lcd/language/language_pl.h @@ -327,22 +327,16 @@ namespace Language_pl { PROGMEM Language_Str MSG_VA_JERK = _UxGT("Zryw V") LCD_STR_A; PROGMEM Language_Str MSG_VB_JERK = _UxGT("Zryw V") LCD_STR_B; PROGMEM Language_Str MSG_VC_JERK = _UxGT("Zryw V") LCD_STR_C; + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Zryw V") LCD_STR_I; + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Zryw V") LCD_STR_J; + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Zryw V") LCD_STR_K; PROGMEM Language_Str MSG_VE_JERK = _UxGT("Zryw Ve"); //PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Prędkość (V)"); - //PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; - //PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; - //PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; - //PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; - //PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); - //PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vskok min"); PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Przyspieszenie (A)"); - //PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; - //PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; - //PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; - //PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; - //PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-wycofanie"); PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-przesuń."); PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("Częstotliwość max"); @@ -351,6 +345,9 @@ namespace Language_pl { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" kroki/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" kroki/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" kroki/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" kroki/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" kroki/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" kroki/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E kroki/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* kroki/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); @@ -561,9 +558,12 @@ namespace Language_pl { //PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Zasilacz"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Siła silnika"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Siła %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Siła %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Siła %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Siła %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Siła %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Siła %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Siła %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Siła %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Siła %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Siła %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC BŁĄD POŁĄCZENIA"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Zapisz DAC EEPROM"); @@ -678,9 +678,6 @@ namespace Language_pl { //PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Reset"); //PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" in:"); //PROGMEM Language_Str MSG_BACKLASH = _UxGT("Backlash"); - //PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; - //PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; - //PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korekcja"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Wygładzanie"); diff --git a/Marlin/src/lcd/language/language_pt.h b/Marlin/src/lcd/language/language_pt.h index 4bec74558e80..630f38e2d930 100644 --- a/Marlin/src/lcd/language/language_pt.h +++ b/Marlin/src/lcd/language/language_pt.h @@ -105,6 +105,9 @@ namespace Language_pt { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" passo/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" passo/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" passo/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" passo/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" passo/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" passo/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E passo/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* passo/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); diff --git a/Marlin/src/lcd/language/language_pt_br.h b/Marlin/src/lcd/language/language_pt_br.h index 12904aa7ea79..4b52ee97b806 100644 --- a/Marlin/src/lcd/language/language_pt_br.h +++ b/Marlin/src/lcd/language/language_pt_br.h @@ -244,6 +244,9 @@ namespace Language_pt_br { PROGMEM Language_Str MSG_VA_JERK = _UxGT("arrancada V") LCD_STR_A; PROGMEM Language_Str MSG_VB_JERK = _UxGT("arrancada V") LCD_STR_B; PROGMEM Language_Str MSG_VC_JERK = _UxGT("arrancada V") LCD_STR_C; + PROGMEM Language_Str MSG_VI_JERK = _UxGT("arrancada V") LCD_STR_I; + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("arrancada V") LCD_STR_J; + PROGMEM Language_Str MSG_VK_JERK = _UxGT("arrancada V") LCD_STR_K; PROGMEM Language_Str MSG_VE_JERK = _UxGT("arrancada VE"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Desv. Junção"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocidade"); @@ -255,6 +258,9 @@ namespace Language_pt_br { PROGMEM Language_Str MSG_A_STEPS = _UxGT("Passo ") LCD_STR_A _UxGT("/mm"); PROGMEM Language_Str MSG_B_STEPS = _UxGT("Passo ") LCD_STR_B _UxGT("/mm"); PROGMEM Language_Str MSG_C_STEPS = _UxGT("Passo ") LCD_STR_C _UxGT("/mm"); + PROGMEM Language_Str MSG_I_STEPS = _UxGT("Passo ") LCD_STR_I _UxGT("/mm"); + PROGMEM Language_Str MSG_J_STEPS = _UxGT("Passo ") LCD_STR_J _UxGT("/mm"); + PROGMEM Language_Str MSG_K_STEPS = _UxGT("Passo ") LCD_STR_K _UxGT("/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("*/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); diff --git a/Marlin/src/lcd/language/language_ro.h b/Marlin/src/lcd/language/language_ro.h index 3d21e1a58d7a..aedc8c417332 100644 --- a/Marlin/src/lcd/language/language_ro.h +++ b/Marlin/src/lcd/language/language_ro.h @@ -273,12 +273,18 @@ namespace Language_ro { PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Jerk"); PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Jerk"); PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Jerk"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("V") LCD_STR_I _UxGT("-Jerk"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-Jerk"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-Jerk"); PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Jerk"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocity"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Vmax ") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Vmax ") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Vmax ") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); @@ -287,6 +293,9 @@ namespace Language_ro { PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Amax ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Amax ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Amax ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-Retract"); @@ -294,9 +303,12 @@ namespace Language_ro { PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("Frequency max"); PROGMEM Language_Str MSG_XY_FREQUENCY_FEEDRATE = _UxGT("Feed min"); PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Steps/mm"); - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("steps/mm"); - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("steps/mm"); - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("steps/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" steps/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" steps/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" steps/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" steps/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" steps/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" steps/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("Esteps/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("*steps/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperature"); @@ -497,9 +509,12 @@ namespace Language_ro { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temperatura Maxima"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Drive Strength"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driver %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC CONNECTION ERROR"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write"); @@ -606,6 +621,9 @@ namespace Language_ro { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Corectare"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing"); diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index 6ccfe5f47a12..e7eab72f6c4c 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -714,9 +714,9 @@ namespace Language_ru { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Макс. ") LCD_STR_THERMOMETER; PROGMEM Language_Str MSG_INFO_PSU = _UxGT("БП"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила привода"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Привод, %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Привод, %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Привод, %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Привод, %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Привод, %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Привод, %"); PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Привод, %"); PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Привод, %"); PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Привод, %"); diff --git a/Marlin/src/lcd/language/language_sk.h b/Marlin/src/lcd/language/language_sk.h index 717fa49b3375..079bcf55c813 100644 --- a/Marlin/src/lcd/language/language_sk.h +++ b/Marlin/src/lcd/language/language_sk.h @@ -132,7 +132,7 @@ namespace Language_sk { PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Posunúť osy"); PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Vyrovnanie podložky"); PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Vyrovnať podložku"); - PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Asist. vyrovnanie"); + PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("Vyrovnať rohy"); PROGMEM Language_Str MSG_BED_TRAMMING_RAISE = _UxGT("Zdvyhnite podl., kým sa nezopne sonda"); PROGMEM Language_Str MSG_BED_TRAMMING_IN_RANGE = _UxGT("Rohy sú vrámci odchyl. Vyrovnajte podl."); PROGMEM Language_Str MSG_BED_TRAMMING_GOOD_POINTS = _UxGT("Dobré body: "); @@ -319,12 +319,18 @@ namespace Language_sk { PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-skok"); PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-skok"); PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-skok"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("V") LCD_STR_I _UxGT("-skok"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-skok"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-skok"); PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-skok"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Rýchlosť"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Vmax ") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Vmax ") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Vmax ") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); @@ -333,6 +339,9 @@ namespace Language_sk { PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Amax ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Amax ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Amax ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt"); @@ -340,9 +349,12 @@ namespace Language_sk { PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("Max. frekvencia"); PROGMEM Language_Str MSG_XY_FREQUENCY_FEEDRATE = _UxGT("Min. posun"); PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Kroky/mm"); - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("krokov/mm"); - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("krokov/mm"); - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" krokov/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" krokov/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" krokov/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" krokov/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" krokov/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" krokov/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("Ekrokov/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("*krokov/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Teplota"); @@ -553,9 +565,12 @@ namespace Language_sk { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Budenie motorov"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Motor %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Motor %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Motor %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Motor %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Motor %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("CHYBA KOMUNIKÁ. TMC"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložiť do EEPROM"); @@ -673,6 +688,9 @@ namespace Language_sk { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korekcia"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Vyhladzovanie"); diff --git a/Marlin/src/lcd/language/language_sv.h b/Marlin/src/lcd/language/language_sv.h index baa0f645062c..cb33db5dfdff 100644 --- a/Marlin/src/lcd/language/language_sv.h +++ b/Marlin/src/lcd/language/language_sv.h @@ -303,12 +303,18 @@ namespace Language_sv { PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Ryck"); PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Ryck"); PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Ryck"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("V") LCD_STR_I _UxGT("-Ryck"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-Ryck"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-Ryck"); PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Ryck"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Knutpunkt Avv"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Hastighet"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Vmax ") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Vmax ") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Vmax ") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vmax *"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin"); @@ -317,6 +323,9 @@ namespace Language_sv { PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Amax ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Amax ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Amax ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Amax *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-Dra tillbaka"); @@ -327,6 +336,9 @@ namespace Language_sv { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" Steg/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" Steg/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" Steg/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" Steg/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" Steg/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" Steg/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E Steg/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* Steg/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatur"); @@ -533,9 +545,12 @@ namespace Language_sv { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp"); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driv Styrka"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Driver %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Driver %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC KOPPLNINGSFEL"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Skriv"); @@ -653,6 +668,9 @@ namespace Language_sv { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korrigering"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Glättning"); diff --git a/Marlin/src/lcd/language/language_tr.h b/Marlin/src/lcd/language/language_tr.h index bf218f136fac..66c7c1c1a26a 100644 --- a/Marlin/src/lcd/language/language_tr.h +++ b/Marlin/src/lcd/language/language_tr.h @@ -266,12 +266,18 @@ namespace Language_tr { PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Sarsım"); PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Sarsım"); PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Sarsım"); + PROGMEM Language_Str MSG_VI_JERK = _UxGT("V") LCD_STR_I _UxGT("-Sarsım"); + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-Sarsım"); + PROGMEM Language_Str MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-Sarsım"); PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Sarsım"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Jonksiyon Sapması"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("Hız Vektörü"); PROGMEM Language_Str MSG_VMAX_A = _UxGT("HızVektör.max ") LCD_STR_A; PROGMEM Language_Str MSG_VMAX_B = _UxGT("HızVektör.max ") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("HızVektör.max ") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("HızVektör.max ") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("HızVektör.max ") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("HızVektör.max ") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("HızVektör.max ") LCD_STR_E; PROGMEM Language_Str MSG_VMAX_EN = _UxGT("HızVektör.max *"); PROGMEM Language_Str MSG_VMIN = _UxGT("HızVektör.min"); @@ -280,6 +286,9 @@ namespace Language_tr { PROGMEM Language_Str MSG_AMAX_A = _UxGT("Max. ivme ") LCD_STR_A; PROGMEM Language_Str MSG_AMAX_B = _UxGT("Max. ivme ") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("Max. ivme ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Max. ivme ") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Max. ivme ") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Max. ivme ") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("Max. ivme ") LCD_STR_E; PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Max. ivme *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Ivme-geri çekme"); @@ -288,6 +297,9 @@ namespace Language_tr { PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" adım/mm"); PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" adım/mm"); PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" adım/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" adım/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" adım/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" adım/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("E adım/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* adım/mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Sıcaklık"); @@ -464,9 +476,12 @@ namespace Language_tr { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Sıc."); PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Güç Kaynağı"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Sürücü Gücü"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Sürücü %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Sürücü %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Sürücü %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" Sürücü %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" Sürücü %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" Sürücü %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" Sürücü %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" Sürücü %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" Sürücü %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Sürücü %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC BAĞLANTI HATASI"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Yaz"); @@ -571,6 +586,9 @@ namespace Language_tr { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Düzeltme"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Yumuşatma"); } diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h index 2e4a1b068caf..e0ee2e39294d 100644 --- a/Marlin/src/lcd/language/language_uk.h +++ b/Marlin/src/lcd/language/language_uk.h @@ -719,12 +719,12 @@ namespace Language_uk { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Макс. ") LCD_STR_THERMOMETER; PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Блок жив-ня"); PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила мотору"); - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("Драйвер X, %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Драйвер Y, %"); - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Драйвер Z, %"); - PROGMEM Language_Str MSG_DAC_PERCENT_I = _UxGT("Драйвер ") AXIS4_STR _UxGT(", %"); - PROGMEM Language_Str MSG_DAC_PERCENT_J = _UxGT("Драйвер ") AXIS5_STR _UxGT(", %"); - PROGMEM Language_Str MSG_DAC_PERCENT_K = _UxGT("Драйвер ") AXIS6_STR _UxGT(", %"); + PROGMEM Language_Str MSG_DAC_PERCENT_A = _UxGT("Драйвер ") LCD_STR_A _UxGT(", %"); + PROGMEM Language_Str MSG_DAC_PERCENT_B = _UxGT("Драйвер ") LCD_STR_B _UxGT(", %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = _UxGT("Драйвер ") LCD_STR_C _UxGT(", %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = _UxGT("Драйвер ") LCD_STR_I _UxGT(", %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = _UxGT("Драйвер ") LCD_STR_J _UxGT(", %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = _UxGT("Драйвер ") LCD_STR_K _UxGT(", %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("Драйвер E, %"); PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ЗБІЙ ЗВ'ЯЗКУ З TMC"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Запис ЦАП у EEPROM"); diff --git a/Marlin/src/lcd/language/language_vi.h b/Marlin/src/lcd/language/language_vi.h index 013a9159214a..9ee93a56bbd6 100644 --- a/Marlin/src/lcd/language/language_vi.h +++ b/Marlin/src/lcd/language/language_vi.h @@ -52,9 +52,9 @@ namespace Language_vi { PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu gỡ lỗi"); // Debug Menu PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Kiểm tra tiến độ"); // Progress bar test PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Về nhà tự động"); // Auto home - PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Về nhà X"); // home x - PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Về nhà Y"); // home y - PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Về nhà Z"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Về nhà X"); // home X + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Về nhà Y"); // home Y + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Về nhà Z"); // home Z PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Chỉnh canh Z tự động"); PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Đang về nhà XYZ"); // Homing XYZ PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Nhấn để bắt đầu"); // Click to Begin @@ -160,7 +160,7 @@ namespace Language_vi { PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Khe nhớ"); // Memory Slot PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Tải lưới bàn"); // Load Bed Mesh PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Lưu lưới bàn"); // Save Bed Mesh - PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("%i lưới được nạp"); // Mesh %i loaded + PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("%i lưới được nạp"); // Mesh %i loaded PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("%i lưới đã lưu"); PROGMEM Language_Str MSG_NO_STORAGE = _UxGT("Không lưu trữ"); // No Storage PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Điều sai: Lưu UBL"); // Err: UBL Save @@ -200,7 +200,7 @@ namespace Language_vi { PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Di chuyển Y"); PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Di chuyển Z"); PROGMEM Language_Str MSG_MOVE_E = _UxGT("Máy đùn"); // Extruder - PROGMEM Language_Str MSG_MOVE_EN = _UxGT("Máy đùn *"); // Extruder + PROGMEM Language_Str MSG_MOVE_EN = _UxGT("Máy đùn *"); PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Đầu nóng quá lạnh"); // Hotend too cold PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Di chuyển 0.1mm"); // Move 0.1mm PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Di chuyển 1mm"); // Move 1mm @@ -209,12 +209,12 @@ namespace Language_vi { PROGMEM Language_Str MSG_SPEED = _UxGT("Tốc độ"); // Speed PROGMEM Language_Str MSG_BED_Z = _UxGT("Z Bàn"); PROGMEM Language_Str MSG_NOZZLE = _UxGT("Đầu phun"); // Nozzle - PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Đầu phun ~"); // Nozzle + PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Đầu phun ~"); PROGMEM Language_Str MSG_BED = _UxGT("Bàn"); // bed PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Tốc độ quạt"); // fan speed - PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Tốc độ quạt ~"); // fan speed + PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Tốc độ quạt ~"); PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Tốc độ quạt phụ"); // Extra fan speed - PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Tốc độ quạt phụ ~"); // Extra fan speed + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Tốc độ quạt phụ ~"); PROGMEM Language_Str MSG_FLOW = _UxGT("Lưu Lượng"); PROGMEM Language_Str MSG_FLOW_N = _UxGT("Lưu Lượng ~"); PROGMEM Language_Str MSG_CONTROL = _UxGT("Điều khiển"); // Control @@ -231,28 +231,40 @@ namespace Language_vi { PROGMEM Language_Str MSG_VA_JERK = _UxGT("Giật-V") LCD_STR_A; PROGMEM Language_Str MSG_VB_JERK = _UxGT("Giật-V") LCD_STR_B; PROGMEM Language_Str MSG_VC_JERK = _UxGT("Giật-V") LCD_STR_C; + PROGMEM Language_Str MSG_VI_JERK = _UxGT("Giật-V") LCD_STR_I; + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("Giật-V") LCD_STR_J; + PROGMEM Language_Str MSG_VK_JERK = _UxGT("Giật-V") LCD_STR_K; PROGMEM Language_Str MSG_VE_JERK = _UxGT("Giật-Ve"); PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Độ Lệch Chỗ Giao"); // Junction Dev PROGMEM Language_Str MSG_VELOCITY = _UxGT("Vận tốc"); // velocity PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vđa") LCD_STR_A; // Vmax - PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vđa") LCD_STR_B; // Vmax - PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vđa") LCD_STR_C; // Vmax - PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vđa") LCD_STR_E; // Vmax - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vđa *"); // Vmax + PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vđa") LCD_STR_B; + PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vđa") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("Vđa") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("Vđa") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("Vđa") LCD_STR_K; + PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vđa") LCD_STR_E; + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("Vđa *"); PROGMEM Language_Str MSG_VMIN = _UxGT("Vthiểu"); // Vmin PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vchuyển thiểu"); // VTrav min PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Sự tăng tốc"); // Acceleration PROGMEM Language_Str MSG_AMAX_A = _UxGT("Tăng tốc ca") LCD_STR_A; // Amax - PROGMEM Language_Str MSG_AMAX_B = _UxGT("Tăng tốc ca") LCD_STR_B; // Amax - PROGMEM Language_Str MSG_AMAX_C = _UxGT("Tăng tốc ca") LCD_STR_C; // Amax - PROGMEM Language_Str MSG_AMAX_E = _UxGT("Tăng tốc ca") LCD_STR_E; // Amax - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Tăng tốc ca *"); // Amax + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Tăng tốc ca") LCD_STR_B; + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Tăng tốc ca") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("Tăng tốc ca") LCD_STR_I; // Amax + PROGMEM Language_Str MSG_AMAX_J = _UxGT("Tăng tốc ca") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("Tăng tốc ca") LCD_STR_K; + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Tăng tốc ca") LCD_STR_E; + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("Tăng tốc ca *"); PROGMEM Language_Str MSG_A_RETRACT = _UxGT("TT-Rút"); // A-retract PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("TT-Chuyển"); // A-travel PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Bước/mm"); // Steps - PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bước") LCD_STR_A _UxGT("/mm"); // Asteps/mm + PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bước") LCD_STR_A _UxGT("/mm"); // Steps/mm PROGMEM Language_Str MSG_B_STEPS = _UxGT("Bước") LCD_STR_B _UxGT("/mm"); PROGMEM Language_Str MSG_C_STEPS = _UxGT("Bước") LCD_STR_C _UxGT("/mm"); + PROGMEM Language_Str MSG_I_STEPS = _UxGT("Bước") LCD_STR_I _UxGT("/mm"); // Steps/mm + PROGMEM Language_Str MSG_J_STEPS = _UxGT("Bước") LCD_STR_J _UxGT("/mm"); + PROGMEM Language_Str MSG_K_STEPS = _UxGT("Bước") LCD_STR_K _UxGT("/mm"); PROGMEM Language_Str MSG_E_STEPS = _UxGT("BướcE/mm"); PROGMEM Language_Str MSG_EN_STEPS = _UxGT("Bước */mm"); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Nhiệt độ"); // Temperature @@ -388,10 +400,13 @@ namespace Language_vi { PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Nhiệt độ tối đa"); // Max temp PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Bộ nguồn"); // PSU PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Sức mạnh ổ đĩa"); // Drive Strength - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X % trình điều khiển"); // X Driver % - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y % trình điều khiển"); // Y Driver % - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z % trình điều khiển"); // Z Driver % - PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E % trình điều khiển"); // E Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" % trình điều khiển"); // X Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" % trình điều khiển"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" % trình điều khiển"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" % trình điều khiển"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" % trình điều khiển"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" % trình điều khiển"); + PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E % trình điều khiển"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Ghi DAC EEPROM"); // DAC EEPROM Write PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("In tạm dừng"); // PRINT PAUSED PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("Nạp dây nhựa"); diff --git a/Marlin/src/lcd/language/language_zh_CN.h b/Marlin/src/lcd/language/language_zh_CN.h index 31d262360489..d3883ac88ddc 100644 --- a/Marlin/src/lcd/language/language_zh_CN.h +++ b/Marlin/src/lcd/language/language_zh_CN.h @@ -33,52 +33,52 @@ namespace Language_zh_CN { constexpr uint8_t CHARSIZE = 3; PROGMEM Language_Str LANGUAGE = _UxGT("Simplified Chinese"); - PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就绪."); //" ready." + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就绪."); // " ready." PROGMEM Language_Str MSG_MARLIN = _UxGT("马林"); PROGMEM Language_Str MSG_YES = _UxGT("是"); PROGMEM Language_Str MSG_NO = _UxGT("否"); PROGMEM Language_Str MSG_BACK = _UxGT("返回"); // ”Back“ PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("放弃中..."); - PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("存储卡已插入"); //"Card inserted" - PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("存储卡被拔出"); //"Card removed" + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("存储卡已插入"); // "Card inserted" + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("存储卡被拔出"); // "Card removed" PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("等待存储器"); PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("存储器读取错误"); PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB设备已弹出"); PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB启动错误"); PROGMEM Language_Str MSG_KILL_SUBCALL_OVERFLOW = _UxGT("子响应溢出"); - PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("挡块"); //"Endstops" // Max length 8 characters + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("挡块"); // "Endstops" // Max length 8 characters PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("软挡块"); - PROGMEM Language_Str MSG_MAIN = _UxGT("主菜单"); //"Main" + PROGMEM Language_Str MSG_MAIN = _UxGT("主菜单"); // "Main" PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("高级设置"); PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("配置"); - PROGMEM Language_Str MSG_RUN_AUTO_FILES = _UxGT("自动开始"); //"Autostart" - PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("关闭步进电机"); //"Disable steppers" + PROGMEM Language_Str MSG_RUN_AUTO_FILES = _UxGT("自动开始"); // "Autostart" + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("关闭步进电机"); // "Disable steppers" PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("调试菜单"); // "Debug Menu" PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("进度条测试"); // "Progress Bar Test" - PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("自动回原点"); //"Auto home" - PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("回X原位"); //"Home X" - PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("回Y原位"); //"Home Y" - PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("回Z原位"); //"Home Z" + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("自动回原点"); // "Auto home" + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("回X原位"); // "Home X" + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("回Y原位"); // "Home Y" + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("回Z原位"); // "Home Z" PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("自动Z对齐"); - PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("平台调平XYZ归原位"); //"Homing XYZ" - PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("单击开始热床调平"); //"Click to Begin" - PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("下个热床调平点"); //"Next Point" - PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("完成热床调平"); //"Leveling Done!" + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("平台调平XYZ归原位"); // "Homing XYZ" + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("单击开始热床调平"); // "Click to Begin" + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("下个热床调平点"); // "Next Point" + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("完成热床调平"); // "Leveling Done!" PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("淡出高度"); // "Fade Height" - PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("设置原点偏移"); //"Set home offsets" - PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("偏移已启用"); //"Offsets applied" - PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("设置原点"); //"Set origin" + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("设置原点偏移"); // "Set home offsets" + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("偏移已启用"); // "Offsets applied" + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("设置原点"); // "Set origin" #if PREHEAT_COUNT - PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("预热 ") PREHEAT_1_LABEL; //"Preheat PREHEAT_2_LABEL" - PROGMEM Language_Str MSG_PREHEAT_1_H = _UxGT("预热 ") PREHEAT_1_LABEL " ~"; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("预热 ") PREHEAT_1_LABEL; // "Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H = _UxGT("预热 ") PREHEAT_1_LABEL " ~"; // "Preheat PREHEAT_2_LABEL" PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_1_END_E = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ~"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 全部"); //MSG_PREHEAT_1 " All" PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 热床"); //MSG_PREHEAT_1 " Bed" PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 设置"); //MSG_PREHEAT_1 " conf" - PROGMEM Language_Str MSG_PREHEAT_M = _UxGT("预热 $"); //"Preheat PREHEAT_2_LABEL" - PROGMEM Language_Str MSG_PREHEAT_M_H = _UxGT("预热 $ ~"); //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_M = _UxGT("预热 $"); // "Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_M_H = _UxGT("预热 $ ~"); // "Preheat PREHEAT_2_LABEL" PROGMEM Language_Str MSG_PREHEAT_M_END = _UxGT("预热 $ 喷嘴"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_M_END_E = _UxGT("预热 $ 喷嘴 ~"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_M_ALL = _UxGT("预热 $ 全部"); //MSG_PREHEAT_1 " All" @@ -86,20 +86,20 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_PREHEAT_M_SETTINGS = _UxGT("预热 $ 设置"); //MSG_PREHEAT_1 " conf" #endif PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("预热自定义"); - PROGMEM Language_Str MSG_COOLDOWN = _UxGT("降温"); //"Cooldown" + PROGMEM Language_Str MSG_COOLDOWN = _UxGT("降温"); // "Cooldown" PROGMEM Language_Str MSG_CUTTER_FREQUENCY = _UxGT("切割频率"); PROGMEM Language_Str MSG_LASER_MENU = _UxGT("激光控制"); PROGMEM Language_Str MSG_LASER_POWER = _UxGT("激光电源"); PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("主轴控制"); PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("主轴电源"); PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("主轴反转"); - PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("电源打开"); //"Switch power on" - PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("电源关闭"); //"Switch power off" - PROGMEM Language_Str MSG_EXTRUDE = _UxGT("挤出"); //"Extrude" - PROGMEM Language_Str MSG_RETRACT = _UxGT("回抽"); //"Retract" - PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("移动轴"); //"Move axis" - PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("调平热床"); //"Bed leveling" - PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("调平热床"); //"Level bed" + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("电源打开"); // "Switch power on" + PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("电源关闭"); // "Switch power off" + PROGMEM Language_Str MSG_EXTRUDE = _UxGT("挤出"); // "Extrude" + PROGMEM Language_Str MSG_RETRACT = _UxGT("回抽"); // "Retract" + PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("移动轴"); // "Move axis" + PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("调平热床"); // "Bed leveling" + PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("调平热床"); // "Level bed" PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("调平边角"); // "Bed Tramming" PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("下个边角"); // "Next corner" PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("网格编辑器"); @@ -220,27 +220,27 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_MOVING = _UxGT("移动..."); // "Moving...") PROGMEM Language_Str MSG_FREE_XY = _UxGT("释放 XY"); // "Free XY") - PROGMEM Language_Str MSG_MOVE_X = _UxGT("移动X"); //"Move X" - PROGMEM Language_Str MSG_MOVE_Y = _UxGT("移动Y"); //"Move Y" - PROGMEM Language_Str MSG_MOVE_Z = _UxGT("移动Z"); //"Move Z" - PROGMEM Language_Str MSG_MOVE_E = _UxGT("挤出机"); //"Extruder" - PROGMEM Language_Str MSG_MOVE_EN = _UxGT("挤出机 *"); //"Extruder" + PROGMEM Language_Str MSG_MOVE_X = _UxGT("移动X"); // "Move X" + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("移动Y"); // "Move Y" + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("移动Z"); // "Move Z" + PROGMEM Language_Str MSG_MOVE_E = _UxGT("挤出机"); // "Extruder" + PROGMEM Language_Str MSG_MOVE_EN = _UxGT("挤出机 *"); // "Extruder" PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("热端太冷"); - PROGMEM Language_Str MSG_MOVE_N_MM = _UxGT("移动 %s mm"); //"Move 0.025mm" - PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移动 0.1 mm"); //"Move 0.1mm" - PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移动 1 mm"); //"Move 1mm" - PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移动 10 mm"); //"Move 10mm" - PROGMEM Language_Str MSG_MOVE_100MM = _UxGT("移动 100 mm"); //"Move 100mm" - PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); //"Speed" - PROGMEM Language_Str MSG_BED_Z = _UxGT("热床Z"); //"Bed Z" - PROGMEM Language_Str MSG_NOZZLE = _UxGT("喷嘴"); //"Nozzle" 噴嘴 - PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("喷嘴 ~"); //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_MOVE_N_MM = _UxGT("移动 %s mm"); // "Move 0.025mm" + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移动 0.1 mm"); // "Move 0.1mm" + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移动 1 mm"); // "Move 1mm" + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移动 10 mm"); // "Move 10mm" + PROGMEM Language_Str MSG_MOVE_100MM = _UxGT("移动 100 mm"); // "Move 100mm" + PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); // "Speed" + PROGMEM Language_Str MSG_BED_Z = _UxGT("热床Z"); // "Bed Z" + PROGMEM Language_Str MSG_NOZZLE = _UxGT("喷嘴"); // "Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("喷嘴 ~"); // "Nozzle" 噴嘴 PROGMEM Language_Str MSG_NOZZLE_PARKED = _UxGT("喷嘴已停靠"); PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("喷嘴待命中"); - PROGMEM Language_Str MSG_BED = _UxGT("热床"); //"Bed" + PROGMEM Language_Str MSG_BED = _UxGT("热床"); // "Bed" PROGMEM Language_Str MSG_CHAMBER = _UxGT("机箱壳"); - PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("风扇速率"); //"Fan speed" - PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("风扇速率 ~"); //"Fan speed" + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("风扇速率"); // "Fan speed" + PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("风扇速率 ~"); // "Fan speed" PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("存储的风扇 ~"); PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("额外风扇速率"); // "Extra fan speed" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("额外风扇速率 ~"); // "Extra fan speed" @@ -249,70 +249,82 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_CONTROLLER_FAN_AUTO_ON = _UxGT("自动模式"); PROGMEM Language_Str MSG_CONTROLLER_FAN_SPEED = _UxGT("工作速度"); PROGMEM Language_Str MSG_CONTROLLER_FAN_DURATION = _UxGT("空闲周期"); - PROGMEM Language_Str MSG_FLOW = _UxGT("挤出速率"); //"Flow" - PROGMEM Language_Str MSG_FLOW_N = _UxGT("挤出速率 ~"); //"Flow" - PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control" - PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); //" " LCD_STR_THERMOMETER " Min" - PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); //" " LCD_STR_THERMOMETER " Max" - PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 因数"); //" " LCD_STR_THERMOMETER " Fact" - PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("自动控温"); //"Autotemp" - PROGMEM Language_Str MSG_LCD_ON = _UxGT("开"); //"On" - PROGMEM Language_Str MSG_LCD_OFF = _UxGT("关"); //"Off" + PROGMEM Language_Str MSG_FLOW = _UxGT("挤出速率"); // "Flow" + PROGMEM Language_Str MSG_FLOW_N = _UxGT("挤出速率 ~"); // "Flow" + PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); // "Control" + PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); // " " LCD_STR_THERMOMETER " Min" + PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); // " " LCD_STR_THERMOMETER " Max" + PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 因数"); // " " LCD_STR_THERMOMETER " Fact" + PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("自动控温"); // "Autotemp" + PROGMEM Language_Str MSG_LCD_ON = _UxGT("开"); // "On" + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("关"); // "Off" PROGMEM Language_Str MSG_PID_AUTOTUNE = _UxGT("自动PID"); PROGMEM Language_Str MSG_PID_AUTOTUNE_E = _UxGT("自动PID *"); PROGMEM Language_Str MSG_PID_AUTOTUNE_DONE = _UxGT("PID调整完成"); PROGMEM Language_Str MSG_PID_BAD_EXTRUDER_NUM = _UxGT("自动调失败. 坏的挤出机"); PROGMEM Language_Str MSG_PID_TEMP_TOO_HIGH = _UxGT("自动调失败. 温度太高"); PROGMEM Language_Str MSG_PID_TIMEOUT = _UxGT("自动调失败! 超时"); - PROGMEM Language_Str MSG_SELECT = _UxGT("选择"); //"Select" + PROGMEM Language_Str MSG_SELECT = _UxGT("选择"); // "Select" PROGMEM Language_Str MSG_SELECT_E = _UxGT("选择 *"); - PROGMEM Language_Str MSG_ACC = _UxGT("加速度"); //"Accel" acceleration + PROGMEM Language_Str MSG_ACC = _UxGT("加速度"); // "Accel" acceleration PROGMEM Language_Str MSG_JERK = _UxGT("抖动速率"); // "Jerk" - PROGMEM Language_Str MSG_VA_JERK = _UxGT("轴抖动速率") LCD_STR_A; //"Va-jerk" - PROGMEM Language_Str MSG_VB_JERK = _UxGT("轴抖动速率") LCD_STR_B; //"Vb-jerk" - PROGMEM Language_Str MSG_VC_JERK = _UxGT("轴抖动速率") LCD_STR_C; //"Vc-jerk" - PROGMEM Language_Str MSG_VE_JERK = _UxGT("挤出机抖动速率"); //"Ve-jerk" + PROGMEM Language_Str MSG_VA_JERK = _UxGT("轴抖动速率") LCD_STR_A; // "Va-jerk" + PROGMEM Language_Str MSG_VB_JERK = _UxGT("轴抖动速率") LCD_STR_B; // "Vb-jerk" + PROGMEM Language_Str MSG_VC_JERK = _UxGT("轴抖动速率") LCD_STR_C; // "Vc-jerk" + PROGMEM Language_Str MSG_VI_JERK = _UxGT("轴抖动速率") LCD_STR_I; // "Vi-jerk" + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("轴抖动速率") LCD_STR_J; // "Vj-jerk" + PROGMEM Language_Str MSG_VK_JERK = _UxGT("轴抖动速率") LCD_STR_K; // "Vk-jerk" + PROGMEM Language_Str MSG_VE_JERK = _UxGT("挤出机抖动速率"); // "Ve-jerk" PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("接点差"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("速度"); // "Velocity" - PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大进料速率") LCD_STR_A; //"Vmax " max_feedrate_mm_s - PROGMEM Language_Str MSG_VMAX_B = _UxGT("最大进料速率") LCD_STR_B; //"Vmax " max_feedrate_mm_s - PROGMEM Language_Str MSG_VMAX_C = _UxGT("最大进料速率") LCD_STR_C; //"Vmax " max_feedrate_mm_s - PROGMEM Language_Str MSG_VMAX_E = _UxGT("最大进料速率") LCD_STR_E; //"Vmax " max_feedrate_mm_s - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("最大进料速率 *"); //"Vmax " max_feedrate_mm_s - PROGMEM Language_Str MSG_VMIN = _UxGT("最小进料速率"); //"Vmin" min_feedrate_mm_s - PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移动速率"); //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move + PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大进料速率") LCD_STR_A; // "Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_B = _UxGT("最大进料速率") LCD_STR_B; + PROGMEM Language_Str MSG_VMAX_C = _UxGT("最大进料速率") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("最大进料速率") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("最大进料速率") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("最大进料速率") LCD_STR_K; + PROGMEM Language_Str MSG_VMAX_E = _UxGT("最大进料速率") LCD_STR_E; + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("最大进料速率 *"); + PROGMEM Language_Str MSG_VMIN = _UxGT("最小进料速率"); // "Vmin" min_feedrate_mm_s + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移动速率"); // "VTrav min" min_travel_feedrate_mm_s, (target) speed of the move PROGMEM Language_Str MSG_ACCELERATION = _UxGT("加速度"); // "Acceleration" - PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大打印加速度") LCD_STR_A; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves - PROGMEM Language_Str MSG_AMAX_B = _UxGT("最大打印加速度") LCD_STR_B; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves - PROGMEM Language_Str MSG_AMAX_C = _UxGT("最大打印加速度") LCD_STR_C; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves - PROGMEM Language_Str MSG_AMAX_E = _UxGT("最大打印加速度") LCD_STR_E; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("最大打印加速度 *"); //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves - PROGMEM Language_Str MSG_A_RETRACT = _UxGT("收进加速度"); //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts - PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("非打印移动加速度"); //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves + PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大打印加速度") LCD_STR_A; // "Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_B = _UxGT("最大打印加速度") LCD_STR_B; + PROGMEM Language_Str MSG_AMAX_C = _UxGT("最大打印加速度") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("最大打印加速度") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("最大打印加速度") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("最大打印加速度") LCD_STR_K; + PROGMEM Language_Str MSG_AMAX_E = _UxGT("最大打印加速度") LCD_STR_E; + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("最大打印加速度 *"); + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("收进加速度"); // "A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("非打印移动加速度"); // "A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves PROGMEM Language_Str MSG_XY_FREQUENCY_LIMIT = _UxGT("频率最大"); PROGMEM Language_Str MSG_XY_FREQUENCY_FEEDRATE = _UxGT("进给速度"); - PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("轴步数/mm"); //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("步数/mm"); //"Asteps/mm" - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("步数/mm"); //"Bsteps/mm" - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("步数/mm"); //"Csteps/mm" - PROGMEM Language_Str MSG_E_STEPS = _UxGT("E 步数/mm"); //"Esteps/mm" + PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("轴步数/mm"); // "Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" 步数/mm"); // "Asteps/mm" + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" 步数/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" 步数/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" 步数/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" 步数/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" 步数/mm"); + PROGMEM Language_Str MSG_E_STEPS = _UxGT("E 步数/mm"); // "Esteps/mm" PROGMEM Language_Str MSG_EN_STEPS = _UxGT("* 步数/mm"); - PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("温度"); //"Temperature" - PROGMEM Language_Str MSG_MOTION = _UxGT("运动"); //"Motion" - PROGMEM Language_Str MSG_FILAMENT = _UxGT("料丝"); //"Filament" menu_advanced_filament - PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E 在 mm") SUPERSCRIPT_THREE; //"E in mm3" volumetric_enabled + PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("温度"); // "Temperature" + PROGMEM Language_Str MSG_MOTION = _UxGT("运动"); // "Motion" + PROGMEM Language_Str MSG_FILAMENT = _UxGT("料丝"); // "Filament" menu_advanced_filament + PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E 在 mm") SUPERSCRIPT_THREE; // "E in mm3" volumetric_enabled PROGMEM Language_Str MSG_VOLUMETRIC_LIMIT = _UxGT("E 限制 在 mm") SUPERSCRIPT_THREE; PROGMEM Language_Str MSG_VOLUMETRIC_LIMIT_E = _UxGT("E 限制 *"); - PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("丝料直径"); //"Fil. Dia." + PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("丝料直径"); // "Fil. Dia." PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("丝料直径 *"); PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("卸载 mm"); // "Unload mm" PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("装载 mm"); // "Load mm" PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Advance K"); PROGMEM Language_Str MSG_ADVANCE_K_E = _UxGT("Advance K *"); - PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD对比度"); //"LCD contrast" - PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存设置"); //"Store memory" - PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("装载设置"); //"Load memory" - PROGMEM Language_Str MSG_RESTORE_DEFAULTS = _UxGT("恢复安全值"); //"Restore Defaults" + PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD对比度"); // "LCD contrast" + PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存设置"); // "Store memory" + PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("装载设置"); // "Load memory" + PROGMEM Language_Str MSG_RESTORE_DEFAULTS = _UxGT("恢复安全值"); // "Restore Defaults" PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("初始化设置"); // "Initialize EEPROM" PROGMEM Language_Str MSG_ERR_EEPROM_CRC = _UxGT("EEPROM CRC 错误"); PROGMEM Language_Str MSG_ERR_EEPROM_INDEX = _UxGT("EEPROM Index 错误"); @@ -321,9 +333,9 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("存储器更新"); PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("复位打印机"); PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("刷新"); - PROGMEM Language_Str MSG_INFO_SCREEN = _UxGT("信息屏"); //"Info screen" - PROGMEM Language_Str MSG_PREPARE = _UxGT("准备"); //"Prepare" - PROGMEM Language_Str MSG_TUNE = _UxGT("调整"); //"Tune" + PROGMEM Language_Str MSG_INFO_SCREEN = _UxGT("信息屏"); // "Info screen" + PROGMEM Language_Str MSG_PREPARE = _UxGT("准备"); // "Prepare" + PROGMEM Language_Str MSG_TUNE = _UxGT("调整"); // "Tune" PROGMEM Language_Str MSG_POWER_MONITOR = _UxGT("电源监控"); PROGMEM Language_Str MSG_CURRENT = _UxGT("电流"); PROGMEM Language_Str MSG_VOLTAGE = _UxGT("电压"); @@ -340,33 +352,33 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_BUTTON_BACK = _UxGT("返回"); PROGMEM Language_Str MSG_BUTTON_PROCEED = _UxGT("继续"); PROGMEM Language_Str MSG_PAUSING = _UxGT("暂停中..."); - PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("暂停打印"); //"Pause print" - PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("恢复打印"); //"Resume print" - PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("停止打印"); //"Stop print" + PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("暂停打印"); // "Pause print" + PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("恢复打印"); // "Resume print" + PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("停止打印"); // "Stop print" PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("打印物体"); PROGMEM Language_Str MSG_CANCEL_OBJECT = _UxGT("取消物体"); PROGMEM Language_Str MSG_CANCEL_OBJECT_N = _UxGT("取消物体 ="); PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("中断恢复"); - PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("从存储卡上打印"); //"Print from SD" - PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("无存储卡"); //"No SD card" - PROGMEM Language_Str MSG_DWELL = _UxGT("休眠中 ..."); //"Sleep..." - PROGMEM Language_Str MSG_USERWAIT = _UxGT("点击继续 ..."); //"Click to resume..." + PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("从存储卡上打印"); // "Print from SD" + PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("无存储卡"); // "No SD card" + PROGMEM Language_Str MSG_DWELL = _UxGT("休眠中 ..."); // "Sleep..." + PROGMEM Language_Str MSG_USERWAIT = _UxGT("点击继续 ..."); // "Click to resume..." PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("暫停打印"); // "Print paused" PROGMEM Language_Str MSG_PRINTING = _UxGT("打印中..."); - PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("已取消打印"); //"Print aborted" + PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("已取消打印"); // "Print aborted" PROGMEM Language_Str MSG_PRINT_DONE = _UxGT("打印已完成"); - PROGMEM Language_Str MSG_NO_MOVE = _UxGT("无移动"); //"No move." - PROGMEM Language_Str MSG_KILLED = _UxGT("已杀掉"); //"KILLED. " - PROGMEM Language_Str MSG_STOPPED = _UxGT("已停止"); //"STOPPED. " - PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("回抽长度mm"); //"Retract mm" retract_length, retract length (positive mm) - PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("换手回抽长度mm"); //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change - PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回抽速率mm/s"); //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) - PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm"); //"Hop mm" retract_zraise, retract Z-lift - PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("回抽恢复长度mm"); //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) - PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("换手回抽恢复长度mm"); //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change) - PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("回抽恢复后进料速率mm/s"); //"Unretract V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) + PROGMEM Language_Str MSG_NO_MOVE = _UxGT("无移动"); // "No move." + PROGMEM Language_Str MSG_KILLED = _UxGT("已杀掉"); // "KILLED. " + PROGMEM Language_Str MSG_STOPPED = _UxGT("已停止"); // "STOPPED. " + PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("回抽长度mm"); // "Retract mm" retract_length, retract length (positive mm) + PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("换手回抽长度mm"); // "Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change + PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回抽速率mm/s"); // "Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) + PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm"); // "Hop mm" retract_zraise, retract Z-lift + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("回抽恢复长度mm"); // "UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("换手回抽恢复长度mm"); // "S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change) + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("回抽恢复后进料速率mm/s"); // "Unretract V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V"); // "S UnRet V" - PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("自动抽回"); //"Auto-Retract" autoretract_enabled, + PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("自动抽回"); // "Auto-Retract" autoretract_enabled, PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("交换长度"); PROGMEM Language_Str MSG_FILAMENT_SWAP_EXTRA = _UxGT("额外的交换"); PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("清洗长度"); @@ -384,17 +396,17 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_TOOL_MIGRATION_AUTO = _UxGT("自动迁移"); PROGMEM Language_Str MSG_TOOL_MIGRATION_END = _UxGT("上一个挤出机"); PROGMEM Language_Str MSG_TOOL_MIGRATION_SWAP = _UxGT("迁移至 *"); - PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("更换丝料"); //"Change filament" - PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("更换丝料 *"); //"Change filament" + PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("更换丝料"); // "Change filament" + PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("更换丝料 *"); // "Change filament" PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("装载丝料"); // "Load filament" PROGMEM Language_Str MSG_FILAMENTLOAD_E = _UxGT("装载丝料 *"); // "Load filament" PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("卸载丝料"); // "Unload filament" PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("卸载丝料 *"); // "Unload filament" PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("卸载全部"); // "Unload All" - PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("初始化存储卡"); //"Init. SD card" - PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更换存储卡"); //"Change SD card" + PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("初始化存储卡"); // "Init. SD card" + PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更换存储卡"); // "Change SD card" PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("释放存储卡"); - PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探针在热床之外"); //"Z probe out. bed" Z probe is not within the physical limits + PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探针在热床之外"); // "Z probe out. bed" Z probe is not within the physical limits PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("偏斜因数"); // "Skew Factor" PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch"); // "BLTouch" PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("自检"); @@ -416,39 +428,39 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("部署TouchMI"); PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("部署Z探针"); PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("收好Z探针"); - PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("归位 %s%s%s 先"); //"Home ... first" + PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("归位 %s%s%s 先"); // "Home ... first" PROGMEM Language_Str MSG_ZPROBE_OFFSETS = _UxGT("探针偏移量"); PROGMEM Language_Str MSG_ZPROBE_XOFFSET = _UxGT("探针X偏移"); PROGMEM Language_Str MSG_ZPROBE_YOFFSET = _UxGT("探针Y偏移"); - PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("探针Z偏移"); //"Z Offset" - PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("微量调整X轴"); //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts - PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("微量调整Y轴"); //"Babystep Y" - PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("微量调整Z轴"); //"Babystep Z" + PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("探针Z偏移"); // "Z Offset" + PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("微量调整X轴"); // "Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts + PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("微量调整Y轴"); // "Babystep Y" + PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("微量调整Z轴"); // "Babystep Z" PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("总计"); - PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("挡块终止"); //"Endstop abort" - PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("加热失败"); //"Heating failed" - PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("错误:冗余温度"); //"Err: REDUNDANT TEMP" - PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("温控失控"); //"THERMAL RUNAWAY" + PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("挡块终止"); // "Endstop abort" + PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("加热失败"); // "Heating failed" + PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("错误:冗余温度"); // "Err: REDUNDANT TEMP" + PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("温控失控"); // "THERMAL RUNAWAY" PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("热床热量失控"); PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("机箱热量失控"); - PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("错误:最高温度"); //"Err: MAXTEMP" - PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("错误:最低温度"); //"Err: MINTEMP" - PROGMEM Language_Str MSG_HALTED = _UxGT("打印停机"); //"PRINTER HALTED" - PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("请重置"); //"Please reset" - PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("天"); //"d" // One character only - PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("时"); //"h" // One character only - PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("分"); //"m" // One character only - PROGMEM Language_Str MSG_HEATING = _UxGT("加热中 ..."); //"Heating..." + PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("错误:最高温度"); // "Err: MAXTEMP" + PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("错误:最低温度"); // "Err: MINTEMP" + PROGMEM Language_Str MSG_HALTED = _UxGT("打印停机"); // "PRINTER HALTED" + PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("请重置"); // "Please reset" + PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("天"); // "d" // One character only + PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("时"); // "h" // One character only + PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("分"); // "m" // One character only + PROGMEM Language_Str MSG_HEATING = _UxGT("加热中 ..."); // "Heating..." PROGMEM Language_Str MSG_COOLING = _UxGT("冷却中 ..."); - PROGMEM Language_Str MSG_BED_HEATING = _UxGT("加热热床中 ..."); //"Bed Heating..." + PROGMEM Language_Str MSG_BED_HEATING = _UxGT("加热热床中 ..."); // "Bed Heating..." PROGMEM Language_Str MSG_BED_COOLING = _UxGT("热床冷却中 ..."); PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("机箱加热中 ..."); PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("机箱冷却中 ..."); - PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("⊿校准"); //"Delta Calibration" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("⊿校准X"); //"Calibrate X" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("⊿校准Y"); //"Calibrate Y" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("⊿校准Z"); //"Calibrate Z" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("⊿校准中心"); //"Calibrate Center" + PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("⊿校准"); // "Delta Calibration" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("⊿校准X"); // "Calibrate X" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("⊿校准Y"); // "Calibrate Y" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("⊿校准Z"); // "Calibrate Z" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("⊿校准中心"); // "Calibrate Center" PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("⊿设置"); // "Delta Settings" PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("⊿自动校准"); // "Auto Calibration" PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("设置⊿高度"); // "Set Delta Height" @@ -456,19 +468,19 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("⊿斜柱"); // "Diag Rod" PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("⊿高度"); // "Height" PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("⊿半径"); // "Radius" - PROGMEM Language_Str MSG_INFO_MENU = _UxGT("关于打印机"); //"About Printer" - PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("打印机信息"); //"Printer Info" + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("关于打印机"); // "About Printer" + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("打印机信息"); // "Printer Info" PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("三点调平"); // "3-Point Leveling" PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("线性调平"); // "Linear Leveling" PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("双线性调平"); // "Bilinear Leveling" PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("统一热床调平(UBL)"); // "Unified Bed Leveling" PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("网格调平"); // "Mesh Leveling" - PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("打印机统计"); //"Printer Stats" - PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("主板信息"); //"Board Info" - PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("温度计"); //"Thermistors" - PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("挤出机"); //"Extruders" - PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("波特率"); //"Baud" - PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("协议"); //"Protocol" + PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("打印机统计"); // "Printer Stats" + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("主板信息"); // "Board Info" + PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("温度计"); // "Thermistors" + PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("挤出机"); // "Extruders" + PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("波特率"); // "Baud" + PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("协议"); // "Protocol" PROGMEM Language_Str MSG_INFO_RUNAWAY_OFF = _UxGT("监控温度失控:关"); PROGMEM Language_Str MSG_INFO_RUNAWAY_ON = _UxGT("监控温度失控:开"); PROGMEM Language_Str MSG_HOTEND_IDLE_TIMEOUT = _UxGT("热端空闲超时"); @@ -479,26 +491,29 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_KILL_EXPECTED_PRINTER = _UxGT("打印机不正确"); // "The printer is incorrect" #if LCD_WIDTH >= 20 - PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("打印计数"); //"Print Count" - PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成了"); //"Completed" - PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("总打印时间"); //"Total print time" - PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最长工作时间"); //"Longest job time" - PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("总计挤出"); //"Extruded total" + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("打印计数"); // "Print Count" + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成了"); // "Completed" + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("总打印时间"); // "Total print time" + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最长工作时间"); // "Longest job time" + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("总计挤出"); // "Extruded total" #else - PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("打印数"); //"Prints" - PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成"); //"Completed" - PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("总共"); //"Total" - PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最长"); //"Longest" - PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("已挤出"); //"Extruded" + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("打印数"); // "Prints" + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成"); // "Completed" + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("总共"); // "Total" + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最长"); // "Longest" + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("已挤出"); // "Extruded" #endif - PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("最低温度"); //"Min Temp" - PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高温度"); //"Max Temp" - PROGMEM Language_Str MSG_INFO_PSU = _UxGT("电源供应"); //"Power Supply" + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("最低温度"); // "Min Temp" + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高温度"); // "Max Temp" + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("电源供应"); // "Power Supply" PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("驱动力度"); // "Drive Strength" - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X 驱动 %"); // "X Driver %" - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y 驱动 %"); // "Y Driver %" - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z 驱动 %"); // "Z Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" 驱动 %"); // "X Driver %" + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" 驱动 %"); + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" 驱动 %"); + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" 驱动 %"); + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" 驱动 %"); + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" 驱动 %"); PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E 驱动 %"); // "E Driver %" PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC 连接错误"); PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驱动设置"); // "DAC EEPROM Write" @@ -508,7 +523,7 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("卸载丝料"); // "UNLOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("恢复选项:"); // "RESUME OPTIONS:" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("清除更多"); // "Purge more" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("恢复打印"); //"Resume print" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("恢复打印"); // "Resume print" PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" 喷嘴: "); // " Nozzle: " PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("断料传感器"); PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("断料距离mm"); @@ -583,15 +598,15 @@ namespace Language_zh_CN { #else PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("按下继续")); PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("停靠中...")); - PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("请等待 ...")); //"Please wait..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入并单击")); //"Insert and Click" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("请等待 ...")); // "Please wait..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入并单击")); // "Insert and Click" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("按下加热")); PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加热中 ...")); // "Heating..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); //"Ejecting..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("装载中 ...")); //"Loading..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); // "Ejecting..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("装载中 ...")); // "Loading..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("清除中 ...")); // "Purging..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("按下完成")); - PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("恢复中 ...")); //"Resuming..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("恢复中 ...")); // "Resuming..." #endif PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("TMC驱动器"); PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("驱动电流"); @@ -605,6 +620,9 @@ namespace Language_zh_CN { PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A; PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B; PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C; + PROGMEM Language_Str MSG_BACKLASH_I = LCD_STR_I; + PROGMEM Language_Str MSG_BACKLASH_J = LCD_STR_J; + PROGMEM Language_Str MSG_BACKLASH_K = LCD_STR_K; PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("校正"); PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("平滑的"); diff --git a/Marlin/src/lcd/language/language_zh_TW.h b/Marlin/src/lcd/language/language_zh_TW.h index f162536132bd..2c7d1bf69ff4 100644 --- a/Marlin/src/lcd/language/language_zh_TW.h +++ b/Marlin/src/lcd/language/language_zh_TW.h @@ -33,84 +33,84 @@ namespace Language_zh_TW { constexpr uint8_t CHARSIZE = 3; PROGMEM Language_Str LANGUAGE = _UxGT("Traditional Chinese"); - PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就緒."); //" ready." + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就緒."); // " ready." PROGMEM Language_Str MSG_MARLIN = _UxGT("Marlin"); - PROGMEM Language_Str MSG_YES = _UxGT("是"); //"YES" - PROGMEM Language_Str MSG_NO = _UxGT("否"); //"NO" + PROGMEM Language_Str MSG_YES = _UxGT("是"); // "YES" + PROGMEM Language_Str MSG_NO = _UxGT("否"); // "NO" PROGMEM Language_Str MSG_BACK = _UxGT("返回"); // "Back" - PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("正在中止..."); //"Aborting..." - PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("記憶卡已插入"); //"Card inserted" - PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("記憶卡被拔出"); //"Card removed" - PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("等待記憶卡"); //"Waiting for media" + PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("正在中止..."); // "Aborting..." + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("記憶卡已插入"); // "Card inserted" + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("記憶卡被拔出"); // "Card removed" + PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("等待記憶卡"); // "Waiting for media" PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("記憶卡讀取錯誤"); //"Media read error" - PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB裝置已移除"); //"USB device removed" - PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB啟動失敗"); //"USB start failed" - PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("擋塊"); //"Endstops" // Max length 8 characters - PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("軟體擋塊"); //"Soft Endstops" - PROGMEM Language_Str MSG_MAIN = _UxGT("主選單"); //"Main" - PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("進階設置"); //"Advanced Settings" + PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB裝置已移除"); // "USB device removed" + PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB啟動失敗"); // "USB start failed" + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("擋塊"); // "Endstops" // Max length 8 characters + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("軟體擋塊"); // "Soft Endstops" + PROGMEM Language_Str MSG_MAIN = _UxGT("主選單"); // "Main" + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("進階設置"); // "Advanced Settings" PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("設置"); //Configuration - PROGMEM Language_Str MSG_RUN_AUTO_FILES = _UxGT("自動開始"); //"Autostart" - PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("關閉步進馬達"); //"Disable steppers" + PROGMEM Language_Str MSG_RUN_AUTO_FILES = _UxGT("自動開始"); // "Autostart" + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("關閉步進馬達"); // "Disable steppers" PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("除錯選單"); // "Debug Menu" PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("進度條測試"); // "Progress Bar Test" - PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("自動回原點"); //"Auto home" - PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("回X原點"); //"Home X" - PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("回Y原點"); //"Home Y" - PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("回Z原點"); //"Home Z" - PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("自動Z對齊"); //"Auto Z-Align" - PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("平台調平XYZ歸原點"); //"Homing XYZ" - PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("單擊開始熱床調平"); //"Click to Begin" - PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("下個熱床調平點"); //"Next Point" - PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("完成熱床調平"); //"Leveling Done!" + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("自動回原點"); // "Auto home" + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("回X原點"); // "Home X" + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("回Y原點"); // "Home Y" + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("回Z原點"); // "Home Z" + PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("自動Z對齊"); // "Auto Z-Align" + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("平台調平XYZ歸原點"); // "Homing XYZ" + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("單擊開始熱床調平"); // "Click to Begin" + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("下個熱床調平點"); // "Next Point" + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("完成熱床調平"); // "Leveling Done!" PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("淡出高度"); // "Fade Height" - PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("設置原點偏移"); //"Set home offsets" - PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("偏移已啟用"); //"Offsets applied" - PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("設置原點"); //"Set origin" + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("設置原點偏移"); // "Set home offsets" + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("偏移已啟用"); // "Offsets applied" + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("設置原點"); // "Set origin" #if PREHEAT_COUNT - PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("預熱 ") PREHEAT_1_LABEL; //"Preheat PREHEAT_1_LABEL" - PROGMEM Language_Str MSG_PREHEAT_1_H = _UxGT("預熱 ") PREHEAT_1_LABEL " ~"; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("預熱 ") PREHEAT_1_LABEL; // "Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H = _UxGT("預熱 ") PREHEAT_1_LABEL " ~"; // "Preheat PREHEAT_1_LABEL" PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_1_END_E = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ~"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 全部"); //MSG_PREHEAT_1 " All" PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 熱床"); //MSG_PREHEAT_1 " Bed" PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 設置"); //MSG_PREHEAT_1 " conf" - PROGMEM Language_Str MSG_PREHEAT_M = _UxGT("預熱 $"); //"Preheat PREHEAT_1_LABEL" - PROGMEM Language_Str MSG_PREHEAT_M_H = _UxGT("預熱 $ ~"); //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_M = _UxGT("預熱 $"); // "Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_M_H = _UxGT("預熱 $ ~"); // "Preheat PREHEAT_1_LABEL" PROGMEM Language_Str MSG_PREHEAT_M_END = _UxGT("預熱 $ 噴嘴"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_M_END_E = _UxGT("預熱 $ 噴嘴 ~"); //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_M_ALL = _UxGT("預熱 $ 全部"); //MSG_PREHEAT_1 " All" PROGMEM Language_Str MSG_PREHEAT_M_BEDONLY = _UxGT("預熱 $ 熱床"); //MSG_PREHEAT_1 " Bed" PROGMEM Language_Str MSG_PREHEAT_M_SETTINGS = _UxGT("預熱 $ 設置"); //MSG_PREHEAT_1 " conf" #endif - PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("自定預熱"); //"Preheat Custom" - PROGMEM Language_Str MSG_COOLDOWN = _UxGT("降溫"); //"Cooldown" - PROGMEM Language_Str MSG_LASER_MENU = _UxGT("激光控制"); //"Laser Control" - PROGMEM Language_Str MSG_LASER_POWER = _UxGT("激光電源"); //"Laser Power" - PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("主軸控告制"); //"Spindle Control" - PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("主軸電源"); //"Spindle Power" - PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("主軸反轉"); //"Spindle Reverse" - PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("電源打開"); //"Switch power on" - PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("電源關閉"); //"Switch power off" - PROGMEM Language_Str MSG_EXTRUDE = _UxGT("擠出"); //"Extrude" - PROGMEM Language_Str MSG_RETRACT = _UxGT("回縮"); //"Retract" - PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("移動軸"); //"Move axis" - PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("調平熱床"); //"Bed leveling" - PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("調平熱床"); //"Level bed" + PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("自定預熱"); // "Preheat Custom" + PROGMEM Language_Str MSG_COOLDOWN = _UxGT("降溫"); // "Cooldown" + PROGMEM Language_Str MSG_LASER_MENU = _UxGT("激光控制"); // "Laser Control" + PROGMEM Language_Str MSG_LASER_POWER = _UxGT("激光電源"); // "Laser Power" + PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("主軸控告制"); // "Spindle Control" + PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("主軸電源"); // "Spindle Power" + PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("主軸反轉"); // "Spindle Reverse" + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("電源打開"); // "Switch power on" + PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("電源關閉"); // "Switch power off" + PROGMEM Language_Str MSG_EXTRUDE = _UxGT("擠出"); // "Extrude" + PROGMEM Language_Str MSG_RETRACT = _UxGT("回縮"); // "Retract" + PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("移動軸"); // "Move axis" + PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("調平熱床"); // "Bed leveling" + PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("調平熱床"); // "Level bed" PROGMEM Language_Str MSG_BED_TRAMMING = _UxGT("調平邊角"); // "Bed Tramming" PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("下個邊角"); // "Next corner" - PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("網格編輯器"); //"Mesh Editor" + PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("網格編輯器"); // "Mesh Editor" PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("編輯網格"); // "Edit Mesh" PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("網格編輯已停止"); // "Mesh Editing Stopped" - PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("探測點"); //"Probing Point" - PROGMEM Language_Str MSG_MESH_X = _UxGT("索引 X"); //"Index X" - PROGMEM Language_Str MSG_MESH_Y = _UxGT("索引 Y"); //"Index Y" - PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Z 值"); //"Z Value" + PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("探測點"); // "Probing Point" + PROGMEM Language_Str MSG_MESH_X = _UxGT("索引 X"); // "Index X" + PROGMEM Language_Str MSG_MESH_Y = _UxGT("索引 Y"); // "Index Y" + PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Z 值"); // "Z Value" PROGMEM Language_Str MSG_CUSTOM_COMMANDS = _UxGT("自定命令"); // "Custom Commands" - PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 探測測試"); //"M48 Probe Test" - PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 探測點"); //"M48 Point" - PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("偏差"); //"Deviation" + PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 探測測試"); // "M48 Probe Test" + PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 探測點"); // "M48 Point" + PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("偏差"); // "Deviation" PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX Mode"); PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Tool Offsets"); PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park"); @@ -123,7 +123,7 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("執行G29"); // "Doing G29" PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools" PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("統一熱床調平(UBL)"); // "Unified Bed Leveling" - PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("傾斜點"); //"Tilting Point" + PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("傾斜點"); // "Tilting Point" PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("手工建網"); // "Manually Build Mesh" PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("放置墊片並測量"); // "Place shim & measure" PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("測量"); // "Measure" @@ -132,9 +132,9 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("啟動UBL"); // "Activate UBL" PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("關閉UBL"); // "Deactivate UBL" PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("置設熱床溫度"); // "Bed Temp" - PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("置設熱床溫度"); //"Bed Temp") + PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("置設熱床溫度"); // "Bed Temp") PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("置設噴嘴溫度"); // "Hotend Temp" - PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("熱端溫度"); //"Hotend Temp" + PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("熱端溫度"); // "Hotend Temp" PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("網格編輯"); // "Mesh Edit" PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("編輯客戶網格"); // "Edit Custom Mesh" PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("細調網格"); // "Fine Tuning Mesh" @@ -150,13 +150,13 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("高度合計"); // "Height Amount" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("批准網格"); // "Validate Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("批准客戶網格"); // "Validate Custom Mesh" - PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 加熱熱床"); //"G26 Heating Bed" + PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 加熱熱床"); // "G26 Heating Bed" PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 加熱噴嘴"); //"G26 Heating Nozzle" - PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("手動填裝"); //"Manual priming..." - PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("固定距離填裝"); //"Fixed Length Prime" - PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("完成填裝"); //"Done Priming" - PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26已取消"); //"G26 Canceled" - PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("離開 G26"); //"Leaving G26" + PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("手動填裝"); // "Manual priming..." + PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("固定距離填裝"); // "Fixed Length Prime" + PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("完成填裝"); // "Done Priming" + PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26已取消"); // "G26 Canceled" + PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("離開 G26"); // "Leaving G26" PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("繼續熱床網格"); // "Continue Bed Mesh" PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("網格調平"); // "Mesh Leveling" PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("三點調平"); // "3-Point Leveling" @@ -186,7 +186,7 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("沒有存儲"); // "No storage" PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("錯誤: UBL保存"); // "Err: UBL Save" PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("錯誤: UBL還原"); // "Err: UBL Restore" - PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-偏移:"); //"Z-Offset: " + PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-偏移:"); // "Z-Offset: " PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z偏移已停止"); // "Z-Offset Stopped" PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("一步步UBL"); // "Step-By-Step UBL" PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1. 創設冷網格"); @@ -218,148 +218,160 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_MOVING = _UxGT("移動 ..."); // "Moving...") PROGMEM Language_Str MSG_FREE_XY = _UxGT("釋放 XY"); // "Free XY") - PROGMEM Language_Str MSG_MOVE_X = _UxGT("移動X"); //"Move X" - PROGMEM Language_Str MSG_MOVE_Y = _UxGT("移動Y"); //"Move Y" - PROGMEM Language_Str MSG_MOVE_Z = _UxGT("移動Z"); //"Move Z" - PROGMEM Language_Str MSG_MOVE_E = _UxGT("擠出機"); //"Extruder" - PROGMEM Language_Str MSG_MOVE_EN = _UxGT("擠出機 *"); //"Extruder *" - PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("噴嘴溫度不夠"); //"Hotend too cold" - PROGMEM Language_Str MSG_MOVE_N_MM = _UxGT("移動 %s mm"); //"Move 0.025mm" - PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移動 0.1 mm"); //"Move 0.1mm" - PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移動 1 mm"); //"Move 1mm" - PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移動 10 mm"); //"Move 10mm" - PROGMEM Language_Str MSG_MOVE_100MM = _UxGT("移動 100 mm"); //"Move 100mm" - PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); //"Speed" - PROGMEM Language_Str MSG_BED_Z = _UxGT("熱床Z"); //"Bed Z" - PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴"); //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_MOVE_X = _UxGT("移動X"); // "Move X" + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("移動Y"); // "Move Y" + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("移動Z"); // "Move Z" + PROGMEM Language_Str MSG_MOVE_E = _UxGT("擠出機"); // "Extruder" + PROGMEM Language_Str MSG_MOVE_EN = _UxGT("擠出機 *"); // "Extruder *" + PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("噴嘴溫度不夠"); // "Hotend too cold" + PROGMEM Language_Str MSG_MOVE_N_MM = _UxGT("移動 %s mm"); // "Move 0.025mm" + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移動 0.1 mm"); // "Move 0.1mm" + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移動 1 mm"); // "Move 1mm" + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移動 10 mm"); // "Move 10mm" + PROGMEM Language_Str MSG_MOVE_100MM = _UxGT("移動 100 mm"); // "Move 100mm" + PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); // "Speed" + PROGMEM Language_Str MSG_BED_Z = _UxGT("熱床Z"); // "Bed Z" + PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴"); // "Nozzle" 噴嘴 PROGMEM Language_Str MSG_NOZZLE_N = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ~"); - PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 熱床"); //"Bed" + PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 熱床"); // "Bed" PROGMEM Language_Str MSG_CHAMBER = _UxGT("Enclosure"); - PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("風扇速率"); //"Fan speed" + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("風扇速率"); // "Fan speed" PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("風扇速率 ="); PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Stored Fan ="); PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("額外風扇速率"); // "Extra fan speed" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("額外風扇速率 ="); PROGMEM Language_Str MSG_FLOW = _UxGT("擠出速率"); - PROGMEM Language_Str MSG_FLOW_N = _UxGT("擠出速率 ~"); //"Flow" - PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control" - PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); //" " LCD_STR_THERMOMETER " Min" - PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); //" " LCD_STR_THERMOMETER " Max" - PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 系數"); //" " LCD_STR_THERMOMETER " Fact" - PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("自動控溫"); //"Autotemp" - PROGMEM Language_Str MSG_LCD_ON = _UxGT("開 "); //"On" - PROGMEM Language_Str MSG_LCD_OFF = _UxGT("關 "); //"Off" + PROGMEM Language_Str MSG_FLOW_N = _UxGT("擠出速率 ~"); // "Flow" + PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); // "Control" + PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); // " " LCD_STR_THERMOMETER " Min" + PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); // " " LCD_STR_THERMOMETER " Max" + PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 系數"); // " " LCD_STR_THERMOMETER " Fact" + PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("自動控溫"); // "Autotemp" + PROGMEM Language_Str MSG_LCD_ON = _UxGT("開 "); // "On" + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("關 "); // "Off" - PROGMEM Language_Str MSG_SELECT = _UxGT("選擇"); //"Select" + PROGMEM Language_Str MSG_SELECT = _UxGT("選擇"); // "Select" PROGMEM Language_Str MSG_SELECT_E = _UxGT("選擇 *"); - PROGMEM Language_Str MSG_ACC = _UxGT("加速度"); //"Accel" acceleration - PROGMEM Language_Str MSG_JERK = _UxGT("抖動速率"); //"Jerk" - PROGMEM Language_Str MSG_VA_JERK = _UxGT("軸抖動速率") LCD_STR_A; //"Va-jerk" - PROGMEM Language_Str MSG_VB_JERK = _UxGT("軸抖動速率") LCD_STR_B; //"Vb-jerk" - PROGMEM Language_Str MSG_VC_JERK = _UxGT("軸抖動速率") LCD_STR_C; //"Vc-jerk" - PROGMEM Language_Str MSG_VE_JERK = _UxGT("擠出機抖動速率"); //"Ve-jerk" + PROGMEM Language_Str MSG_ACC = _UxGT("加速度"); // "Accel" acceleration + PROGMEM Language_Str MSG_JERK = _UxGT("抖動速率"); // "Jerk" + PROGMEM Language_Str MSG_VA_JERK = _UxGT("軸抖動速率") LCD_STR_A; // "Va-jerk" + PROGMEM Language_Str MSG_VB_JERK = _UxGT("軸抖動速率") LCD_STR_B; + PROGMEM Language_Str MSG_VC_JERK = _UxGT("軸抖動速率") LCD_STR_C; + PROGMEM Language_Str MSG_VI_JERK = _UxGT("軸抖動速率") LCD_STR_I; + PROGMEM Language_Str MSG_VJ_JERK = _UxGT("軸抖動速率") LCD_STR_J; + PROGMEM Language_Str MSG_VK_JERK = _UxGT("軸抖動速率") LCD_STR_K; + PROGMEM Language_Str MSG_VE_JERK = _UxGT("擠出機抖動速率"); PROGMEM Language_Str MSG_VELOCITY = _UxGT("速度"); // "Velocity" - PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大進料速率") LCD_STR_A; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大進料速率") LCD_STR_A; // "Vmax " max_feedrate_mm_s PROGMEM Language_Str MSG_VMAX_B = _UxGT("最大進料速率") LCD_STR_B; PROGMEM Language_Str MSG_VMAX_C = _UxGT("最大進料速率") LCD_STR_C; + PROGMEM Language_Str MSG_VMAX_I = _UxGT("最大進料速率") LCD_STR_I; + PROGMEM Language_Str MSG_VMAX_J = _UxGT("最大進料速率") LCD_STR_J; + PROGMEM Language_Str MSG_VMAX_K = _UxGT("最大進料速率") LCD_STR_K; PROGMEM Language_Str MSG_VMAX_E = _UxGT("最大進料速率") LCD_STR_E; - PROGMEM Language_Str MSG_VMAX_EN = _UxGT("最大進料速率 *"); //"Vmax " max_feedrate_mm_s - PROGMEM Language_Str MSG_VMIN = _UxGT("最小進料速率"); //"Vmin" min_feedrate_mm_s - PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移動速率"); //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move + PROGMEM Language_Str MSG_VMAX_EN = _UxGT("最大進料速率 *"); // "Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMIN = _UxGT("最小進料速率"); // "Vmin" min_feedrate_mm_s + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移動速率"); // "VTrav min" min_travel_feedrate_mm_s, (target) speed of the move PROGMEM Language_Str MSG_ACCELERATION = _UxGT("加速度"); // "Acceleration" - PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大列印加速度") LCD_STR_A; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大列印加速度") LCD_STR_A; // "Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves PROGMEM Language_Str MSG_AMAX_B = _UxGT("最大列印加速度") LCD_STR_B; PROGMEM Language_Str MSG_AMAX_C = _UxGT("最大列印加速度") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_I = _UxGT("最大列印加速度") LCD_STR_I; + PROGMEM Language_Str MSG_AMAX_J = _UxGT("最大列印加速度") LCD_STR_J; + PROGMEM Language_Str MSG_AMAX_K = _UxGT("最大列印加速度") LCD_STR_K; PROGMEM Language_Str MSG_AMAX_E = _UxGT("最大列印加速度") LCD_STR_E; - PROGMEM Language_Str MSG_AMAX_EN = _UxGT("最大列印加速度 *"); //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves - PROGMEM Language_Str MSG_A_RETRACT = _UxGT("回縮加速度"); //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts - PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("非列印移動加速度"); //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves - PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("軸步數/mm"); //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 - PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("軸步數/mm"); //"Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92 - PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("軸步數/mm"); - PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("軸步數/mm"); - PROGMEM Language_Str MSG_E_STEPS = _UxGT("擠出機步數/mm"); //"Esteps/mm" + PROGMEM Language_Str MSG_AMAX_EN = _UxGT("最大列印加速度 *"); // "Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("回縮加速度"); // "A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("非列印移動加速度"); // "A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves + PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("軸步數/mm"); // "Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" 軸步數/mm"); // "Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92 + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" 軸步數/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" 軸步數/mm"); + PROGMEM Language_Str MSG_I_STEPS = LCD_STR_I _UxGT(" 軸步數/mm"); + PROGMEM Language_Str MSG_J_STEPS = LCD_STR_J _UxGT(" 軸步數/mm"); + PROGMEM Language_Str MSG_K_STEPS = LCD_STR_K _UxGT(" 軸步數/mm"); + PROGMEM Language_Str MSG_E_STEPS = _UxGT("擠出機步數/mm"); // "Esteps/mm" PROGMEM Language_Str MSG_EN_STEPS = _UxGT("擠出機~步數/mm"); - PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("溫度"); //"Temperature" - PROGMEM Language_Str MSG_MOTION = _UxGT("運作"); //"Motion" - PROGMEM Language_Str MSG_FILAMENT = _UxGT("絲料測容"); //"Filament" menu_control_volumetric - PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("測容積mm") SUPERSCRIPT_THREE; //"E in mm3" volumetric_enabled - PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("絲料直徑"); //"Fil. Dia." + PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("溫度"); // "Temperature" + PROGMEM Language_Str MSG_MOTION = _UxGT("運作"); // "Motion" + PROGMEM Language_Str MSG_FILAMENT = _UxGT("絲料測容"); // "Filament" menu_control_volumetric + PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("測容積mm") SUPERSCRIPT_THREE; // "E in mm3" volumetric_enabled + PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("絲料直徑"); // "Fil. Dia." PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("絲料直徑 *"); PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("卸載 mm"); // "Unload mm" PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("装載 mm"); // "Load mm" PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Advance K"); PROGMEM Language_Str MSG_ADVANCE_K_E = _UxGT("Advance K *"); - PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD對比度"); //"LCD contrast" - PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存設置"); //"Store memory" - PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("載入設置"); //"Load memory" - PROGMEM Language_Str MSG_RESTORE_DEFAULTS = _UxGT("恢復安全值"); //"Restore failsafe" + PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD對比度"); // "LCD contrast" + PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存設置"); // "Store memory" + PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("載入設置"); // "Load memory" + PROGMEM Language_Str MSG_RESTORE_DEFAULTS = _UxGT("恢復安全值"); // "Restore failsafe" PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("初始化設置"); // "Initialize EEPROM" - PROGMEM Language_Str MSG_ERR_EEPROM_CRC = _UxGT("錯誤: EEPROM CRC"); //"Err: EEPROM CRC" - PROGMEM Language_Str MSG_ERR_EEPROM_INDEX = _UxGT("錯誤: EEPROM Index"); //"Err: EEPROM Index" - PROGMEM Language_Str MSG_ERR_EEPROM_VERSION = _UxGT("錯誤: EEPROM Version"); //"EEPROM Version" - PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("媒體更新"); //"Media Update" - PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("重置打印機"); //"Reset Printer - PROGMEM Language_Str MSG_REFRESH = _UxGT("刷新"); //"Refresh" - PROGMEM Language_Str MSG_INFO_SCREEN = _UxGT("資訊界面"); //"Info screen" - PROGMEM Language_Str MSG_PREPARE = _UxGT("準備"); //"Prepare" - PROGMEM Language_Str MSG_TUNE = _UxGT("調整"); //"Tune" - PROGMEM Language_Str MSG_START_PRINT = _UxGT("開始列印"); //"Start Print" - PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("下一個"); //"Next" - PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("初始 "); //"Init" - PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("停止 "); //"Stop" - PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("列印 "); //"Print" - PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("復歸 "); //"Reset" - PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("放棄 "); //"Cancel" - PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("確認 "); //"Done" - PROGMEM Language_Str MSG_BUTTON_BACK = _UxGT("返回 "); //"Back" - PROGMEM Language_Str MSG_BUTTON_PROCEED = _UxGT("繼續 "); //"Proceed" - PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("暫停列印"); //"Pause print" - PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("恢復列印"); //"Resume print" - PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("停止列印"); //"Stop print" - PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("列印物件"); //"Printing Object" - PROGMEM Language_Str MSG_CANCEL_OBJECT = _UxGT("中止物件"); //"Cancel Object" - PROGMEM Language_Str MSG_CANCEL_OBJECT_N = _UxGT("中止物件 ="); //"Cancel Object =" - PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("中斷恢復"); //"Outage Recovery" - PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("從記憶卡上列印"); //"Print from SD" - PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("無記憶卡"); //"No SD card" - PROGMEM Language_Str MSG_DWELL = _UxGT("休眠 ..."); //"Sleep..." - PROGMEM Language_Str MSG_USERWAIT = _UxGT("點擊繼續 ..."); //"Click to resume..." + PROGMEM Language_Str MSG_ERR_EEPROM_CRC = _UxGT("錯誤: EEPROM CRC"); // "Err: EEPROM CRC" + PROGMEM Language_Str MSG_ERR_EEPROM_INDEX = _UxGT("錯誤: EEPROM Index"); // "Err: EEPROM Index" + PROGMEM Language_Str MSG_ERR_EEPROM_VERSION = _UxGT("錯誤: EEPROM Version"); // "EEPROM Version" + PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("媒體更新"); // "Media Update" + PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("重置打印機"); // "Reset Printer + PROGMEM Language_Str MSG_REFRESH = _UxGT("刷新"); // "Refresh" + PROGMEM Language_Str MSG_INFO_SCREEN = _UxGT("資訊界面"); // "Info screen" + PROGMEM Language_Str MSG_PREPARE = _UxGT("準備"); // "Prepare" + PROGMEM Language_Str MSG_TUNE = _UxGT("調整"); // "Tune" + PROGMEM Language_Str MSG_START_PRINT = _UxGT("開始列印"); // "Start Print" + PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("下一個"); // "Next" + PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("初始 "); // "Init" + PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("停止 "); // "Stop" + PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("列印 "); // "Print" + PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("復歸 "); // "Reset" + PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("放棄 "); // "Cancel" + PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("確認 "); // "Done" + PROGMEM Language_Str MSG_BUTTON_BACK = _UxGT("返回 "); // "Back" + PROGMEM Language_Str MSG_BUTTON_PROCEED = _UxGT("繼續 "); // "Proceed" + PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("暫停列印"); // "Pause print" + PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("恢復列印"); // "Resume print" + PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("停止列印"); // "Stop print" + PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("列印物件"); // "Printing Object" + PROGMEM Language_Str MSG_CANCEL_OBJECT = _UxGT("中止物件"); // "Cancel Object" + PROGMEM Language_Str MSG_CANCEL_OBJECT_N = _UxGT("中止物件 ="); // "Cancel Object =" + PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("中斷恢復"); // "Outage Recovery" + PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("從記憶卡上列印"); // "Print from SD" + PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("無記憶卡"); // "No SD card" + PROGMEM Language_Str MSG_DWELL = _UxGT("休眠 ..."); // "Sleep..." + PROGMEM Language_Str MSG_USERWAIT = _UxGT("點擊繼續 ..."); // "Click to resume..." PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("列印已暫停"); // "Print paused" - PROGMEM Language_Str MSG_PRINTING = _UxGT("列印中 ..."); //"Printing..." - PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("已取消列印"); //"Print aborted" - PROGMEM Language_Str MSG_NO_MOVE = _UxGT("無移動"); //"No move." - PROGMEM Language_Str MSG_KILLED = _UxGT("已砍掉"); //"KILLED. " - PROGMEM Language_Str MSG_STOPPED = _UxGT("已停止"); //"STOPPED. " - PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("回縮長度mm"); //"Retract mm" retract_length, retract length (positive mm) - PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("換手回抽長度mm"); //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change - PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回縮速率mm/s"); //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) - PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm"); //"Hop mm" retract_zraise, retract Z-lift - PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("回縮恢復長度mm"); //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) - PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("換手回縮恢復長度mm"); //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change) - PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("回縮恢復後進料速率mm/s"); //"Unretract V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) + PROGMEM Language_Str MSG_PRINTING = _UxGT("列印中 ..."); // "Printing..." + PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("已取消列印"); // "Print aborted" + PROGMEM Language_Str MSG_NO_MOVE = _UxGT("無移動"); // "No move." + PROGMEM Language_Str MSG_KILLED = _UxGT("已砍掉"); // "KILLED. " + PROGMEM Language_Str MSG_STOPPED = _UxGT("已停止"); // "STOPPED. " + PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("回縮長度mm"); // "Retract mm" retract_length, retract length (positive mm) + PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("換手回抽長度mm"); // "Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change + PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回縮速率mm/s"); // "Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) + PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm"); // "Hop mm" retract_zraise, retract Z-lift + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("回縮恢復長度mm"); // "UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("換手回縮恢復長度mm"); // "S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change) + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("回縮恢復後進料速率mm/s"); // "Unretract V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V"); // "S UnRet V" - PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("自動回縮"); //"Auto-Retract" autoretract_enabled, - PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("交換長度"); //"Swap Length" - PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("清除長度"); //"Purge Length" + PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("自動回縮"); // "Auto-Retract" autoretract_enabled, + PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("交換長度"); // "Swap Length" + PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("清除長度"); // "Purge Length" PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("交換工具"); //"Tool Change" - PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z軸提昇"); //"Z Raise" - PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("最高速度"); //"Prime Speed" - PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("收回速度"); //"Retract Speed" + PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z軸提昇"); // "Z Raise" + PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("最高速度"); // "Prime Speed" + PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("收回速度"); // "Retract Speed" PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("噴嘴待機"); //"Nozzle Standby" - PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("更換絲料"); //"Change filament" + PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("更換絲料"); // "Change filament" PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("更換絲料 *"); PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("裝載絲料"); // "Load filament" PROGMEM Language_Str MSG_FILAMENTLOAD_E = _UxGT("裝載絲料 *"); PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("卸載絲料"); // "Unload filament" PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("卸載絲料 *"); // "Unload filament" PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("卸載全部"); // "Unload All" - PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("初始化記憶卡"); //"Init. SD card" - PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("連接記憶卡"); //"Attach Media - PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更換記憶卡"); //"Change SD card" - PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("釋放媒體"); //"Release Media" - PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探針在熱床之外"); //"Z probe out. bed" Z probe is not within the physical limits + PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("初始化記憶卡"); // "Init. SD card" + PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("連接記憶卡"); // "Attach Media + PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更換記憶卡"); // "Change SD card" + PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("釋放媒體"); // "Release Media" + PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探針在熱床之外"); // "Z probe out. bed" Z probe is not within the physical limits PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("偏斜因數"); // "Skew Factor" PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch 自檢"); // "BLTouch Self-Test" @@ -367,39 +379,39 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("裝載BLTouch"); // "Stow BLTouch" PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("部署BLTouch"); // "Deploy BLTouch" - PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("歸位 %s%s%s 先"); //"Home ... first" + PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("歸位 %s%s%s 先"); // "Home ... first" PROGMEM Language_Str MSG_ZPROBE_OFFSETS = _UxGT("探針偏移"); //Probe Offsets PROGMEM Language_Str MSG_ZPROBE_XOFFSET = _UxGT("探針X偏移量"); //Probe X Offset PROGMEM Language_Str MSG_ZPROBE_YOFFSET = _UxGT("探針Y偏移量"); //Probe Y Offset PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("探針Z偏移量"); //Probe Z Offset - PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("微量調整X軸"); //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts - PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("微量調整Y軸"); //"Babystep Y" - PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("微量調整Z軸"); //"Babystep Z" - PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("總計"); //"Total" - PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("擋塊終止"); //"Endstop abort" - PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("加熱失敗"); //"Heating failed" - PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("錯誤:冗餘溫度"); //"Err: REDUNDANT TEMP" - PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("溫度失控"); //"THERMAL RUNAWAY" - PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("熱床溫度失控"); //"BED THERMAL RUNAWAY" - PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("機箱溫度失控"); //"CHAMBER T. RUNAWAY" - PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("錯誤:最高溫度"); //"Err: MAXTEMP" - PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("錯誤:最低溫度"); //"Err: MINTEMP" - PROGMEM Language_Str MSG_HALTED = _UxGT("印表機停機"); //"PRINTER HALTED" - PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("請重置"); //"Please reset" - PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("天"); //"d" // One character only - PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("時"); //"h" // One character only - PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("分"); //"m" // One character only - PROGMEM Language_Str MSG_HEATING = _UxGT("加熱中 ..."); //"Heating..." - PROGMEM Language_Str MSG_COOLING = _UxGT("冷卻中 ..."); //"Cooling..." - PROGMEM Language_Str MSG_BED_HEATING = _UxGT("加熱熱床中 ..."); //"Bed Heating..." - PROGMEM Language_Str MSG_BED_COOLING = _UxGT("熱床冷卻中 ..."); //"Bed Cooling..." - PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("機箱加熱中 .."); //"Chamber Heating..." + PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("微量調整X軸"); // "Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts + PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("微量調整Y軸"); // "Babystep Y" + PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("微量調整Z軸"); // "Babystep Z" + PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("總計"); // "Total" + PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("擋塊終止"); // "Endstop abort" + PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("加熱失敗"); // "Heating failed" + PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("錯誤:冗餘溫度"); // "Err: REDUNDANT TEMP" + PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("溫度失控"); // "THERMAL RUNAWAY" + PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("熱床溫度失控"); // "BED THERMAL RUNAWAY" + PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("機箱溫度失控"); // "CHAMBER T. RUNAWAY" + PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("錯誤:最高溫度"); // "Err: MAXTEMP" + PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("錯誤:最低溫度"); // "Err: MINTEMP" + PROGMEM Language_Str MSG_HALTED = _UxGT("印表機停機"); // "PRINTER HALTED" + PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("請重置"); // "Please reset" + PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("天"); // "d" // One character only + PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("時"); // "h" // One character only + PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("分"); // "m" // One character only + PROGMEM Language_Str MSG_HEATING = _UxGT("加熱中 ..."); // "Heating..." + PROGMEM Language_Str MSG_COOLING = _UxGT("冷卻中 ..."); // "Cooling..." + PROGMEM Language_Str MSG_BED_HEATING = _UxGT("加熱熱床中 ..."); // "Bed Heating..." + PROGMEM Language_Str MSG_BED_COOLING = _UxGT("熱床冷卻中 ..."); // "Bed Cooling..." + PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("機箱加熱中 .."); // "Chamber Heating..." PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("機箱冷卻中 ..."); //Chamber Cooling... - PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("⊿校準"); //"Delta Calibration" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("⊿校準X"); //"Calibrate X" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("⊿校準Y"); //"Calibrate Y" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("⊿校準Z"); //"Calibrate Z" - PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("⊿校準中心"); //"Calibrate Center" + PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("⊿校準"); // "Delta Calibration" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("⊿校準X"); // "Calibrate X" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("⊿校準Y"); // "Calibrate Y" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("⊿校準Z"); // "Calibrate Z" + PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("⊿校準中心"); // "Calibrate Center" PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("⊿設置"); // "Delta Settings" PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("⊿自動校準"); // "Auto Calibration" PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("設置⊿高度"); // "Set Delta Height" @@ -407,61 +419,63 @@ namespace Language_zh_TW { PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("⊿斜柱"); // "Diag Rod" PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("⊿高度"); // "Height" PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("⊿半徑"); // "Radius" - PROGMEM Language_Str MSG_INFO_MENU = _UxGT("關於印表機"); //"About Printer" - PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("印表機訊息"); //"Printer Info" + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("關於印表機"); // "About Printer" + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("印表機訊息"); // "Printer Info" PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("三點調平"); // "3-Point Leveling" PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("線性調平"); // "Linear Leveling" PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT(" 雙線性調平"); // "Bilinear Leveling" PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("統一熱床調平(UBL)"); // "Unified Bed Leveling" PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("網格調平"); // "Mesh Leveling" - PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("印表機統計"); //"Printer Stats" - PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("主板訊息"); //"Board Info" - PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("溫度計"); //"Thermistors" - PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT(" 擠出機"); //"Extruders" - PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("傳輸率"); //"Baud" - PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("協議"); //"Protocol" - PROGMEM Language_Str MSG_INFO_RUNAWAY_OFF = _UxGT("監測溫度失控:關"); //"Runaway Watch: OFF" - PROGMEM Language_Str MSG_INFO_RUNAWAY_ON = _UxGT("監測溫度失控:開"); //"Runaway Watch: ON" + PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("印表機統計"); // "Printer Stats" + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("主板訊息"); // "Board Info" + PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("溫度計"); // "Thermistors" + PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT(" 擠出機"); // "Extruders" + PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("傳輸率"); // "Baud" + PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("協議"); // "Protocol" + PROGMEM Language_Str MSG_INFO_RUNAWAY_OFF = _UxGT("監測溫度失控:關"); // "Runaway Watch: OFF" + PROGMEM Language_Str MSG_INFO_RUNAWAY_ON = _UxGT("監測溫度失控:開"); // "Runaway Watch: ON" PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("外殼燈"); // "Case light" PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("燈亮度"); // "Light BRIGHTNESS" PROGMEM Language_Str MSG_KILL_EXPECTED_PRINTER = _UxGT("打印機不正確"); // "The printer is incorrect" #if LCD_WIDTH >= 20 - PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("列印計數"); //"Print Count" - PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("已完成"); //"Completed" - PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("總列印時間"); //"Total print time" - PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最長工作時間"); //"Longest job time" - PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("總計擠出"); //"Extruded total" + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("列印計數"); // "Print Count" + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("已完成"); // "Completed" + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("總列印時間"); // "Total print time" + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最長工作時間"); // "Longest job time" + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("總計擠出"); // "Extruded total" #else - PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("列印數"); //"Prints" - PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成"); //"Completed" - PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("總共"); //"Total" - PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最長"); //"Longest" - PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("已擠出"); //"Extruded" + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("列印數"); // "Prints" + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成"); // "Completed" + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("總共"); // "Total" + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最長"); // "Longest" + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("已擠出"); // "Extruded" #endif - PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("最低溫度"); //"Min Temp" - PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高溫度"); //"Max Temp" - PROGMEM Language_Str MSG_INFO_PSU = _UxGT("電源供應"); //"Power Supply" + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("最低溫度"); // "Min Temp" + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高溫度"); // "Max Temp" + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("電源供應"); // "Power Supply" PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("驅動力度"); // "Drive Strength" - PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("驅動 %"); // "Driver %" - PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X 驅動 %"); //X Driver % - PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y 驅動 %"); //Y Driver % - PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z 驅動 %"); //Z Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_A = LCD_STR_A _UxGT(" 驅動 %"); // X Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_B = LCD_STR_B _UxGT(" 驅動 %"); // Y Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_C = LCD_STR_C _UxGT(" 驅動 %"); // Z Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_I = LCD_STR_I _UxGT(" 驅動 %"); // I Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_J = LCD_STR_J _UxGT(" 驅動 %"); // J Driver % + PROGMEM Language_Str MSG_DAC_PERCENT_K = LCD_STR_K _UxGT(" 驅動 %"); // K Driver % PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E 驅動 %"); //E Driver % - PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC連接錯誤"); //"TMC CONNECTION ERROR" + PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC連接錯誤"); // "TMC CONNECTION ERROR" PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驅動設置"); // "DAC EEPROM Write" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("更換絲料"); //"FILAMENT CHANGE" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("更換絲料"); // "FILAMENT CHANGE" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("列印已暫停"); // "PRINT PAUSED" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("裝載絲料"); // "LOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("卸載絲料"); // "UNLOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("恢複選項:"); // "RESUME OPTIONS:" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("清除更多"); // "Purge more" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("恢復列印"); //"Resume print" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("恢復列印"); // "Resume print" PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" 噴嘴: "); // " Nozzle: " - PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("斷絲偵測"); //"Runout Sensor" - PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("絲距離mm"); //"Runout Dist mm" + PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("斷絲偵測"); // "Runout Sensor" + PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("絲距離mm"); // "Runout Dist mm" PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("歸原位失敗"); // "Homing failed" PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("探針探測失敗"); // "Probing failed" @@ -471,28 +485,28 @@ namespace Language_zh_TW { // #if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("按下按鈕", "恢復列印")); //"Press Button to resume print" - PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("停車中 ...")); //"Parking..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("等待開始", "絲料", "變更")); //"Wait for start of the filament change" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("等待", "卸下絲料")); //"Wait for filament unload" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("插入絲料", "並按鍵", "繼續 ...")); //"Insert filament and press button to continue..." + PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("停車中 ...")); // "Parking..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("等待開始", "絲料", "變更")); // "Wait for start of the filament change" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("等待", "卸下絲料")); // "Wait for filament unload" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("插入絲料", "並按鍵", "繼續 ...")); // "Insert filament and press button to continue..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("按下按鈕", "加熱噴嘴.")); // "Press button to heat nozzle." PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("加熱噴嘴", "請等待 ...")); // "Heating nozzle Please wait..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("等待", "進料")); //"Wait for filament load" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("等待", "進料")); // "Wait for filament load" PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("等待", "絲料清除")); // "Wait for filament purge" PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("按下完成","絲料清除")); //"Press button to filament purge" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("等待列印", "恢復")); //"Wait for print to resume" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("等待列印", "恢復")); // "Wait for print to resume" #else // LCD_HEIGHT < 4 - PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("按下繼續..")); //"Click to continue" - PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("停車中 ...")); //"Parking..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("請等待 ...")); //"Please wait..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入並點擊")); //"Insert and Click" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("按下加熱..")); //"Click to heat" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加熱中 ...")); //"Heating..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); //"Ejecting..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("載入中 ...")); //"Loading..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("清除中 ...")); //"Purging..." - PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("按下完成..")); //"Click to finish" - PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("恢復中 ...")); //"Resuming..." + PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("按下繼續..")); // "Click to continue" + PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("停車中 ...")); // "Parking..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("請等待 ...")); // "Please wait..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入並點擊")); // "Insert and Click" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("按下加熱..")); // "Click to heat" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加熱中 ...")); // "Heating..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); // "Ejecting..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("載入中 ...")); // "Loading..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("清除中 ...")); // "Purging..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("按下完成..")); // "Click to finish" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("恢復中 ...")); // "Resuming..." #endif // LCD_HEIGHT < 4 } diff --git a/Marlin/src/lcd/lcdprint.cpp b/Marlin/src/lcd/lcdprint.cpp index eef27dbdb4bc..b2c939557d0f 100644 --- a/Marlin/src/lcd/lcdprint.cpp +++ b/Marlin/src/lcd/lcdprint.cpp @@ -26,7 +26,7 @@ #include "../inc/MarlinConfigPre.h" -#if HAS_WIRED_LCD && !HAS_GRAPHICAL_TFT +#if HAS_WIRED_LCD && !HAS_GRAPHICAL_TFT && !IS_DWIN_MARLINUI #include "marlinui.h" #include "lcdprint.h" diff --git a/Marlin/src/lcd/lcdprint.h b/Marlin/src/lcd/lcdprint.h index 8bfd72e9f520..f6ac818ae564 100644 --- a/Marlin/src/lcd/lcdprint.h +++ b/Marlin/src/lcd/lcdprint.h @@ -34,7 +34,21 @@ #include "../inc/MarlinConfig.h" -#if HAS_MARLINUI_U8GLIB +#if IS_DWIN_MARLINUI + + #include "e3v2/marlinui/marlinui_dwin.h" + + #define LCD_PIXEL_WIDTH DWIN_WIDTH + #define LCD_PIXEL_HEIGHT DWIN_HEIGHT + #define LCD_WIDTH ((LCD_PIXEL_WIDTH) / (MENU_FONT_WIDTH)) + #define LCD_HEIGHT ((LCD_PIXEL_HEIGHT) / (MENU_LINE_HEIGHT)) + + // The DWIN lcd_moveto function uses row / column, not pixels + #define LCD_COL_X(col) (col) + #define LCD_ROW_Y(row) (row) + #define LCD_COL_X_RJ(len) (LCD_WIDTH - LCD_COL_X(len)) + +#elif HAS_MARLINUI_U8GLIB #include "dogm/u8g_fontutf8.h" typedef u8g_uint_t lcd_uint_t; @@ -79,7 +93,6 @@ // Graphical LCD uses the menu font size for cursor positioning #define LCD_COL_X(col) (( (col)) * (MENU_FONT_WIDTH)) #define LCD_ROW_Y(row) ((1 + (row)) * (MENU_LINE_HEIGHT)) - #define LCD_COL_X_RJ(len) (LCD_WIDTH - LCD_COL_X(len)) #else @@ -99,7 +112,6 @@ // Character LCD uses direct cursor positioning #define LCD_COL_X(col) (col) #define LCD_ROW_Y(row) (row) - #define LCD_COL_X_RJ(len) (LCD_PIXEL_WIDTH - LCD_COL_X(len)) #endif @@ -107,6 +119,10 @@ #define MENU_LINE_HEIGHT MENU_FONT_HEIGHT #endif +#ifndef LCD_COL_X_RJ + #define LCD_COL_X_RJ(len) (LCD_PIXEL_WIDTH - LCD_COL_X(len)) +#endif + #define SETCURSOR(col, row) lcd_moveto(LCD_COL_X(col), LCD_ROW_Y(row)) #define SETCURSOR_RJ(len, row) lcd_moveto(LCD_COL_X_RJ(len), LCD_ROW_Y(row)) #define SETCURSOR_X(col) SETCURSOR(col, _lcdLineNr) diff --git a/Marlin/src/lcd/marlinui.cpp b/Marlin/src/lcd/marlinui.cpp index f4938722e3e2..1472f5c32aa5 100644 --- a/Marlin/src/lcd/marlinui.cpp +++ b/Marlin/src/lcd/marlinui.cpp @@ -202,6 +202,10 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; bool MarlinUI::drawing_screen, MarlinUI::first_page; // = false #endif + #if IS_DWIN_MARLINUI + bool MarlinUI::did_first_redraw; + #endif + // Encoder Handling #if HAS_ENCODER_ACTION uint32_t MarlinUI::encoderPosition; @@ -335,6 +339,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; col = (LCD_WIDTH - plen - slen) / 2; row = LCD_HEIGHT > 3 ? 1 : 0; } + if (LCD_HEIGHT >= 8) row = LCD_HEIGHT / 2 - 2; wrap_string_P(col, row, pref, true); if (string) { if (col) { col = 0; row++; } // Move to the start of the next line @@ -1073,6 +1078,9 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; run_current_screen(); + // Apply all DWIN drawing after processing + TERN_(IS_DWIN_MARLINUI, DWIN_UpdateLCD()); + #endif TERN_(HAS_LCD_MENU, lcd_clicked = false); diff --git a/Marlin/src/lcd/marlinui.h b/Marlin/src/lcd/marlinui.h index 9930796a01c8..edee8f0cc2d0 100644 --- a/Marlin/src/lcd/marlinui.h +++ b/Marlin/src/lcd/marlinui.h @@ -387,22 +387,22 @@ class MarlinUI { #endif #if HAS_MARLINUI_U8GLIB - static void set_font(const MarlinFont font_nr); + #elif IS_DWIN_MARLINUI + static void set_font(const uint8_t font_nr); + #endif - #else - + #if HAS_MARLINUI_HD44780 static void set_custom_characters(const HD44780CharSet screen_charset=CHARSET_INFO); + #endif - #if ENABLED(LCD_PROGRESS_BAR) - static millis_t progress_bar_ms; // Start time for the current progress bar cycle - static void draw_progress_bar(const uint8_t percent); - #if PROGRESS_MSG_EXPIRE > 0 - static millis_t expire_status_ms; // = 0 - FORCE_INLINE static void reset_progress_bar_timeout() { expire_status_ms = 0; } - #endif + #if ENABLED(LCD_PROGRESS_BAR) && !HAS_MARLINUI_U8GLIB + static millis_t progress_bar_ms; // Start time for the current progress bar cycle + static void draw_progress_bar(const uint8_t percent); + #if PROGRESS_MSG_EXPIRE > 0 + static millis_t expire_status_ms; // = 0 + FORCE_INLINE static void reset_progress_bar_timeout() { expire_status_ms = 0; } #endif - #endif static uint8_t lcd_status_update_delay; @@ -447,6 +447,10 @@ class MarlinUI { static constexpr bool drawing_screen = false, first_page = true; #endif + #if IS_DWIN_MARLINUI + static bool did_first_redraw; + #endif + static bool get_blink(); static void kill_screen(PGM_P const lcd_error, PGM_P const lcd_component); static void draw_kill_screen(); diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index 01c8bb80c0ef..dd52eb2b5b53 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -179,6 +179,8 @@ bool printer_busy() { void MarlinUI::goto_screen(screenFunc_t screen, const uint16_t encoder/*=0*/, const uint8_t top/*=0*/, const uint8_t items/*=0*/) { if (currentScreen != screen) { + TERN_(IS_DWIN_MARLINUI, did_first_redraw = false); + TERN_(HAS_TOUCH_BUTTONS, repeat_delay = BUTTON_DELAY_MENU); TERN_(LCD_SET_PROGRESS_MANUALLY, progress_reset()); diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index 28d377da0cf2..7b253ad0ee76 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -39,7 +39,7 @@ typedef void (*selectFunc_t)(); #define SS_INVERT 0x02 #define SS_DEFAULT SS_CENTER -#if HAS_MARLINUI_U8GLIB && EITHER(BABYSTEP_ZPROBE_GFX_OVERLAY, MESH_EDIT_GFX_OVERLAY) +#if EITHER(HAS_MARLINUI_U8GLIB, IS_DWIN_MARLINUI) && EITHER(BABYSTEP_ZPROBE_GFX_OVERLAY, MESH_EDIT_GFX_OVERLAY) void _lcd_zoffset_overlay_gfx(const_float_t zvalue); #endif diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index 4ae38edf24ce..8834ee6eac5f 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -68,7 +68,7 @@ void menu_backlash(); START_MENU(); BACK_ITEM(MSG_ADVANCED_SETTINGS); #define EDIT_DAC_PERCENT(A) EDIT_ITEM(uint8, MSG_DAC_PERCENT_##A, &driverPercent[_AXIS(A)], 0, 100, []{ stepper_dac.set_current_percents(driverPercent); }) - LOGICAL_AXIS_CODE(EDIT_DAC_PERCENT(E), EDIT_DAC_PERCENT(X), EDIT_DAC_PERCENT(Y), EDIT_DAC_PERCENT(Z), EDIT_DAC_PERCENT(I), EDIT_DAC_PERCENT(J), EDIT_DAC_PERCENT(K)); + LOGICAL_AXIS_CODE(EDIT_DAC_PERCENT(E), EDIT_DAC_PERCENT(A), EDIT_DAC_PERCENT(B), EDIT_DAC_PERCENT(C), EDIT_DAC_PERCENT(I), EDIT_DAC_PERCENT(J), EDIT_DAC_PERCENT(K)); ACTION_ITEM(MSG_DAC_EEPROM_WRITE, stepper_dac.commit_eeprom); END_MENU(); } @@ -569,9 +569,7 @@ void menu_advanced_settings() { SUBMENU(MSG_JERK, menu_advanced_jerk); #elif HAS_JUNCTION_DEVIATION EDIT_ITEM(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.001f, 0.3f - #if ENABLED(LIN_ADVANCE) - , planner.recalculate_max_e_jerk - #endif + OPTARG(LIN_ADVANCE, planner.recalculate_max_e_jerk) ); #endif diff --git a/Marlin/src/lcd/menu/menu_media.cpp b/Marlin/src/lcd/menu/menu_media.cpp index 8630f48b3736..1866426a6554 100644 --- a/Marlin/src/lcd/menu/menu_media.cpp +++ b/Marlin/src/lcd/menu/menu_media.cpp @@ -126,7 +126,7 @@ void menu_media_filelist() { #endif } else if (card.isMounted()) - ACTION_ITEM_P(PSTR(LCD_STR_FOLDER ".."), lcd_sd_updir); + ACTION_ITEM_P(PSTR(LCD_STR_FOLDER " .."), lcd_sd_updir); if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) { if (_menuLineNr == _thisItemNr) { diff --git a/Marlin/src/lcd/menu/menu_ubl.cpp b/Marlin/src/lcd/menu/menu_ubl.cpp index 467bd81acfc7..dae2c420471c 100644 --- a/Marlin/src/lcd/menu/menu_ubl.cpp +++ b/Marlin/src/lcd/menu/menu_ubl.cpp @@ -192,9 +192,7 @@ void _lcd_ubl_edit_mesh() { char ubl_lcd_gcode[20]; sprintf_P(ubl_lcd_gcode, PSTR("G28\nG26CPH%" PRIi16 TERN_(HAS_HEATED_BED, "B%" PRIi16)) , custom_hotend_temp - #if HAS_HEATED_BED - , custom_bed_temp - #endif + OPTARG(HAS_HEATED_BED, custom_bed_temp) ); queue.inject(ubl_lcd_gcode); } diff --git a/Marlin/src/lcd/tft_io/tft_io.cpp b/Marlin/src/lcd/tft_io/tft_io.cpp index 29c7da235c0e..ded711b57768 100644 --- a/Marlin/src/lcd/tft_io/tft_io.cpp +++ b/Marlin/src/lcd/tft_io/tft_io.cpp @@ -65,13 +65,13 @@ if (lcd_id != 0xFFFFFFFF) return; #if PIN_EXISTS(TFT_RESET) OUT_WRITE(TFT_RESET_PIN, HIGH); delay(10); - OUT_WRITE(TFT_RESET_PIN, LOW); + WRITE(TFT_RESET_PIN, LOW); delay(10); - OUT_WRITE(TFT_RESET_PIN, HIGH); + WRITE(TFT_RESET_PIN, HIGH); #endif #if PIN_EXISTS(TFT_BACKLIGHT) - OUT_WRITE(TFT_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT)); + WRITE(TFT_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT)); #endif // io.Init(); @@ -149,7 +149,7 @@ if (lcd_id != 0xFFFFFFFF) return; #endif #if PIN_EXISTS(TFT_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT) - OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); + WRITE(TFT_BACKLIGHT_PIN, HIGH); #endif } diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index 838605cd549f..eb6dc6597ce4 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -483,7 +483,7 @@ void do_blocking_move_to(LINEAR_AXIS_ARGS(const float), const_feedRate_t fr_mm_s DEBUG_SECTION(log_move, "do_blocking_move_to", DEBUGGING(LEVELING)); if (DEBUGGING(LEVELING)) DEBUG_XYZ("> ", LINEAR_AXIS_ARGS()); - const feedRate_t xy_feedrate = fr_mm_s ?: PLANNER_XY_FEEDRATE(); + const feedRate_t xy_feedrate = fr_mm_s ?: feedRate_t(XY_PROBE_FEEDRATE_MM_S); #if HAS_Z_AXIS const feedRate_t z_feedrate = fr_mm_s ?: homing_feedrate(Z_AXIS); diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index 7bf672a85d60..00173e9ad1f8 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -1388,9 +1388,7 @@ void Planner::check_axes_activity() { // Update Fan speeds // Only if synchronous M106/M107 is disabled // - #if HAS_TAIL_FAN_SPEED - sync_fan_speeds(tail_fan_speed); - #endif + TERN_(HAS_TAIL_FAN_SPEED, sync_fan_speeds(tail_fan_speed)); TERN_(AUTOTEMP, autotemp_task()); @@ -1585,11 +1583,7 @@ void Planner::check_axes_activity() { raw.z += ( #if ENABLED(MESH_BED_LEVELING) - mbl.get_z(raw - #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) - , fade_scaling_factor - #endif - ) + mbl.get_z(raw OPTARG(ENABLE_LEVELING_FADE_HEIGHT, fade_scaling_factor)) #elif ENABLED(AUTO_BED_LEVELING_UBL) fade_scaling_factor ? fade_scaling_factor * ubl.get_z_correction(raw) : 0.0 #elif ENABLED(AUTO_BED_LEVELING_BILINEAR) @@ -1622,11 +1616,7 @@ void Planner::check_axes_activity() { raw.z -= ( #if ENABLED(MESH_BED_LEVELING) - mbl.get_z(raw - #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) - , fade_scaling_factor - #endif - ) + mbl.get_z(raw OPTARG(ENABLE_LEVELING_FADE_HEIGHT, fade_scaling_factor)) #elif ENABLED(AUTO_BED_LEVELING_UBL) fade_scaling_factor ? fade_scaling_factor * ubl.get_z_correction(raw) : 0.0 #elif ENABLED(AUTO_BED_LEVELING_BILINEAR) @@ -1811,12 +1801,8 @@ bool Planner::_buffer_steps(const xyze_long_t &target // Fill the block with the specified movement if (!_populate_block(block, false, target - #if HAS_POSITION_FLOAT - , target_float - #endif - #if HAS_DIST_MM_ARG - , cart_dist_mm - #endif + OPTARG(HAS_POSITION_FLOAT, target_float) + OPTARG(HAS_DIST_MM_ARG, cart_dist_mm) , fr_mm_s, extruder, millimeters )) { // Movement was not queued, probably because it was too short. @@ -1975,9 +1961,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move, #endif #endif - #if HAS_EXTRUDERS - if (de < 0) SBI(dm, E_AXIS); - #endif + TERN_(HAS_EXTRUDERS, if (de < 0) SBI(dm, E_AXIS)); #if HAS_EXTRUDERS const float esteps_float = de * e_factor[extruder]; @@ -2002,15 +1986,15 @@ bool Planner::_populate_block(block_t * const block, bool split_move, // Number of steps for each axis // See https://www.corexy.com/theory.html #if CORE_IS_XY - block->steps.set(ABS(da + db), ABS(da - db), ABS(dc)); + block->steps.set(LINEAR_AXIS_LIST(ABS(da + db), ABS(da - db), ABS(dc), ABS(di), ABS(dj), ABS(dk))); #elif CORE_IS_XZ - block->steps.set(ABS(da + dc), ABS(db), ABS(da - dc)); + block->steps.set(LINEAR_AXIS_LIST(ABS(da + dc), ABS(db), ABS(da - dc), ABS(di), ABS(dj), ABS(dk))); #elif CORE_IS_YZ - block->steps.set(ABS(da), ABS(db + dc), ABS(db - dc)); + block->steps.set(LINEAR_AXIS_LIST(ABS(da), ABS(db + dc), ABS(db - dc), ABS(di), ABS(dj), ABS(dk))); #elif ENABLED(MARKFORGED_XY) - block->steps.set(ABS(da + db), ABS(db), ABS(dc)); + block->steps.set(LINEAR_AXIS_LIST(ABS(da + db), ABS(db), ABS(dc), ABS(di), ABS(dj), ABS(dk))); #elif IS_SCARA - block->steps.set(ABS(da), ABS(db), ABS(dc)); + block->steps.set(LINEAR_AXIS_LIST(ABS(da), ABS(db), ABS(dc), ABS(di), ABS(dj), ABS(dk))); #else // default non-h-bot planning block->steps.set(LINEAR_AXIS_LIST(ABS(da), ABS(db), ABS(dc), ABS(di), ABS(dj), ABS(dk))); @@ -2075,9 +2059,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move, ); #endif - #if HAS_EXTRUDERS - steps_dist_mm.e = esteps_float * steps_to_mm[E_AXIS_N(extruder)]; - #endif + TERN_(HAS_EXTRUDERS, steps_dist_mm.e = esteps_float * steps_to_mm[E_AXIS_N(extruder)]); TERN_(LCD_SHOW_E_TOTAL, e_move_accumulator += steps_dist_mm.e); @@ -2162,9 +2144,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move, block->e_to_p_pressure = baricuda_e_to_p_pressure; #endif - #if HAS_MULTI_EXTRUDER - block->extruder = extruder; - #endif + TERN_(HAS_MULTI_EXTRUDER, block->extruder = extruder); #if ENABLED(AUTO_POWER_CONTROL) if (LINEAR_AXIS_GANG( @@ -2208,6 +2188,17 @@ bool Planner::_populate_block(block_t * const block, bool split_move, if (block->steps.k) ENABLE_AXIS_K() ); #endif + #if EITHER(IS_CORE, MARKFORGED_XY) + #if LINEAR_AXES >= 4 + if (block->steps.i) ENABLE_AXIS_I(); + #endif + #if LINEAR_AXES >= 5 + if (block->steps.j) ENABLE_AXIS_J(); + #endif + #if LINEAR_AXES >= 6 + if (block->steps.k) ENABLE_AXIS_K(); + #endif + #endif // Enable extruder(s) #if HAS_EXTRUDERS @@ -2975,12 +2966,8 @@ bool Planner::buffer_segment(const abce_pos_t &abce // Queue the movement. Return 'false' if the move was not queued. if (!_buffer_steps(target - #if HAS_POSITION_FLOAT - , target_float - #endif - #if HAS_DIST_MM_ARG - , cart_dist_mm - #endif + OPTARG(HAS_POSITION_FLOAT, target_float) + OPTARG(HAS_DIST_MM_ARG, cart_dist_mm) , fr_mm_s, extruder, millimeters) ) return false; diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp index d0f32a32c072..ded5d438934b 100644 --- a/Marlin/src/module/probe.cpp +++ b/Marlin/src/module/probe.cpp @@ -250,21 +250,16 @@ xyz_pos_t Probe::offset; // Initialized by settings.load() TERN_(PROBING_HEATERS_OFF, thermalManager.pause_heaters(dopause)); TERN_(PROBING_FANS_OFF, thermalManager.set_fans_paused(dopause)); TERN_(PROBING_ESTEPPERS_OFF, if (dopause) disable_e_steppers()); - #if ENABLED(PROBING_STEPPERS_OFF) - IF_DISABLED(DELTA, static uint8_t old_trusted); + #if ENABLED(PROBING_STEPPERS_OFF) && DISABLED(DELTA) + static uint8_t old_trusted; if (dopause) { - #if DISABLED(DELTA) - old_trusted = axis_trusted; - DISABLE_AXIS_X(); - DISABLE_AXIS_Y(); - #endif - IF_DISABLED(PROBING_ESTEPPERS_OFF, disable_e_steppers()); + old_trusted = axis_trusted; + DISABLE_AXIS_X(); + DISABLE_AXIS_Y(); } else { - #if DISABLED(DELTA) - if (TEST(old_trusted, X_AXIS)) ENABLE_AXIS_X(); - if (TEST(old_trusted, Y_AXIS)) ENABLE_AXIS_Y(); - #endif + if (TEST(old_trusted, X_AXIS)) ENABLE_AXIS_X(); + if (TEST(old_trusted, Y_AXIS)) ENABLE_AXIS_Y(); axis_trusted = old_trusted; } #endif diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index 47c1314e2851..fca33c98c2fd 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -2555,9 +2555,7 @@ void MarlinSettings::reset() { TERN_(HAS_CLASSIC_E_JERK, planner.max_jerk.e = DEFAULT_EJERK); #endif - #if HAS_JUNCTION_DEVIATION - planner.junction_deviation_mm = float(JUNCTION_DEVIATION_MM); - #endif + TERN_(HAS_JUNCTION_DEVIATION, planner.junction_deviation_mm = float(JUNCTION_DEVIATION_MM)); #if HAS_SCARA_OFFSET scara_home_offset.reset(); @@ -3151,9 +3149,7 @@ void MarlinSettings::reset() { CONFIG_ECHO_HEADING( "Advanced: B S T" - #if HAS_JUNCTION_DEVIATION - " J" - #endif + TERN_(HAS_JUNCTION_DEVIATION, " J") #if HAS_CLASSIC_JERK " X Y Z" TERN_(HAS_CLASSIC_E_JERK, " E") diff --git a/Marlin/src/module/stepper.cpp b/Marlin/src/module/stepper.cpp index 0752351bc405..1cc2ea065962 100644 --- a/Marlin/src/module/stepper.cpp +++ b/Marlin/src/module/stepper.cpp @@ -1428,14 +1428,10 @@ void Stepper::isr() { // Get the interval to the next ISR call const uint32_t interval = _MIN( + uint32_t(HAL_TIMER_TYPE_MAX), // Come back in a very long time nextMainISR // Time until the next Pulse / Block phase - #if ENABLED(LIN_ADVANCE) - , nextAdvanceISR // Come back early for Linear Advance? - #endif - #if ENABLED(INTEGRATED_BABYSTEPPING) - , nextBabystepISR // Come back early for Babystepping? - #endif - , uint32_t(HAL_TIMER_TYPE_MAX) // Come back in a very long time + OPTARG(LIN_ADVANCE, nextAdvanceISR) // Come back early for Linear Advance? + OPTARG(INTEGRATED_BABYSTEPPING, nextBabystepISR) // Come back early for Babystepping? ); // diff --git a/Marlin/src/module/stepper/trinamic.h b/Marlin/src/module/stepper/trinamic.h index 766f8fced246..7957a1b35363 100644 --- a/Marlin/src/module/stepper/trinamic.h +++ b/Marlin/src/module/stepper/trinamic.h @@ -121,7 +121,7 @@ void reset_trinamic_drivers(); #define X_ENABLE_READ() stepperX.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(X) - #define X_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(X_STEP_PIN); }while(0) + #define X_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(X_STEP_PIN); }while(0) #endif #endif @@ -149,7 +149,7 @@ void reset_trinamic_drivers(); #define Z_ENABLE_READ() stepperZ.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(Z) - #define Z_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(Z_STEP_PIN); }while(0) + #define Z_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(Z_STEP_PIN); }while(0) #endif #endif @@ -166,7 +166,7 @@ void reset_trinamic_drivers(); #define X2_ENABLE_READ() stepperX2.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(X2) - #define X2_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(X2_STEP_PIN); }while(0) + #define X2_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(X2_STEP_PIN); }while(0) #endif #endif @@ -183,7 +183,7 @@ void reset_trinamic_drivers(); #define Y2_ENABLE_READ() stepperY2.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(Y2) - #define Y2_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(Y2_STEP_PIN); }while(0) + #define Y2_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(Y2_STEP_PIN); }while(0) #endif #endif @@ -200,7 +200,7 @@ void reset_trinamic_drivers(); #define Z2_ENABLE_READ() stepperZ2.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(Z2) - #define Z2_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(Z2_STEP_PIN); }while(0) + #define Z2_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(Z2_STEP_PIN); }while(0) #endif #endif @@ -217,7 +217,7 @@ void reset_trinamic_drivers(); #define Z3_ENABLE_READ() stepperZ3.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(Z3) - #define Z3_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(Z3_STEP_PIN); }while(0) + #define Z3_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(Z3_STEP_PIN); }while(0) #endif #endif @@ -234,7 +234,7 @@ void reset_trinamic_drivers(); #define Z4_ENABLE_READ() stepperZ4.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(Z4) - #define Z4_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(Z4_STEP_PIN); }while(0) + #define Z4_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(Z4_STEP_PIN); }while(0) #endif #endif @@ -293,7 +293,7 @@ void reset_trinamic_drivers(); #define E0_ENABLE_READ() stepperE0.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E0) - #define E0_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E0_STEP_PIN); }while(0) + #define E0_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E0_STEP_PIN); }while(0) #endif #endif @@ -310,7 +310,7 @@ void reset_trinamic_drivers(); #define E1_ENABLE_READ() stepperE1.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E1) - #define E1_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E1_STEP_PIN); }while(0) + #define E1_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E1_STEP_PIN); }while(0) #endif #endif @@ -327,7 +327,7 @@ void reset_trinamic_drivers(); #define E2_ENABLE_READ() stepperE2.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E2) - #define E2_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E2_STEP_PIN); }while(0) + #define E2_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E2_STEP_PIN); }while(0) #endif #endif @@ -344,7 +344,7 @@ void reset_trinamic_drivers(); #define E3_ENABLE_READ() stepperE3.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E3) - #define E3_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E3_STEP_PIN); }while(0) + #define E3_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E3_STEP_PIN); }while(0) #endif #endif @@ -361,7 +361,7 @@ void reset_trinamic_drivers(); #define E4_ENABLE_READ() stepperE4.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E4) - #define E4_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E4_STEP_PIN); }while(0) + #define E4_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E4_STEP_PIN); }while(0) #endif #endif @@ -378,7 +378,7 @@ void reset_trinamic_drivers(); #define E5_ENABLE_READ() stepperE5.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E5) - #define E5_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E5_STEP_PIN); }while(0) + #define E5_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E5_STEP_PIN); }while(0) #endif #endif @@ -395,7 +395,7 @@ void reset_trinamic_drivers(); #define E6_ENABLE_READ() stepperE6.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E6) - #define E6_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E6_STEP_PIN); }while(0) + #define E6_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E6_STEP_PIN); }while(0) #endif #endif @@ -412,6 +412,6 @@ void reset_trinamic_drivers(); #define E7_ENABLE_READ() stepperE7.isEnabled() #endif #if AXIS_HAS_SQUARE_WAVE(E7) - #define E7_STEP_WRITE(STATE) do{ if(STATE) TOGGLE(E7_STEP_PIN); }while(0) + #define E7_STEP_WRITE(STATE) do{ if (STATE) TOGGLE(E7_STEP_PIN); }while(0) #endif #endif diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 52d0dfb56e20..0475db486c1c 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -2288,9 +2288,7 @@ void Temperature::init() { INIT_FAN_PIN(CONTROLLER_FAN_PIN); #endif - #if HAS_MAXTC_SW_SPI - max_tc_spi.init(); - #endif + TERN_(HAS_MAXTC_SW_SPI, max_tc_spi.init()); HAL_adc_init(); @@ -3037,15 +3035,15 @@ void Temperature::isr() { #endif #if HAS_HEATED_BED - _PWM_MOD(BED,soft_pwm_bed,temp_bed); + _PWM_MOD(BED, soft_pwm_bed, temp_bed); #endif #if HAS_HEATED_CHAMBER - _PWM_MOD(CHAMBER,soft_pwm_chamber,temp_chamber); + _PWM_MOD(CHAMBER, soft_pwm_chamber, temp_chamber); #endif #if HAS_COOLER - _PWM_MOD(COOLER,soft_pwm_cooler,temp_cooler); + _PWM_MOD(COOLER, soft_pwm_cooler, temp_cooler); #endif #if ENABLED(FAN_SOFT_PWM) diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp index 6d69b8722dde..8fffb2e6406d 100644 --- a/Marlin/src/module/tool_change.cpp +++ b/Marlin/src/module/tool_change.cpp @@ -918,9 +918,7 @@ void fast_line_to_current(const AxisEnum fr_axis) { _line_to_current(fr_axis, 0. if (ok) { // Do a small lift to avoid the workpiece in the move back (below) current_position.z += toolchange_settings.z_raise; - #if HAS_SOFTWARE_ENDSTOPS - NOMORE(current_position.z, soft_endstop.max.z); - #endif + TERN_(HAS_SOFTWARE_ENDSTOPS, NOMORE(current_position.z, soft_endstop.max.z)); fast_line_to_current(Z_AXIS); planner.synchronize(); } @@ -1068,9 +1066,7 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) { if (can_move_away && TERN1(TOOLCHANGE_PARK, toolchange_settings.enable_park)) { // Do a small lift to avoid the workpiece in the move back (below) current_position.z += toolchange_settings.z_raise; - #if HAS_SOFTWARE_ENDSTOPS - NOMORE(current_position.z, soft_endstop.max.z); - #endif + TERN_(HAS_SOFTWARE_ENDSTOPS, NOMORE(current_position.z, soft_endstop.max.z)); fast_line_to_current(Z_AXIS); planner.synchronize(); } @@ -1117,9 +1113,7 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) { if (can_move_away && TERN1(TOOLCHANGE_PARK, toolchange_settings.enable_park)) { // Do a small lift to avoid the workpiece in the move back (below) current_position.z += toolchange_settings.z_raise; - #if HAS_SOFTWARE_ENDSTOPS - NOMORE(current_position.z, soft_endstop.max.z); - #endif + TERN_(HAS_SOFTWARE_ENDSTOPS, NOMORE(current_position.z, soft_endstop.max.z)); fast_line_to_current(Z_AXIS); } #endif diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h index 42c6f4d0299b..b922f057f1e5 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h @@ -164,9 +164,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN P4_29 #define X_SERIAL_RX_PIN P1_17 diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h index 43e954a4f1b0..2c9e608e496f 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h @@ -220,23 +220,20 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN P1_10 - #define X_SERIAL_RX_PIN P1_10 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN P1_09 - #define Y_SERIAL_RX_PIN P1_09 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN P1_08 - #define Z_SERIAL_RX_PIN P1_08 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN P1_04 - #define E0_SERIAL_RX_PIN P1_04 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN P1_01 - #define E1_SERIAL_RX_PIN P1_01 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h index cb3d3242e28c..9e04fc047954 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h @@ -172,7 +172,7 @@ #define E2_CS_PIN EXP1_05_PIN #if HAS_TMC_UART #define E2_SERIAL_TX_PIN EXP1_05_PIN - #define E2_SERIAL_RX_PIN EXP1_05_PIN + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #endif #endif @@ -185,7 +185,7 @@ #define E3_CS_PIN EXP1_07_PIN #if HAS_TMC_UART #define E3_SERIAL_TX_PIN EXP1_07_PIN - #define E3_SERIAL_RX_PIN EXP1_07_PIN + #define E3_SERIAL_RX_PIN E3_SERIAL_TX_PIN #endif #else #define E3_ENABLE_PIN EXP2_04_PIN @@ -200,7 +200,7 @@ #define E4_CS_PIN EXP1_09_PIN #if HAS_TMC_UART #define E4_SERIAL_TX_PIN EXP1_09_PIN - #define E4_SERIAL_RX_PIN EXP1_09_PIN + #define E4_SERIAL_RX_PIN E4_SERIAL_TX_PIN #endif #else #define E4_ENABLE_PIN EXP2_04_PIN diff --git a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h index 1ec1131b45ff..1feaeb13b5d6 100644 --- a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h +++ b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h @@ -82,17 +82,22 @@ // #if HAS_TMC_UART #define X_SERIAL_TX_PIN P1_00 - #define X_SERIAL_RX_PIN P1_00 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN + #define Y_SERIAL_TX_PIN P1_09 - #define Y_SERIAL_RX_PIN P1_09 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN + #define Z_SERIAL_TX_PIN P1_16 - #define Z_SERIAL_RX_PIN P1_16 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN + #define E0_SERIAL_TX_PIN P0_04 - #define E0_SERIAL_RX_PIN P0_04 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN + #define E1_SERIAL_TX_PIN P2_02 - #define E1_SERIAL_RX_PIN P2_02 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN + #define E2_SERIAL_TX_PIN P2_06 - #define E2_SERIAL_RX_PIN P2_06 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h index 44dbaacb7301..a2235dc28ad4 100644 --- a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h +++ b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h @@ -327,10 +327,13 @@ */ #define X_SERIAL_TX_PIN P1_22 // J8-2 #define X_SERIAL_RX_PIN P2_12 // J8-4 Interrupt Capable + #define Y_SERIAL_TX_PIN P1_23 // J8-3 #define Y_SERIAL_RX_PIN P2_11 // J8-5 Interrupt Capable + #define Z_SERIAL_TX_PIN P2_12 // J8-4 #define Z_SERIAL_RX_PIN P0_25 // TH3 + #define E0_SERIAL_TX_PIN P4_28 // J8-6 #define E0_SERIAL_RX_PIN P0_26 // TH4 diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h index 8808c3a22806..449d9a93ce4e 100644 --- a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h +++ b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h @@ -163,10 +163,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #define X_SERIAL_TX_PIN P1_04 #define X_SERIAL_RX_PIN P1_01 diff --git a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h index fe7daa8cdafd..62127f5504b7 100644 --- a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h +++ b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h @@ -119,9 +119,6 @@ * If undefined software serial is used according to the pins below */ - // - // Software serial - // // P2_08 E1-Step // P2_13 E1-Dir @@ -130,28 +127,28 @@ #define X_SERIAL_TX_PIN P0_01 #endif #ifndef X_SERIAL_RX_PIN - #define X_SERIAL_RX_PIN P0_01 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #endif #ifndef Y_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN P0_00 #endif #ifndef Y_SERIAL_RX_PIN - #define Y_SERIAL_RX_PIN P0_00 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #endif #ifndef Z_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN P2_13 #endif #ifndef Z_SERIAL_RX_PIN - #define Z_SERIAL_RX_PIN P2_13 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #endif #ifndef E0_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN P2_08 #endif #ifndef E0_SERIAL_RX_PIN - #define E0_SERIAL_RX_PIN P2_08 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #endif // Reduce baud rate to improve software serial reliability diff --git a/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h b/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h index cecb44efbe18..44ceb9b7cc8f 100644 --- a/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h +++ b/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h @@ -129,23 +129,20 @@ * If undefined software serial is used according to the pins below */ - // - // Software serial - // #define X_SERIAL_TX_PIN P1_01 - #define X_SERIAL_RX_PIN P1_01 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN P1_10 - #define Y_SERIAL_RX_PIN P1_10 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN P1_17 - #define Z_SERIAL_RX_PIN P1_17 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN P0_05 - #define E0_SERIAL_RX_PIN P0_05 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN P0_22 - #define E1_SERIAL_RX_PIN P0_22 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/lpc1769/pins_FLY_CDY.h b/Marlin/src/pins/lpc1769/pins_FLY_CDY.h index b90443403ccb..535fb32e3ee0 100644 --- a/Marlin/src/pins/lpc1769/pins_FLY_CDY.h +++ b/Marlin/src/pins/lpc1769/pins_FLY_CDY.h @@ -104,22 +104,22 @@ #if HAS_TMC_UART #define X_SERIAL_TX_PIN P1_04 - #define X_SERIAL_RX_PIN P1_04 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN P1_10 - #define Y_SERIAL_RX_PIN P1_10 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN P1_16 - #define Z_SERIAL_RX_PIN P1_16 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN P4_28 - #define E0_SERIAL_RX_PIN P4_28 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN P2_12 - #define E1_SERIAL_RX_PIN P2_12 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN P0_10 - #define E2_SERIAL_RX_PIN P0_10 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h index ddfee63cd080..f5c158162cda 100644 --- a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h +++ b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h @@ -38,17 +38,20 @@ /** * TMC2208/TMC2209 stepper drivers */ - #define X_SERIAL_TX_PIN P1_22 // J8-2 - #define X_SERIAL_RX_PIN P1_22 // J8-2 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN + #define Y_SERIAL_TX_PIN P1_23 // J8-3 - #define Y_SERIAL_RX_PIN P1_23 // J8-3 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN + #define Z_SERIAL_TX_PIN P2_12 // J8-4 - #define Z_SERIAL_RX_PIN P2_12 // J8-4 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN + #define E0_SERIAL_TX_PIN P2_11 // J8-5 - #define E0_SERIAL_RX_PIN P2_11 // J8-5 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN + #define E1_SERIAL_TX_PIN P4_28 // J8-6 - #define E1_SERIAL_RX_PIN P4_28 // J8-6 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h b/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h index 7547279bbda3..ff7aa11dafed 100644 --- a/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h +++ b/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h @@ -173,19 +173,20 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN P1_01 - #define X_SERIAL_RX_PIN P1_01 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN + #define Y_SERIAL_TX_PIN P1_08 - #define Y_SERIAL_RX_PIN P1_08 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN + #define Z_SERIAL_TX_PIN P1_10 - #define Z_SERIAL_RX_PIN P1_10 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN + #define E0_SERIAL_TX_PIN P1_15 - #define E0_SERIAL_RX_PIN P1_15 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN + #define E1_SERIAL_TX_PIN P1_17 - #define E1_SERIAL_RX_PIN P1_17 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h index 4d725bc7d16a..e45f5dbd95e4 100644 --- a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h +++ b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h @@ -75,14 +75,16 @@ #if HAS_TMC_UART // // TMC220x stepper drivers - // Software serial // #define X_SERIAL_TX_PIN P0_04 #define X_SERIAL_RX_PIN P0_05 + #define Y_SERIAL_TX_PIN P0_10 #define Y_SERIAL_RX_PIN P0_11 + #define Z_SERIAL_TX_PIN P0_19 #define Z_SERIAL_RX_PIN P0_20 + #define E0_SERIAL_TX_PIN P0_22 #define E0_SERIAL_RX_PIN P0_21 diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index 28c7ed007170..0655580f0f38 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -587,6 +587,8 @@ #include "stm32f4/pins_RUMBA32_AUS3D.h" // STM32F4 env:rumba32 #elif MB(RUMBA32_MKS) #include "stm32f4/pins_RUMBA32_MKS.h" // STM32F4 env:rumba32 +#elif MB(RUMBA32_BTT) + #include "stm32f4/pins_RUMBA32_BTT.h" // STM32F4 env:rumba32 #elif MB(BLACK_STM32F407VE) #include "stm32f4/pins_BLACK_STM32F407VE.h" // STM32F4 env:STM32F407VE_black #elif MB(STEVAL_3DP001V1) diff --git a/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h b/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h index 8756a3321806..9c6b74f1269d 100644 --- a/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h +++ b/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h @@ -124,42 +124,42 @@ * Software serial communication pins. * At the moment, F6 rx pins are not pc interrupt pins */ - #ifndef X_SERIAL_RX_PIN - #define X_SERIAL_RX_PIN -1 // 71 - #endif #ifndef X_SERIAL_TX_PIN #define X_SERIAL_TX_PIN 72 #endif - #ifndef Y_SERIAL_RX_PIN - #define Y_SERIAL_RX_PIN -1 // 73 + #ifndef X_SERIAL_RX_PIN + #define X_SERIAL_RX_PIN -1 // 71 #endif #ifndef Y_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN 75 #endif - #ifndef Z_SERIAL_RX_PIN - #define Z_SERIAL_RX_PIN -1 // 78 + #ifndef Y_SERIAL_RX_PIN + #define Y_SERIAL_RX_PIN -1 // 73 #endif #ifndef Z_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN 79 #endif - #ifndef E0_SERIAL_RX_PIN - #define E0_SERIAL_RX_PIN -1 // 76 + #ifndef Z_SERIAL_RX_PIN + #define Z_SERIAL_RX_PIN -1 // 78 #endif #ifndef E0_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN 77 #endif - #ifndef E1_SERIAL_RX_PIN - #define E1_SERIAL_RX_PIN -1 // 80 + #ifndef E0_SERIAL_RX_PIN + #define E0_SERIAL_RX_PIN -1 // 76 #endif #ifndef E1_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN 81 #endif - #ifndef E2_SERIAL_RX_PIN - #define E2_SERIAL_RX_PIN -1 // 22 + #ifndef E1_SERIAL_RX_PIN + #define E1_SERIAL_RX_PIN -1 // 80 #endif #ifndef E2_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN 82 #endif + #ifndef E2_SERIAL_RX_PIN + #define E2_SERIAL_RX_PIN -1 // 22 + #endif #endif // diff --git a/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h b/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h index 4280204b99d9..1fc24154b733 100644 --- a/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h +++ b/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h @@ -33,18 +33,23 @@ /** * TMC2208/TMC2209 stepper drivers */ - #define X_SERIAL_RX_PIN 72 #define X_SERIAL_TX_PIN 71 - #define Y_SERIAL_RX_PIN 73 + #define X_SERIAL_RX_PIN 72 + #define Y_SERIAL_TX_PIN 78 - #define Z_SERIAL_RX_PIN 75 + #define Y_SERIAL_RX_PIN 73 + #define Z_SERIAL_TX_PIN 79 - #define E0_SERIAL_RX_PIN 77 + #define Z_SERIAL_RX_PIN 75 + #define E0_SERIAL_TX_PIN 81 - #define E1_SERIAL_RX_PIN 76 + #define E0_SERIAL_RX_PIN 77 + #define E1_SERIAL_TX_PIN 80 - #define E2_SERIAL_RX_PIN 62 + #define E1_SERIAL_RX_PIN 76 + #define E2_SERIAL_TX_PIN 82 + #define E2_SERIAL_RX_PIN 62 #endif #include "pins_FYSETC_F6_13.h" diff --git a/Marlin/src/pins/ramps/pins_ORTUR_4.h b/Marlin/src/pins/ramps/pins_ORTUR_4.h index e79973e06f07..428279c92ab2 100644 --- a/Marlin/src/pins/ramps/pins_ORTUR_4.h +++ b/Marlin/src/pins/ramps/pins_ORTUR_4.h @@ -54,20 +54,19 @@ #define TEMP_0_PIN 15 // Analog Input #define TEMP_1_PIN 13 // Analog Input -// -// Software serial -// -#define X_SERIAL_TX_PIN 59 -#define X_SERIAL_RX_PIN 63 +#if HAS_TMC_UART + #define X_SERIAL_TX_PIN 59 + #define X_SERIAL_RX_PIN 63 -#define Y_SERIAL_TX_PIN 64 -#define Y_SERIAL_RX_PIN 40 + #define Y_SERIAL_TX_PIN 64 + #define Y_SERIAL_RX_PIN 40 -#define Z_SERIAL_TX_PIN 44 -#define Z_SERIAL_RX_PIN 42 + #define Z_SERIAL_TX_PIN 44 + #define Z_SERIAL_RX_PIN 42 -#define E0_SERIAL_TX_PIN 66 -#define E0_SERIAL_RX_PIN 65 + #define E0_SERIAL_TX_PIN 66 + #define E0_SERIAL_RX_PIN 65 +#endif #include "pins_RAMPS.h" diff --git a/Marlin/src/pins/ramps/pins_RAMPS.h b/Marlin/src/pins/ramps/pins_RAMPS.h index 2c271408b0c3..b141fdbf85dd 100644 --- a/Marlin/src/pins/ramps/pins_RAMPS.h +++ b/Marlin/src/pins/ramps/pins_RAMPS.h @@ -321,10 +321,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #ifndef X_SERIAL_TX_PIN #define X_SERIAL_TX_PIN 40 #endif diff --git a/Marlin/src/pins/ramps/pins_TT_OSCAR.h b/Marlin/src/pins/ramps/pins_TT_OSCAR.h index 57a9a560d35b..a43f10fc93cd 100644 --- a/Marlin/src/pins/ramps/pins_TT_OSCAR.h +++ b/Marlin/src/pins/ramps/pins_TT_OSCAR.h @@ -117,10 +117,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E3_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #define X_SERIAL_TX_PIN -1 // 59 #define X_SERIAL_RX_PIN -1 // 63 #define X2_SERIAL_TX_PIN -1 diff --git a/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h b/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h index 26ad5fd6580a..feaa4ba98b95 100644 --- a/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h +++ b/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h @@ -213,10 +213,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #ifndef X_SERIAL_TX_PIN #define X_SERIAL_TX_PIN 40 #endif diff --git a/Marlin/src/pins/samd/pins_RAMPS_144.h b/Marlin/src/pins/samd/pins_RAMPS_144.h index fbd9d7c86412..449ae0273e23 100644 --- a/Marlin/src/pins/samd/pins_RAMPS_144.h +++ b/Marlin/src/pins/samd/pins_RAMPS_144.h @@ -194,60 +194,56 @@ //#define E0_HARDWARE_SERIAL Serial1 //#define E1_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #ifndef X_SERIAL_TX_PIN #define X_SERIAL_TX_PIN 47 #endif #ifndef X_SERIAL_RX_PIN - #define X_SERIAL_RX_PIN 47 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #endif #ifndef X2_SERIAL_TX_PIN #define X2_SERIAL_TX_PIN -1 #endif #ifndef X2_SERIAL_RX_PIN - #define X2_SERIAL_RX_PIN -1 + #define X2_SERIAL_RX_PIN X2_SERIAL_TX_PIN #endif #ifndef Y_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN 45 #endif #ifndef Y_SERIAL_RX_PIN - #define Y_SERIAL_RX_PIN 45 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #endif #ifndef Y2_SERIAL_TX_PIN #define Y2_SERIAL_TX_PIN -1 #endif #ifndef Y2_SERIAL_RX_PIN - #define Y2_SERIAL_RX_PIN -1 + #define Y2_SERIAL_RX_PIN Y2_SERIAL_TX_PIN #endif #ifndef Z_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN 32 #endif #ifndef Z_SERIAL_RX_PIN - #define Z_SERIAL_RX_PIN 32 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #endif #ifndef Z2_SERIAL_TX_PIN #define Z2_SERIAL_TX_PIN 22 #endif #ifndef Z2_SERIAL_RX_PIN - #define Z2_SERIAL_RX_PIN 22 + #define Z2_SERIAL_RX_PIN Z2_SERIAL_TX_PIN #endif #ifndef E0_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN 43 #endif #ifndef E0_SERIAL_RX_PIN - #define E0_SERIAL_RX_PIN 43 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #endif #ifndef E1_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN -1 #endif #ifndef E1_SERIAL_RX_PIN - #define E1_SERIAL_RX_PIN -1 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h index af63f32ef62b..8333b8070d17 100644 --- a/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h +++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h @@ -125,20 +125,17 @@ //#define Z_HARDWARE_SERIAL MSerial1 //#define E0_HARDWARE_SERIAL MSerial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PC10 - #define X_SERIAL_RX_PIN PC10 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PC11 - #define Y_SERIAL_RX_PIN PC11 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PC12 - #define Z_SERIAL_RX_PIN PC12 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD2 - #define E0_SERIAL_RX_PIN PD2 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h index 4951d697a72f..44d4f2343546 100644 --- a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h +++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h @@ -33,20 +33,17 @@ * TMC2208/TMC2209 stepper drivers */ #if HAS_TMC_UART - // - // Software serial - // #define X_SERIAL_TX_PIN PB15 - #define X_SERIAL_RX_PIN PB15 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PC6 - #define Y_SERIAL_RX_PIN PC6 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PC10 - #define Z_SERIAL_RX_PIN PC10 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PC11 - #define E0_SERIAL_RX_PIN PC11 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h index dc8b8c50f160..7b61f55d4f19 100644 --- a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h +++ b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h @@ -84,15 +84,20 @@ #define E0_STEP_PIN PA6 #define E0_DIR_PIN PA5 -// Stepper drivers Serial UART -#define X_SERIAL_TX_PIN PB3 -#define X_SERIAL_RX_PIN PD2 -#define Y_SERIAL_TX_PIN PA15 -#define Y_SERIAL_RX_PIN PC6 -#define Z_SERIAL_TX_PIN PB11 -#define Z_SERIAL_RX_PIN PB10 -#define E0_SERIAL_TX_PIN PC5 -#define E0_SERIAL_RX_PIN PC4 +#if HAS_TMC_UART + // Stepper drivers Serial UART + #define X_SERIAL_TX_PIN PB3 + #define X_SERIAL_RX_PIN PD2 + + #define Y_SERIAL_TX_PIN PA15 + #define Y_SERIAL_RX_PIN PC6 + + #define Z_SERIAL_TX_PIN PB11 + #define Z_SERIAL_RX_PIN PB10 + + #define E0_SERIAL_TX_PIN PC5 + #define E0_SERIAL_RX_PIN PC4 +#endif // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h index 6b3c4ed8fae7..0437156c0c11 100644 --- a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h @@ -184,7 +184,7 @@ #define BTN_EN1 PB10 #define BTN_EN2 PA6 -#elif ENABLED(DWIN_CREALITY_LCD) +#elif EITHER(DWIN_CREALITY_LCD, IS_DWIN_MARLINUI) // RET6 DWIN ENCODER LCD #define BTN_ENC PB14 @@ -194,7 +194,7 @@ //#define LCD_LED_PIN PB2 #ifndef BEEPER_PIN #define BEEPER_PIN PB13 - #undef SPEAKER + //#undef SPEAKER #endif #elif ENABLED(DWIN_VET6_CREALITY_LCD) diff --git a/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h b/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h index 21bbd23ca9f6..f850b4a90b07 100644 --- a/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h +++ b/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h @@ -124,11 +124,11 @@ // SoftwareSerial with one pin per driver // Compatible with TMC2208 and TMC2209 drivers #define X_SERIAL_TX_PIN PA10 // RXD1 - #define X_SERIAL_RX_PIN PA10 // RXD1 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PA9 // TXD1 - #define Y_SERIAL_RX_PIN PA9 // TXD1 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PC7 // IO1 - #define Z_SERIAL_RX_PIN PC7 // IO1 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define TMC_BAUD_RATE 19200 #else // Motor current PWM pins diff --git a/Marlin/src/pins/stm32f1/pins_FLY_MINI.h b/Marlin/src/pins/stm32f1/pins_FLY_MINI.h index be0a622b1d71..08efa9a04e1e 100644 --- a/Marlin/src/pins/stm32f1/pins_FLY_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_FLY_MINI.h @@ -94,17 +94,14 @@ #endif #if HAS_TMC_UART - // - // Software serial - // #define X_SERIAL_TX_PIN PB0 - #define X_SERIAL_RX_PIN PB0 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PA7 - #define Y_SERIAL_RX_PIN PA7 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PA4 - #define Z_SERIAL_RX_PIN PA4 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PC2 - #define E0_SERIAL_RX_PIN PC2 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #endif // diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h index ba35265d10a0..120d6d6f0a7b 100644 --- a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h +++ b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h @@ -42,9 +42,6 @@ * TMC2208/TMC2209 stepper drivers */ - // - // Software serial - // #define X_SERIAL_TX_PIN PA11 #define X_SERIAL_RX_PIN PA12 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h index 889e1f5e07bf..29baeba934f1 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h @@ -258,12 +258,12 @@ //#define TMC_SOFTWARE_SERIAL #if ENABLED(TMC_SOFTWARE_SERIAL) #define X_SERIAL_TX_PIN PF8 // SERVO3_PIN -- XS2 - 6 - #define Y_SERIAL_TX_PIN PF9 // SERVO2_PIN -- XS2 - 5 - #define Z_SERIAL_TX_PIN PA1 // SERVO1_PIN -- XS1 - 6 - #define E0_SERIAL_TX_PIN PC3 // SERVO0_PIN -- XS1 - 5 #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN + #define Y_SERIAL_TX_PIN PF9 // SERVO2_PIN -- XS2 - 5 #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN + #define Z_SERIAL_TX_PIN PA1 // SERVO1_PIN -- XS1 - 6 #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN + #define E0_SERIAL_TX_PIN PC3 // SERVO0_PIN -- XS1 - 5 #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define TMC_BAUD_RATE 19200 #endif diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h index ba5198006512..2cfb71380d37 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h @@ -145,10 +145,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #define X_SERIAL_TX_PIN PD5 #define X_SERIAL_RX_PIN PD5 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h index 5a359328014e..c568e42df230 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h @@ -92,9 +92,6 @@ //#define Z_HARDWARE_SERIAL MSerial1 //#define E0_HARDWARE_SERIAL MSerial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PC7 #define X_SERIAL_RX_PIN PC7 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index 49d5476fecda..e83bcb0a5c37 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -146,10 +146,6 @@ //#define E0_HARDWARE_SERIAL MSerial1 //#define E1_HARDWARE_SERIAL MSerial1 - // - // Software serial - // - #define X_SERIAL_TX_PIN PD5 #define X_SERIAL_RX_PIN PD5 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h index d752d52a3a3e..1f3efee6e567 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h @@ -133,9 +133,6 @@ //#define E1_HARDWARE_SERIAL MSerial1 //#define E2_HARDWARE_SERIAL MSerial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PF7 #define X_SERIAL_RX_PIN PF8 diff --git a/Marlin/src/pins/stm32f4/pins_ARMED.h b/Marlin/src/pins/stm32f4/pins_ARMED.h index a67af089f20a..4d0369b044f2 100644 --- a/Marlin/src/pins/stm32f4/pins_ARMED.h +++ b/Marlin/src/pins/stm32f4/pins_ARMED.h @@ -204,9 +204,6 @@ #if HAS_TMC_UART // TMC2208/TMC2209 stepper drivers - // - // Software serial - // #define X_SERIAL_TX_PIN EXT0_PIN #define X_SERIAL_RX_PIN EXT0_PIN diff --git a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h index 2bfbb194270b..79a414d7d46b 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h @@ -137,20 +137,17 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial ## - // #define X_SERIAL_TX_PIN PE2 - #define X_SERIAL_RX_PIN PE2 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PE3 - #define Y_SERIAL_RX_PIN PE3 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PE4 - #define Z_SERIAL_RX_PIN PE4 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD7 - #define E0_SERIAL_RX_PIN PD7 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_BTT_E3_RRF.h b/Marlin/src/pins/stm32f4/pins_BTT_E3_RRF.h index a806611c18fd..481c38f5152b 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_E3_RRF.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_E3_RRF.h @@ -112,27 +112,24 @@ * TMC2208/TMC2209 stepper drivers */ #if HAS_TMC_UART - // - // Software serial - // #define X_SERIAL_TX_PIN PD6 - #define X_SERIAL_RX_PIN PD6 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PD1 - #define Y_SERIAL_RX_PIN PD1 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PD15 - #define Z_SERIAL_RX_PIN PD15 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD11 - #define E0_SERIAL_RX_PIN PD11 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #if ENABLED(BTT_E3_RRF_IDEX_BOARD) #define X2_SERIAL_TX_PIN FPC12_PIN // X2UART - #define X2_SERIAL_RX_PIN FPC12_PIN // X2UART + #define X2_SERIAL_RX_PIN X2_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN FPC6_PIN // E1UART - #define E1_SERIAL_RX_PIN FPC6_PIN // E1UART + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #endif // Reduce baud rate to improve software serial reliability diff --git a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h index 3151a38ae8f9..fa49ff149558 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h @@ -239,42 +239,39 @@ //#define E6_HARDWARE_SERIAL Serial1 // M5 MOTOR 4 //#define E7_HARDWARE_SERIAL Serial1 // M5 MOTOR 5 - // - // Software serial - // #define X_SERIAL_TX_PIN PC14 - #define X_SERIAL_RX_PIN PC14 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PE1 - #define Y_SERIAL_RX_PIN PE1 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PB5 - #define Z_SERIAL_RX_PIN PB5 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PG10 - #define E0_SERIAL_RX_PIN PG10 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PD4 - #define E1_SERIAL_RX_PIN PD4 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN PC12 - #define E2_SERIAL_RX_PIN PC12 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #if ENABLED(M5_EXTENDER) #define E3_SERIAL_TX_PIN PG4 - #define E3_SERIAL_RX_PIN PG4 + #define E3_SERIAL_RX_PIN E3_SERIAL_TX_PIN #define E4_SERIAL_TX_PIN PE15 - #define E4_SERIAL_RX_PIN PE15 + #define E4_SERIAL_RX_PIN E4_SERIAL_TX_PIN #define E5_SERIAL_TX_PIN PE7 - #define E5_SERIAL_RX_PIN PE7 + #define E5_SERIAL_RX_PIN E5_SERIAL_TX_PIN #define E6_SERIAL_TX_PIN PF15 - #define E6_SERIAL_RX_PIN PF15 + #define E6_SERIAL_RX_PIN E6_SERIAL_TX_PIN #define E7_SERIAL_TX_PIN PH14 - #define E7_SERIAL_RX_PIN PH14 + #define E7_SERIAL_RX_PIN E7_SERIAL_TX_PIN #endif // Reduce baud rate to improve software serial reliability diff --git a/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_common.h b/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_common.h index 25622bc62d87..92e7b5d3749c 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_common.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_common.h @@ -282,32 +282,29 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PC4 - #define X_SERIAL_RX_PIN PC4 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PD11 - #define Y_SERIAL_RX_PIN PD11 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PC6 - #define Z_SERIAL_RX_PIN PC6 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define Z2_SERIAL_TX_PIN PC7 - #define Z2_SERIAL_RX_PIN PC7 + #define Z2_SERIAL_RX_PIN Z2_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PF2 - #define E0_SERIAL_RX_PIN PF2 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PE4 - #define E1_SERIAL_RX_PIN PE4 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN PE1 - #define E2_SERIAL_RX_PIN PE1 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #define E3_SERIAL_TX_PIN PD3 - #define E3_SERIAL_RX_PIN PD3 + #define E3_SERIAL_RX_PIN E3_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 @@ -387,7 +384,7 @@ #define E4_CS_PIN EXP1_05_PIN #if HAS_TMC_UART #define E4_SERIAL_TX_PIN EXP1_05_PIN - #define E4_SERIAL_RX_PIN EXP1_05_PIN + #define E4_SERIAL_RX_PIN E4_SERIAL_TX_PIN #endif // M2 on Driver Expansion Module @@ -398,7 +395,7 @@ #define E5_CS_PIN EXP1_07_PIN #if HAS_TMC_UART #define E5_SERIAL_TX_PIN EXP1_07_PIN - #define E5_SERIAL_RX_PIN EXP1_07_PIN + #define E5_SERIAL_RX_PIN E5_SERIAL_TX_PIN #endif // M3 on Driver Expansion Module @@ -409,7 +406,7 @@ #define E6_CS_PIN EXP1_09_PIN #if HAS_TMC_UART #define E6_SERIAL_TX_PIN EXP1_09_PIN - #define E6_SERIAL_RX_PIN EXP1_09_PIN + #define E6_SERIAL_RX_PIN E6_SERIAL_TX_PIN #endif #endif // BTT_MOTOR_EXPANSION diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h index eb3ce730a696..e43cc4e5a066 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h @@ -204,26 +204,23 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PC13 - #define X_SERIAL_RX_PIN PC13 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PE3 - #define Y_SERIAL_RX_PIN PE3 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PE1 - #define Z_SERIAL_RX_PIN PE1 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD4 - #define E0_SERIAL_RX_PIN PD4 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PD1 - #define E1_SERIAL_RX_PIN PD1 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN PD6 - #define E2_SERIAL_RX_PIN PD6 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h index e5d6b6891b5b..dc2ee99affc2 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h @@ -267,23 +267,20 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PE0 - #define X_SERIAL_RX_PIN PE0 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PD3 - #define Y_SERIAL_RX_PIN PD3 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PD0 - #define Z_SERIAL_RX_PIN PD0 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PC6 - #define E0_SERIAL_RX_PIN PC6 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PD12 - #define E1_SERIAL_RX_PIN PD12 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h index 77257f818a5b..728e7535439b 100644 --- a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h +++ b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h @@ -234,32 +234,31 @@ #if HAS_TMC_UART #define X_SERIAL_TX_PIN PG13 - #define X_SERIAL_RX_PIN PG13 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PG10 - #define Y_SERIAL_RX_PIN PG10 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PD5 - #define Z_SERIAL_RX_PIN PD5 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD1 - #define E0_SERIAL_RX_PIN PD1 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PA14 - #define E1_SERIAL_RX_PIN PA14 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN PG6 - #define E2_SERIAL_RX_PIN PG6 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #define E3_SERIAL_TX_PIN PG3 - #define E3_SERIAL_RX_PIN PG3 + #define E3_SERIAL_RX_PIN E3_SERIAL_TX_PIN #define E4_SERIAL_TX_PIN PD10 - #define E4_SERIAL_RX_PIN PD10 + #define E4_SERIAL_RX_PIN E4_SERIAL_TX_PIN #define E5_SERIAL_TX_PIN PB12 - #define E5_SERIAL_RX_PIN PB12 - + #define E5_SERIAL_RX_PIN E5_SERIAL_TX_PIN #endif // diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h index 492383048e0d..c9f528b87bcc 100644 --- a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h +++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h @@ -118,9 +118,6 @@ // TMC2208/TMC2209 stepper drivers // - // - // Software serial - // #ifndef X_SERIAL_TX_PIN #define X_SERIAL_TX_PIN PE9 #endif @@ -198,7 +195,6 @@ // Misc. Functions // //#define LED_PIN PB14 -//#define BTN_PIN PC10 //#define PS_ON_PIN PE11 //#define KILL_PIN PC5 diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h index 641805d855a6..6f1c9be8f5b0 100644 --- a/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h +++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h @@ -40,7 +40,6 @@ #if HAS_TMC_UART #define X_SERIAL_TX_PIN PE8 #define Y_SERIAL_TX_PIN PC4 - #define Y_SERIAL_RX_PIN PC4 #define Z_SERIAL_TX_PIN PD12 #define E0_SERIAL_TX_PIN PA15 #define E1_SERIAL_TX_PIN PC5 diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_SPIDER.h b/Marlin/src/pins/stm32f4/pins_FYSETC_SPIDER.h index e90ac552aef1..e05811552e2b 100644 --- a/Marlin/src/pins/stm32f4/pins_FYSETC_SPIDER.h +++ b/Marlin/src/pins/stm32f4/pins_FYSETC_SPIDER.h @@ -76,21 +76,28 @@ #if HAS_TMC_UART #define X_SERIAL_TX_PIN PE7 - #define X_SERIAL_RX_PIN PE7 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN + + #define X2_SERIAL_TX_PIN PA15 + #define X2_SERIAL_RX_PIN X2_SERIAL_TX_PIN + #define Y_SERIAL_TX_PIN PE15 - #define Y_SERIAL_RX_PIN PE15 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN + #define Z_SERIAL_TX_PIN PD10 - #define Z_SERIAL_RX_PIN PD10 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN + + #define Z2_SERIAL_TX_PIN PD11 + #define Z2_SERIAL_RX_PIN Z2_SERIAL_TX_PIN + #define E0_SERIAL_TX_PIN PD7 - #define E0_SERIAL_RX_PIN PD7 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN + #define E1_SERIAL_TX_PIN PC14 - #define E1_SERIAL_RX_PIN PC14 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN + #define E2_SERIAL_TX_PIN PC15 - #define E2_SERIAL_RX_PIN PC15 - #define X2_SERIAL_TX_PIN PA15 - #define X2_SERIAL_RX_PIN PA15 - #define Z2_SERIAL_TX_PIN PD11 - #define Z2_SERIAL_RX_PIN PD11 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #endif // diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h index 3b75e7072ad3..4adc2f65a2f2 100644 --- a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h +++ b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h @@ -118,37 +118,37 @@ #define X_SERIAL_TX_PIN PB2 #endif #ifndef X_SERIAL_RX_PIN - #define X_SERIAL_RX_PIN PB2 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #endif #ifndef Y_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PE2 #endif #ifndef Y_SERIAL_RX_PIN - #define Y_SERIAL_RX_PIN PE2 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #endif #ifndef Z_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PE3 #endif #ifndef Z_SERIAL_RX_PIN - #define Z_SERIAL_RX_PIN PE3 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #endif #ifndef E0_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PE4 #endif #ifndef E0_SERIAL_RX_PIN - #define E0_SERIAL_RX_PIN PE4 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #endif #ifndef E1_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PE1 #endif #ifndef E1_SERIAL_RX_PIN - #define E1_SERIAL_RX_PIN PE1 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #endif #ifndef EX_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN PE0 #endif #ifndef EX_SERIAL_RX_PIN - #define E2_SERIAL_RX_PIN PE0 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #endif // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h b/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h index 5c6668562995..adc8b2a8bdb0 100644 --- a/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h +++ b/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h @@ -160,28 +160,28 @@ // No Hardware serial for steppers // #define X_SERIAL_TX_PIN PE6 - #define X_SERIAL_RX_PIN PE6 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PE3 - #define Y_SERIAL_RX_PIN PE3 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PB7 - #define Z_SERIAL_RX_PIN PB7 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PB3 - #define E0_SERIAL_RX_PIN PB3 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PD4 - #define E1_SERIAL_RX_PIN PD4 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN #define E2_SERIAL_TX_PIN PD0 - #define E2_SERIAL_RX_PIN PD0 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN #define E3_SERIAL_TX_PIN PD15 - #define E3_SERIAL_RX_PIN PD15 + #define E3_SERIAL_RX_PIN E3_SERIAL_TX_PIN #define E4_SERIAL_TX_PIN PD11 - #define E4_SERIAL_RX_PIN PD11 + #define E4_SERIAL_RX_PIN E4_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h index 9193a8551171..8008310f5af9 100644 --- a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h +++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h @@ -134,19 +134,19 @@ // No Hardware serial for steppers // #define X_SERIAL_TX_PIN PD5 - #define X_SERIAL_RX_PIN PD5 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PD7 - #define Y_SERIAL_RX_PIN PD7 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PD4 - #define Z_SERIAL_RX_PIN PD4 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD9 - #define E0_SERIAL_RX_PIN PD9 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PD8 - #define E1_SERIAL_RX_PIN PD8 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h index c2809c855329..a56889fc7e48 100644 --- a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h +++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h @@ -147,24 +147,20 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // - #define X_SERIAL_TX_PIN PD5 - #define X_SERIAL_RX_PIN PD5 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PD7 - #define Y_SERIAL_RX_PIN PD7 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PD4 - #define Z_SERIAL_RX_PIN PD4 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PD9 - #define E0_SERIAL_RX_PIN PD9 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PD8 - #define E1_SERIAL_RX_PIN PD8 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h index a60a2781495c..f2073457b13b 100644 --- a/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h @@ -51,7 +51,6 @@ #if MB(RUMBA32_V1_1) #define SERVO0_PIN PA15 - #undef BTN_PIN #if HAS_TMC_UART // diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_BTT.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_BTT.h new file mode 100644 index 000000000000..b12f4737b7c3 --- /dev/null +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_BTT.h @@ -0,0 +1,68 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * No offical schematics have been found. + * But these differences where noted in https://github.com/bigtreetech/Rumba32/issues/1 + */ + +#pragma once + +#define BOARD_INFO_NAME "RUMBA32 (BTT)" + +#if NO_EEPROM_SELECTED + #define I2C_EEPROM + #define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24LC64T-I/OT) +#endif + +#if ENABLED(FLASH_EEPROM_EMULATION) + // Decrease delays and flash wear by spreading writes across the + // 128 kB sector allocated for EEPROM emulation. + #define FLASH_EEPROM_LEVELING +#endif + +#include "pins_RUMBA32_common.h" + +#define SERVO0_PIN PA15 // Pin is not broken out, is a test point only. + +#if HAS_TMC_UART + // + // TMC2208/TMC2209 Software Serial + // + #define X_SERIAL_TX_PIN PC14 // BTT Rumba32 only uses 1 pin for UART + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN + + #define Y_SERIAL_TX_PIN PE4 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN + + #define Z_SERIAL_TX_PIN PE0 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN + + #define E0_SERIAL_TX_PIN PC13 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN + + #define E1_SERIAL_TX_PIN PD5 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN + + #define E2_SERIAL_TX_PIN PD1 + #define E2_SERIAL_RX_PIN E2_SERIAL_TX_PIN +#endif diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h index 4dce7b79c019..0b539417d6d0 100644 --- a/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h @@ -67,9 +67,6 @@ //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PA3 #define X_SERIAL_RX_PIN PC14 diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h index 7bf148874c3f..03d8d19e945a 100644 --- a/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h @@ -134,7 +134,6 @@ // Misc. Functions // #define LED_PIN PB14 -#define BTN_PIN PC10 #define PS_ON_PIN PE11 #define KILL_PIN PC5 diff --git a/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h b/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h index 5e50548c9b5c..217664e5bc2b 100644 --- a/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h +++ b/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h @@ -130,16 +130,16 @@ #if HAS_TMC_UART #define X_SERIAL_TX_PIN PB9 - #define X_SERIAL_RX_PIN PB9 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PE3 - #define Y_SERIAL_RX_PIN PE3 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PE12 - #define Z_SERIAL_RX_PIN PE12 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN - #define E_SERIAL_TX_PIN PG9 - #define E_SERIAL_RX_PIN PG9 + #define E0_SERIAL_TX_PIN PG9 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #endif // diff --git a/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h b/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h index d85bbf7bed95..991c611a89f6 100644 --- a/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h +++ b/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h @@ -131,23 +131,20 @@ //#define E6_HARDWARE_SERIAL Serial1 //#define E7_HARDWARE_SERIAL Serial1 - // - // Software serial - // #define X_SERIAL_TX_PIN PG10 - #define X_SERIAL_RX_PIN PG10 + #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN PD4 - #define Y_SERIAL_RX_PIN PD4 + #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN PD5 - #define Z_SERIAL_RX_PIN PD5 + #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN PI8 - #define E0_SERIAL_RX_PIN PI8 + #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN #define E1_SERIAL_TX_PIN PC8 - #define E1_SERIAL_RX_PIN PC8 + #define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN // Reduce baud rate to improve software serial reliability #define TMC_BAUD_RATE 19200 diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs2/max3421e.h b/Marlin/src/sd/usb_flashdrive/lib-uhs2/max3421e.h index 6cad39d0df59..f7eb9adf06d1 100644 --- a/Marlin/src/sd/usb_flashdrive/lib-uhs2/max3421e.h +++ b/Marlin/src/sd/usb_flashdrive/lib-uhs2/max3421e.h @@ -67,7 +67,7 @@ #define rCPUCTL 0x80 //16<<3 /* CPUCTL Bits */ -#define bmPUSLEWID1 0x80 //b7 +#define bmPULSEWID1 0x80 //b7 #define bmPULSEWID0 0x40 //b6 #define bmIE 0x01 //b0 diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/UHS_max3421e.h b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/UHS_max3421e.h index 8ecafd4ad895..841cc8fe75c5 100644 --- a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/UHS_max3421e.h +++ b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/UHS_max3421e.h @@ -59,19 +59,19 @@ e-mail : support@circuitsathome.com // (CPUCTL) #define rCPUCTL 0x80 //16<<3 -#define bmPUSLEWID1 0x80 //b7 +#define bmPULSEWID1 0x80 //b7 #define bmPULSEWID0 0x40 //b6 #define bmIE 0x01 //b0 -// bmPUSLEWID1 bmPULSEWID0 Pulse width +// bmPULSEWID1 bmPULSEWID0 Pulse width // 0 0 10.6uS // 0 1 5.3uS // 1 0 2.6uS // 1 1 1.3uS -#define PUSLEWIDTH10_6 (0) -#define PUSLEWIDTH5_3 (bmPULSEWID0) -#define PUSLEWIDTH2_6 (bmPUSLEWID1) -#define PUSLEWIDTH1_3 (bmPULSEWID0 | bmPUSLEWID1) +#define PULSEWIDTH10_6 (0) +#define PULSEWIDTH5_3 (bmPULSEWID0) +#define PULSEWIDTH2_6 (bmPULSEWID1) +#define PULSEWIDTH1_3 (bmPULSEWID0 | bmPULSEWID1) // (PINCTL) #define rPINCTL 0x88 //17<<3 diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/USB_HOST_SHIELD.h b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/USB_HOST_SHIELD.h index 7d17d626c1ba..79c06a492b97 100644 --- a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/USB_HOST_SHIELD.h +++ b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/USB_HOST_SHIELD/USB_HOST_SHIELD.h @@ -272,11 +272,11 @@ e-mail : support@circuitsathome.com // #define IRQ_SENSE FALLING #ifdef ARDUINO_ARCH_PIC32 -//#define bmPULSEWIDTH PUSLEWIDTH10_6 +//#define bmPULSEWIDTH PULSEWIDTH10_6 #define bmPULSEWIDTH 0 #define bmIRQ_SENSE 0 #else -#define bmPULSEWIDTH PUSLEWIDTH1_3 +#define bmPULSEWIDTH PULSEWIDTH1_3 #define bmIRQ_SENSE 0 #endif #else diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c index ba4046d5f988..99226a739d80 100644 --- a/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c @@ -79,9 +79,6 @@ WEAK const PinMap PinMap_PWM[] = { //{PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 3, 0)}, // TIM2_CH3 #if defined(STM32F103xE) || defined(STM32F103xG) //{PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM5_CH3 -#endif -#ifdef STM32F103xG - //{PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM9_CH1 #endif //{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 4, 0)}, // TIM2_CH4 #if defined(STM32F103xE) || defined(STM32F103xG) @@ -89,20 +86,11 @@ WEAK const PinMap PinMap_PWM[] = { {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM5_CH4 #else {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM2_CH4 -#endif -#if defined(STM32F103xG) - //{PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM9_CH2 #endif {PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM3_CH1 -#if defined(STM32F103xG) - //{PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM13_CH1 -#endif {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 1)}, // TIM1_CH1N //{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM3_CH2 //{PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM8_CH1N -#if defined(STM32F103xG) - //{PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM14_CH1 -#endif {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM1_CH1 //{PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 0)}, // TIM1_CH1 {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM1_CH2 @@ -132,26 +120,14 @@ WEAK const PinMap PinMap_PWM[] = { {PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM4_CH1 {PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM4_CH2 {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM4_CH3 -#if defined(STM32F103xG) - //{PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM10_CH1 -#endif {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM4_CH4 -#if defined(STM32F103xG) - //{PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM11_CH1 -#endif {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 3, 0)}, // TIM2_CH3 //{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 3, 0)}, // TIM2_CH3 {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 4, 0)}, // TIM2_CH4 //{PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 4, 0)}, // TIM2_CH4 {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM1_CH1N {PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 1)}, // TIM1_CH2N -#if defined(STM32F103xG) - //{PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM12_CH1 -#endif {PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 1)}, // TIM1_CH3N -#if defined(STM32F103xG) - //{PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM12_CH2 -#endif {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 1, 0)}, // TIM3_CH1 #if defined(STM32F103xE) || defined(STM32F103xG) //{PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM8_CH1 @@ -170,10 +146,6 @@ WEAK const PinMap PinMap_PWM[] = { {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 2, 0)}, // TIM4_CH2 {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 3, 0)}, // TIM4_CH3 {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 4, 0)}, // TIM4_CH4 -#if defined(STM32F103xG) - {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 1, 0)}, // TIM9_CH1 - {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 2, 0)}, // TIM9_CH2 -#endif {PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 1)}, // TIM1_CH1N {PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 0)}, // TIM1_CH1 {PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 2, 1)}, // TIM1_CH2N @@ -182,6 +154,8 @@ WEAK const PinMap PinMap_PWM[] = { {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 3, 0)}, // TIM1_CH3 {PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 4, 0)}, // TIM1_CH4 #endif // if 0 + {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 1, 0)}, // TIM4_CH1 TFT Backlight + {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 2, 0)}, // TIM4_CH2 Servo connector {NC, NP, 0} }; #endif diff --git a/buildroot/share/fonts/buildhzk.py b/buildroot/share/fonts/buildhzk.py new file mode 100644 index 000000000000..185cc14e973c --- /dev/null +++ b/buildroot/share/fonts/buildhzk.py @@ -0,0 +1,64 @@ +# Generate a 'HZK' font file for the T5UIC1 DWIN LCD +# from multiple bdf font files. +# Note: the 16x16 glyphs are not produced +# Author: Taylor Talkington +# License: GPL + +import bdflib.reader +import math + +def glyph_bits(size_x, size_y, font, glyph_ord): + asc = font[b'FONT_ASCENT'] + desc = font[b'FONT_DESCENT'] + bits = [0 for y in range(size_y)] + + glyph_bytes = math.ceil(size_x / 8) + try: + glyph = font[glyph_ord] + for y, row in enumerate(glyph.data): + v = row + rpad = size_x - glyph.bbW + if rpad < 0: rpad = 0 + if glyph.bbW > size_x: v = v >> (glyph.bbW - size_x) # some glyphs are actually too wide to fit! + v = v << (glyph_bytes * 8) - size_x + rpad + v = v >> glyph.bbX + bits[y + desc + glyph.bbY] |= v + except KeyError: + pass + + bits.reverse() + return bits + +def marlin_font_hzk(): + fonts = [ + [6,12,'marlin-6x12-3.bdf'], + [8,16,'marlin-8x16.bdf'], + [10,20,'marlin-10x20.bdf'], + [12,24,'marlin-12x24.bdf'], + [14,28,'marlin-14x28.bdf'], + [16,32,'marlin-16x32.bdf'], + [20,40,'marlin-20x40.bdf'], + [24,48,'marlin-24x48.bdf'], + [28,56,'marlin-28x56.bdf'], + [32,64,'marlin-32x64.bdf'] + ] + + with open('marlin_fixed.hzk','wb') as output: + for f in fonts: + with open(f[2], 'rb') as file: + print(f'{f[0]}x{f[1]}') + font = bdflib.reader.read_bdf(file) + for glyph in range(128): + bits = glyph_bits(f[0], f[1], font, glyph) + glyph_bytes = math.ceil(f[0]/8) + + for b in bits: + try: + z = b.to_bytes(glyph_bytes, 'big') + output.write(z) + except OverflowError: + print('Overflow') + print(f'{glyph}') + print(font[glyph]) + for b in bits: print(f'{b:0{f[0]}b}') + return diff --git a/buildroot/share/fonts/marlin-10x20.bdf b/buildroot/share/fonts/marlin-10x20.bdf new file mode 100644 index 000000000000..e6716d9b12a4 --- /dev/null +++ b/buildroot/share/fonts/marlin-10x20.bdf @@ -0,0 +1,4104 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 20 100 100 +FONTBOUNDINGBOX 12 19 0 -3 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 17 +FONT_DESCENT 3 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3000 +FE00 +FE00 +F180 +F180 +C180 +C180 +C180 +C780 +C780 +3F80 +0600 +0600 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +F000 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +FF80 +FF80 +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 8 0 2 +BITMAP +08 +0C +0E +FF +FF +0E +0C +08 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 14 0 0 +BITMAP +0800 +1C00 +3E00 +7F00 +FF80 +FF80 +0800 +0800 +0800 +0800 +0800 +0800 +F800 +F800 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 -2 +BITMAP +0800 +3E00 +3E00 +C980 +C980 +C980 +CF80 +CF80 +C180 +C180 +C180 +3E00 +3E00 +0800 +0800 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 11 8 0 2 +BITMAP +E700 +7380 +39C0 +1CE0 +1CE0 +39C0 +7380 +E700 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 7 15 1 -2 +BITMAP +FE +92 +92 +82 +82 +82 +82 +82 +82 +82 +82 +92 +92 +92 +FE +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 7 16 1 -3 +BITMAP +10 +28 +28 +28 +28 +28 +28 +28 +C6 +82 +92 +92 +92 +82 +82 +7C +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 4 4 1 5 +BITMAP +60 +90 +90 +60 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 1 12 4 0 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +00 +80 +80 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 4 5 2 8 +BITMAP +90 +90 +90 +90 +90 +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 10 0 0 +BITMAP +2200 +2200 +FF80 +2200 +2200 +2200 +2200 +FF80 +2200 +2200 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 16 0 -2 +BITMAP +0800 +0800 +3E00 +4900 +8880 +8880 +4800 +3E00 +0900 +0880 +0880 +8880 +4900 +3E00 +0800 +0800 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +E080 +E080 +E100 +0200 +0400 +0800 +0800 +1000 +2000 +4380 +8380 +8380 +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 0 +BITMAP +3000 +4800 +8800 +4800 +3000 +3000 +4880 +8900 +4600 +2900 +1080 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 1 5 4 8 +BITMAP +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 15 2 -2 +BITMAP +18 +20 +20 +40 +40 +40 +80 +80 +80 +40 +40 +40 +20 +20 +18 +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 15 2 -2 +BITMAP +C0 +20 +20 +10 +10 +10 +08 +08 +08 +10 +10 +10 +20 +20 +C0 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0800 +0800 +8880 +4900 +3E00 +0800 +0800 +3E00 +4900 +8880 +0800 +0800 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 9 0 1 +BITMAP +0800 +0800 +0800 +0800 +FF80 +0800 +0800 +0800 +0800 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 3 5 2 -2 +BITMAP +E0 +20 +20 +40 +80 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 1 0 5 +BITMAP +FF80 +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 2 2 3 0 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0080 +0100 +0200 +0200 +0400 +0800 +0800 +1000 +1000 +2000 +4000 +8000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8380 +8480 +9880 +E080 +8080 +4100 +2200 +1C00 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 12 2 0 +BITMAP +20 +20 +E0 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +0100 +0200 +0400 +0800 +1000 +2000 +4000 +FF80 +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF00 +0180 +0080 +0100 +0200 +0400 +0E00 +0100 +0080 +C100 +2200 +1C00 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0200 +0600 +0A00 +1200 +2200 +4200 +8200 +8200 +FF80 +0200 +0200 +0200 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF80 +8000 +8000 +8000 +FE00 +0100 +0080 +0080 +8080 +4100 +2200 +1C00 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 0 0 +BITMAP +06 +08 +10 +20 +40 +FC +82 +81 +81 +41 +22 +1C +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF80 +0080 +0080 +0100 +0200 +0400 +0800 +0800 +0800 +0800 +0800 +0800 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3E00 +4100 +8080 +8080 +4100 +3E00 +4100 +8080 +8080 +8080 +4100 +3E00 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +3C +42 +81 +81 +81 +41 +3F +01 +02 +04 +08 +70 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 2 7 2 0 +BITMAP +C0 +C0 +00 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 3 9 2 -2 +BITMAP +C0 +C0 +00 +00 +E0 +20 +20 +40 +80 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 4 8 2 2 +BITMAP +10 +20 +40 +80 +80 +40 +20 +10 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 5 0 3 +BITMAP +FF80 +0000 +0000 +0000 +FF80 +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 4 8 2 2 +BITMAP +80 +40 +20 +10 +10 +20 +40 +80 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 0 0 +BITMAP +1C +22 +41 +81 +02 +04 +08 +08 +08 +00 +00 +08 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8780 +8880 +8880 +8880 +8700 +4000 +2000 +1E00 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8080 +8080 +FF80 +8080 +8080 +8080 +8080 +8080 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +FC +42 +41 +41 +42 +7C +42 +41 +41 +41 +42 +FC +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8000 +8000 +8000 +8000 +8080 +4100 +2200 +1C00 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +F8 +44 +42 +41 +41 +41 +41 +41 +41 +42 +44 +F8 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF80 +8000 +8000 +8000 +8000 +FE00 +8000 +8000 +8000 +8000 +8000 +FF80 +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF80 +8000 +8000 +8000 +8000 +FE00 +8000 +8000 +8000 +8000 +8000 +8000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8000 +8000 +8000 +8780 +8080 +4100 +2200 +1C00 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +8080 +8080 +8080 +FF80 +8080 +8080 +8080 +8080 +8080 +8080 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 12 2 0 +BITMAP +F8 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0F80 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +8200 +4400 +3800 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +81 +82 +84 +88 +90 +E0 +A0 +90 +88 +84 +82 +81 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FF80 +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +C180 +A280 +9480 +8880 +8080 +8080 +8080 +8080 +8080 +8080 +8080 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +8080 +C080 +A080 +9080 +8880 +8480 +8280 +8180 +8080 +8080 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8080 +8080 +8080 +8080 +8080 +4100 +2200 +1C00 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 0 0 +BITMAP +FC +82 +81 +81 +81 +82 +FC +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +1C00 +2200 +4100 +8080 +8080 +8080 +8080 +8080 +8480 +4200 +2100 +1C80 +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 0 0 +BITMAP +FC +82 +81 +81 +81 +FE +90 +90 +88 +84 +82 +81 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +3C +42 +81 +80 +80 +7C +02 +01 +01 +81 +42 +3C +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF80 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +8080 +8080 +8080 +8080 +8080 +8080 +8080 +8080 +4100 +3E00 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +8080 +8080 +8080 +8080 +8080 +8080 +4100 +2200 +1400 +0800 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +8080 +8080 +8080 +8080 +8080 +8880 +8880 +8880 +5500 +2200 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +4100 +2200 +1400 +0800 +0800 +1400 +2200 +4100 +8080 +8080 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8080 +8080 +8080 +4100 +2200 +1400 +0800 +0800 +0800 +0800 +0800 +0800 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +FF80 +0080 +0080 +0100 +0200 +0400 +0800 +1000 +2000 +4000 +8000 +FF80 +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 15 2 -2 +BITMAP +F8 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +F8 +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8000 +4000 +2000 +1000 +1000 +0800 +0800 +0400 +0400 +0200 +0100 +0080 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 15 2 -2 +BITMAP +F8 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +F8 +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 5 0 8 +BITMAP +0800 +1400 +2200 +4100 +8080 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 1 0 -3 +BITMAP +FF80 +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 5 2 8 +BITMAP +80 +40 +20 +10 +08 +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +7C +02 +01 +7F +81 +81 +81 +7F +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8000 +8000 +8000 +8000 +FE00 +8100 +8080 +8080 +8080 +8080 +8100 +FE00 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 8 0 0 +BITMAP +3E +40 +80 +80 +80 +41 +22 +1C +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0080 +0080 +0080 +0080 +3F80 +4080 +8080 +8080 +8080 +8080 +4080 +3F80 +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 8 0 0 +BITMAP +7E +81 +81 +81 +FE +80 +40 +3E +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 0 +BITMAP +0E00 +1100 +2080 +2000 +2000 +F800 +2000 +2000 +2000 +2000 +2000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 -3 +BITMAP +3E00 +4100 +8080 +8080 +8080 +8080 +4080 +3F80 +0080 +0100 +3E00 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8000 +8000 +8000 +8000 +FE00 +8100 +8080 +8080 +8080 +8080 +8080 +8080 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 12 2 0 +BITMAP +20 +00 +00 +00 +E0 +20 +20 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 7 15 2 -3 +BITMAP +02 +00 +00 +00 +1E +02 +02 +02 +02 +02 +02 +02 +82 +44 +38 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +8000 +8000 +8000 +8080 +8100 +8200 +8400 +F800 +8400 +8200 +8100 +8080 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 12 2 0 +BITMAP +E0 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +F600 +8900 +8880 +8880 +8880 +8880 +8880 +8880 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +9E00 +A100 +C080 +8080 +8080 +8080 +8080 +8080 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +3E00 +4100 +8080 +8080 +8080 +8080 +4100 +3E00 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 -3 +BITMAP +FE00 +8100 +8080 +8080 +8080 +8080 +8100 +FE00 +8000 +8000 +8000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 -3 +BITMAP +3F00 +4080 +8080 +8080 +8080 +8080 +4080 +3F80 +0080 +0080 +0080 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +9E00 +A100 +C080 +8000 +8000 +8000 +8000 +8000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +3F80 +4000 +4000 +3E00 +0100 +0080 +0100 +FE00 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0800 +0800 +0800 +0800 +FF80 +0800 +0800 +0800 +0800 +0800 +0400 +0380 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +8080 +8080 +8080 +8080 +8180 +8280 +4480 +3880 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +8080 +8080 +8080 +8080 +4100 +2200 +1400 +0800 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +8080 +8080 +8080 +8880 +8880 +8880 +5500 +2200 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 9 0 0 +BITMAP +8080 +4100 +2200 +1400 +0800 +1400 +2200 +4100 +8080 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 -3 +BITMAP +8080 +8080 +8080 +8080 +4100 +2200 +1400 +0800 +1000 +2000 +4000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 8 8 0 0 +BITMAP +FF +02 +04 +08 +10 +20 +40 +FF +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 4 16 3 -2 +BITMAP +10 +20 +40 +40 +40 +40 +40 +80 +80 +40 +40 +40 +40 +40 +20 +10 +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 1 15 4 -2 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 4 16 2 -2 +BITMAP +80 +40 +20 +20 +20 +20 +20 +10 +10 +20 +20 +20 +20 +20 +40 +80 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 10 5 0 3 +BITMAP +3040 +4840 +8880 +8500 +8200 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 360 0 +DWIDTH 5 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 1 12 4 0 +BITMAP +80 +80 +00 +00 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 -2 +BITMAP +0800 +0800 +3E00 +C980 +C980 +C800 +C800 +C980 +3E00 +3E00 +0800 +0800 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0E00 +0E00 +3180 +3180 +3000 +F800 +F800 +3000 +3000 +3180 +CE00 +CE00 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +C980 +3600 +3600 +C180 +C180 +3600 +C980 +C980 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +C180 +C180 +3600 +3600 +FF80 +0800 +0800 +FF80 +FF80 +0800 +0800 +0800 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 1 12 4 0 +BITMAP +80 +80 +80 +80 +80 +00 +00 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 7 13 2 0 +BITMAP +3E +C0 +C0 +38 +38 +C6 +C6 +C6 +38 +38 +06 +F8 +F8 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 1 2 12 +BITMAP +D8 +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 10 12 0 0 +BITMAP +3F80 +3F80 +C040 +C040 +CE40 +C840 +C840 +CE40 +CE40 +C040 +3F80 +3F80 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 8 2 7 +BITMAP +38 +38 +D8 +38 +38 +00 +00 +F8 +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +0980 +3600 +3600 +C800 +C800 +3600 +0980 +0980 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 5 0 2 +BITMAP +FF80 +FF80 +0180 +0180 +0180 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 2 2 5 +BITMAP +F8 +F8 +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 10 12 0 0 +BITMAP +3F80 +3F80 +C040 +C040 +CE40 +C840 +C840 +C840 +C840 +C040 +3F80 +3F80 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 1 0 12 +BITMAP +FF80 +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 7 7 2 8 +BITMAP +38 +38 +C6 +C6 +C6 +38 +38 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0800 +0800 +0800 +0800 +FF80 +0800 +0800 +0800 +0800 +0000 +FF80 +FF80 +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 8 2 7 +BITMAP +20 +20 +D8 +18 +18 +20 +20 +F8 +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 8 2 7 +BITMAP +E0 +E0 +18 +20 +20 +18 +18 +E0 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 5 2 8 +BITMAP +18 +20 +20 +C0 +C0 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 -3 +BITMAP +C180 +C180 +C180 +C180 +C180 +C780 +F980 +F980 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3F80 +F980 +F980 +F980 +F980 +F980 +3980 +3980 +0980 +0980 +0980 +0980 +0980 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 3 3 4 5 +BITMAP +E0 +E0 +E0 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 3 2 -3 +BITMAP +18 +18 +E0 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 8 2 7 +BITMAP +20 +20 +E0 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 9 2 8 +BITMAP +20 +20 +D8 +D8 +20 +00 +00 +F8 +F8 +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +C800 +3600 +3600 +0980 +0980 +3600 +C800 +C800 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3000 +3000 +F000 +F000 +3180 +3600 +3600 +3800 +3800 +3600 +CE00 +CE00 +3600 +3600 +3F80 +0600 +0600 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3000 +3000 +F000 +F000 +3180 +3600 +3600 +3800 +3800 +3600 +C980 +C980 +0180 +0180 +0600 +0F80 +0F80 +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +F000 +F000 +0800 +0800 +3180 +0E00 +0E00 +F800 +F800 +3600 +CE00 +CE00 +3600 +3600 +3F80 +0600 +0600 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +0800 +0800 +0000 +0000 +0800 +0800 +0800 +3000 +3000 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3000 +3000 +0800 +0800 +0000 +3E00 +3E00 +C180 +C180 +C180 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0600 +0600 +0800 +0800 +0000 +3E00 +3E00 +C180 +C180 +C180 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0800 +0800 +3600 +3600 +0000 +3E00 +3E00 +C180 +C180 +C180 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3980 +3980 +CE00 +CE00 +0000 +3E00 +3E00 +C180 +C180 +C180 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 0 +BITMAP +3600 +3600 +0000 +3E00 +3E00 +C180 +C180 +C180 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0800 +0800 +3600 +3600 +0800 +3E00 +3E00 +C180 +C180 +C180 +FF80 +FF80 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3F80 +3F80 +C800 +C800 +C800 +FE00 +FE00 +C800 +C800 +C800 +CF80 +CF80 +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 -3 +BITMAP +3E00 +3E00 +C180 +C180 +C000 +C000 +C000 +C000 +C000 +C180 +3E00 +3E00 +0600 +0600 +3800 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3000 +3000 +0800 +0800 +0000 +FF80 +FF80 +C000 +C000 +C000 +FE00 +FE00 +C000 +C000 +C000 +FF80 +FF80 +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0600 +0600 +0800 +0800 +0000 +FF80 +FF80 +C000 +C000 +C000 +FE00 +FE00 +C000 +C000 +C000 +FF80 +FF80 +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0800 +0800 +3600 +3600 +0000 +FF80 +FF80 +C000 +C000 +C000 +FE00 +FE00 +C000 +C000 +C000 +FF80 +FF80 +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 0 +BITMAP +3600 +3600 +0000 +FF80 +FF80 +C000 +C000 +C000 +FE00 +FE00 +C000 +C000 +C000 +FF80 +FF80 +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 17 2 0 +BITMAP +C0 +C0 +20 +20 +00 +F8 +F8 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 17 2 0 +BITMAP +18 +18 +20 +20 +00 +F8 +F8 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 17 2 0 +BITMAP +20 +20 +D8 +D8 +00 +F8 +F8 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 15 2 0 +BITMAP +D8 +D8 +00 +F8 +F8 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3E00 +3E00 +3180 +3180 +3180 +F980 +F980 +3180 +3180 +3180 +3E00 +3E00 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3980 +3980 +CE00 +CE00 +0000 +C180 +C180 +C180 +C180 +F180 +C980 +C980 +C780 +C780 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3000 +3000 +0800 +0800 +0000 +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0600 +0600 +0800 +0800 +0000 +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0800 +0800 +3600 +3600 +0000 +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3980 +3980 +CE00 +CE00 +0000 +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 0 +BITMAP +3600 +3600 +0000 +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 2 +BITMAP +C180 +C180 +3600 +0800 +0800 +3600 +3600 +C180 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 -2 +BITMAP +0180 +3E00 +3E00 +C780 +C780 +C980 +C980 +C980 +C980 +C980 +F180 +3E00 +3E00 +C000 +C000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +3000 +3000 +0800 +0800 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0600 +0600 +0800 +0800 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0800 +0800 +3600 +3600 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 0 +BITMAP +3600 +3600 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 17 0 0 +BITMAP +0600 +0600 +0800 +0800 +0000 +C180 +C180 +C180 +C180 +3600 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 7 12 2 0 +BITMAP +C0 +C0 +F8 +F8 +C6 +C6 +C6 +C6 +C6 +F8 +C0 +C0 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3E00 +3E00 +C180 +C180 +C600 +C800 +C800 +C600 +C600 +C180 +CE00 +CE00 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3000 +0800 +0800 +0000 +0000 +3E00 +0180 +0180 +3F80 +3F80 +C180 +3F80 +3F80 +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0600 +0800 +0800 +0000 +0000 +3E00 +0180 +0180 +3F80 +3F80 +C180 +3F80 +3F80 +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0800 +3600 +3600 +0000 +0000 +3E00 +0180 +0180 +3F80 +3F80 +C180 +3F80 +3F80 +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3980 +CE00 +CE00 +0000 +0000 +3E00 +0180 +0180 +3F80 +3F80 +C180 +3F80 +3F80 +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3600 +3600 +0000 +0000 +3E00 +0180 +0180 +3F80 +3F80 +C180 +3F80 +3F80 +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0800 +3600 +3600 +0800 +0800 +3E00 +0180 +0180 +3F80 +3F80 +C180 +3F80 +3F80 +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +3E00 +0980 +0980 +3E00 +3E00 +C800 +3F80 +3F80 +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 11 0 -3 +BITMAP +3E00 +C180 +C180 +C000 +C000 +C180 +3E00 +3E00 +0600 +0600 +3800 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3000 +0800 +0800 +0000 +0000 +3E00 +C180 +C180 +FE00 +FE00 +C000 +3E00 +3E00 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0600 +0800 +0800 +0000 +0000 +3E00 +C180 +C180 +FE00 +FE00 +C000 +3E00 +3E00 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0800 +3600 +3600 +0000 +0000 +3E00 +C180 +C180 +FE00 +FE00 +C000 +3E00 +3E00 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3600 +3600 +0000 +0000 +3E00 +C180 +C180 +FE00 +FE00 +C000 +3E00 +3E00 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 13 2 0 +BITMAP +C0 +20 +20 +00 +00 +E0 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 13 2 0 +BITMAP +18 +20 +20 +00 +00 +E0 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 13 2 0 +BITMAP +20 +D8 +D8 +00 +00 +E0 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 5 12 2 0 +BITMAP +D8 +D8 +00 +00 +E0 +20 +20 +20 +20 +20 +F8 +F8 +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 0 +BITMAP +3600 +3600 +0800 +3600 +3600 +0180 +0180 +3F80 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3980 +CE00 +CE00 +0000 +0000 +CE00 +F180 +F180 +C180 +C180 +C180 +C180 +C180 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3000 +0800 +0800 +0000 +0000 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0600 +0800 +0800 +0000 +0000 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0800 +3600 +3600 +0000 +0000 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3980 +CE00 +CE00 +0000 +0000 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3600 +3600 +0000 +0000 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 2 +BITMAP +0800 +0800 +0000 +FF80 +FF80 +0000 +0000 +0800 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 8 0 0 +BITMAP +3F80 +C780 +C780 +C980 +C980 +F180 +FE00 +FE00 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3000 +0800 +0800 +0000 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0600 +0800 +0800 +0000 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +0800 +3600 +3600 +0000 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 12 0 0 +BITMAP +3600 +3600 +0000 +0000 +C180 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 16 0 -3 +BITMAP +0600 +0800 +0800 +0000 +0000 +C180 +C180 +C180 +C180 +C180 +3600 +0800 +0800 +3000 +3000 +C000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 -3 +BITMAP +C000 +C000 +C000 +C000 +FE00 +C180 +C180 +C180 +C180 +C180 +FE00 +FE00 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 15 0 -3 +BITMAP +3600 +3600 +0000 +0000 +C180 +C180 +C180 +C180 +C180 +3600 +0800 +0800 +3000 +3000 +C000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-12x24.bdf b/buildroot/share/fonts/marlin-12x24.bdf new file mode 100644 index 000000000000..b8b85e328696 --- /dev/null +++ b/buildroot/share/fonts/marlin-12x24.bdf @@ -0,0 +1,4558 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 24 100 100 +FONTBOUNDINGBOX 14 23 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 22 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3000 +3000 +FF00 +FF00 +F0C0 +F0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C3C0 +C3C0 +3FC0 +3FC0 +0300 +0300 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +F000 +F000 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 4 +BITMAP +0C00 +0E00 +0F00 +0F80 +FFC0 +FFC0 +0F80 +0F00 +0E00 +0C00 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0C00 +1E00 +3F00 +7F80 +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +FC00 +FC00 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 0 +BITMAP +0C00 +0C00 +3F00 +3F00 +CCC0 +CCC0 +CCC0 +CCC0 +CFC0 +CFC0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +0C00 +0C00 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 13 10 0 4 +BITMAP +F380 +F380 +3DE0 +3DE0 +0E78 +0E78 +3DE0 +3DE0 +F380 +F380 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 0 +BITMAP +FFC0 +FFC0 +CCC0 +CCC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +CCC0 +CCC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 -2 +BITMAP +0C00 +1E00 +3300 +3300 +3300 +3300 +3300 +3300 +3300 +7380 +E1C0 +C0C0 +CCC0 +CCC0 +CCC0 +CCC0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 6 0 8 +BITMAP +30 +78 +CC +CC +78 +30 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 2 14 4 2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 6 2 12 +BITMAP +CC +CC +CC +CC +CC +CC +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 12 0 2 +BITMAP +3300 +3300 +FFC0 +FFC0 +3300 +3300 +3300 +3300 +FFC0 +FFC0 +3300 +3300 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 19 0 0 +BITMAP +0C00 +0C00 +1E00 +3F00 +6F80 +CDC0 +CCC0 +CC00 +EC00 +7F00 +3F80 +0DC0 +0CC0 +CCC0 +EDC0 +7F80 +3F00 +0C00 +0C00 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +E0C0 +E0C0 +E0C0 +01C0 +0380 +0700 +0E00 +1C00 +3800 +7000 +E000 +C1C0 +C1C0 +C1C0 +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3000 +7800 +CC00 +CC00 +CC00 +CC00 +7800 +7800 +DCC0 +CFC0 +C780 +C780 +7FC0 +3CC0 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 2 6 4 12 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 0 +BITMAP +0C +1C +38 +30 +60 +60 +C0 +C0 +C0 +C0 +C0 +C0 +E0 +60 +70 +38 +1C +0C +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 0 +BITMAP +C0 +E0 +70 +30 +18 +18 +0C +0C +0C +0C +0C +0C +18 +18 +30 +70 +E0 +C0 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0C00 +0C00 +CCC0 +EDC0 +7F80 +3F00 +0C00 +0C00 +3F00 +7F80 +EDC0 +CCC0 +0C00 +0C00 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 4 +BITMAP +0C00 +0C00 +0C00 +0C00 +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 4 6 2 0 +BITMAP +F0 +F0 +30 +30 +E0 +C0 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 2 0 8 +BITMAP +FFC0 +FFC0 +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 4 4 2 2 +BITMAP +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +00C0 +01C0 +0380 +0300 +0300 +0700 +0E00 +1C00 +3800 +3000 +3000 +7000 +E000 +C000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +C0C0 +C1C0 +C3C0 +C7C0 +CEC0 +DCC0 +F8C0 +F0C0 +E0C0 +C0C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 14 2 2 +BITMAP +30 +30 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +C0C0 +C0C0 +00C0 +01C0 +0380 +0700 +0E00 +1C00 +3800 +7000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +00C0 +01C0 +0380 +0700 +0F00 +0F80 +01C0 +00C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0300 +0700 +0F00 +1F00 +3B00 +7300 +E300 +C300 +FFC0 +FFC0 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +C000 +C000 +FF00 +FF80 +01C0 +00C0 +00C0 +00C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0F00 +1F00 +3800 +7000 +E000 +C000 +FF00 +FF80 +C1C0 +C0C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +00C0 +00C0 +0180 +0300 +0600 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +C0C0 +C0C0 +C0C0 +C0C0 +7F80 +7F80 +C0C0 +C0C0 +C0C0 +C0C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +C0C0 +C0C0 +C0C0 +C0C0 +7FC0 +3FC0 +00C0 +01C0 +0380 +0700 +3E00 +3C00 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 4 10 2 2 +BITMAP +F0 +F0 +F0 +F0 +00 +00 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 4 12 2 0 +BITMAP +F0 +F0 +F0 +F0 +00 +00 +F0 +F0 +30 +30 +E0 +C0 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 4 +BITMAP +0C +1C +38 +70 +E0 +E0 +70 +38 +1C +0C +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 6 0 6 +BITMAP +FFC0 +FFC0 +0000 +0000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 4 +BITMAP +C0 +E0 +70 +38 +1C +1C +38 +70 +E0 +C0 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +E1C0 +C1C0 +0380 +0700 +0E00 +0C00 +0C00 +0C00 +0000 +0000 +0C00 +0C00 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +C0C0 +C0C0 +C7C0 +CFC0 +CCC0 +CCC0 +CFC0 +C780 +C000 +C000 +7F00 +3F00 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FF00 +FF80 +30C0 +30C0 +30C0 +30C0 +3F80 +3F80 +30C0 +30C0 +30C0 +30C0 +FF80 +FF00 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C000 +C000 +C000 +C000 +C000 +C000 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FF00 +FF80 +31C0 +30C0 +30C0 +30C0 +30C0 +30C0 +30C0 +30C0 +30C0 +31C0 +FF80 +FF00 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +C000 +C000 +C000 +C000 +FF00 +FF00 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +C000 +C000 +C000 +C000 +FF00 +FF00 +C000 +C000 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C000 +C000 +C000 +C000 +C3C0 +C3C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 14 2 2 +BITMAP +FC +FC +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0FC0 +0FC0 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +C300 +E700 +7E00 +3C00 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C1C0 +C380 +C700 +CE00 +DC00 +F800 +F800 +DC00 +CE00 +C700 +C380 +C1C0 +C0C0 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +E1C0 +F3C0 +FFC0 +DEC0 +CCC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +E0C0 +F0C0 +F8C0 +DCC0 +CEC0 +C7C0 +C3C0 +C1C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FF00 +FF80 +C1C0 +C0C0 +C0C0 +C1C0 +FF80 +FF00 +C000 +C000 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +CCC0 +CEC0 +C700 +E380 +7DC0 +3CC0 +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FF00 +FF80 +C1C0 +C0C0 +C0C0 +C1C0 +FF80 +FF00 +DC00 +CE00 +C700 +C380 +C1C0 +C0C0 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C000 +E000 +7F00 +3F80 +01C0 +00C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +0C00 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +CCC0 +CCC0 +CCC0 +FFC0 +7F80 +3300 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +1E00 +3F00 +7380 +E1C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +FFC0 +FFC0 +00C0 +01C0 +0380 +0700 +0E00 +1C00 +3800 +7000 +E000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 0 +BITMAP +FC +FC +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +FC +FC +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C000 +E000 +7000 +3000 +3000 +3800 +1C00 +0E00 +0700 +0300 +0300 +0380 +01C0 +00C0 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 0 +BITMAP +FC +FC +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +FC +FC +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 6 0 12 +BITMAP +0C00 +1E00 +3F00 +7380 +E1C0 +C0C0 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 2 0 -2 +BITMAP +FFC0 +FFC0 +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 6 2 12 +BITMAP +C0 +E0 +70 +38 +1C +0C +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3F00 +3F80 +01C0 +00C0 +3FC0 +7FC0 +C0C0 +C0C0 +7FC0 +3FC0 +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C000 +C000 +C000 +C000 +FF00 +FF80 +C1C0 +C0C0 +C0C0 +C0C0 +C0C0 +C1C0 +FF80 +FF00 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3F00 +7F00 +E000 +C000 +C000 +C000 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +00C0 +00C0 +00C0 +00C0 +3FC0 +7FC0 +E0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E0C0 +7FC0 +3FC0 +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +FF80 +FF00 +C000 +E000 +7F00 +3F00 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0F00 +1F80 +39C0 +30C0 +3000 +3000 +FC00 +FC00 +3000 +3000 +3000 +3000 +3000 +3000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 -2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C0C0 +C0C0 +C0C0 +E0C0 +7FC0 +3FC0 +00C0 +01C0 +3F80 +3F00 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C000 +C000 +C000 +C000 +FF00 +FF80 +C1C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 14 2 2 +BITMAP +30 +30 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 8 18 2 -2 +BITMAP +03 +03 +00 +00 +0F +0F +03 +03 +03 +03 +03 +03 +03 +03 +C3 +E7 +7E +3C +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C000 +C000 +C000 +C000 +C0C0 +C1C0 +C380 +C700 +FE00 +FE00 +C700 +C380 +C1C0 +C0C0 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 14 2 2 +BITMAP +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +F300 +FF80 +DFC0 +CCC0 +CCC0 +CCC0 +CCC0 +CCC0 +CCC0 +CCC0 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +CF00 +DF80 +F9C0 +F0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3F00 +7F80 +E1C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 -2 +BITMAP +FF00 +FF80 +C1C0 +C0C0 +C0C0 +C0C0 +C0C0 +C1C0 +FF80 +FF00 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 -2 +BITMAP +3FC0 +7FC0 +E0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E0C0 +7FC0 +3FC0 +00C0 +00C0 +00C0 +00C0 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +CF00 +DF80 +F9C0 +F0C0 +C000 +C000 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3FC0 +7FC0 +C000 +C000 +7F00 +3F80 +00C0 +00C0 +FF80 +FF00 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0C00 +0C00 +0C00 +0C00 +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +0C00 +0E00 +07C0 +03C0 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C3C0 +E7C0 +7EC0 +3CC0 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +0C00 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +CCC0 +CCC0 +CCC0 +FFC0 +7F80 +3300 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +C0C0 +E1C0 +7380 +3F00 +1E00 +1E00 +3F00 +7380 +E1C0 +C0C0 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 -2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +1C00 +3800 +7000 +E000 +C000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +FFC0 +FFC0 +0380 +0700 +0E00 +1C00 +3800 +7000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 0 +BITMAP +0C +1C +38 +30 +30 +30 +30 +70 +C0 +C0 +70 +30 +30 +30 +30 +38 +1C +0C +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 2 18 4 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 0 +BITMAP +C0 +E0 +70 +30 +30 +30 +30 +38 +0C +0C +38 +30 +30 +30 +30 +70 +E0 +C0 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 6 0 6 +BITMAP +30C0 +78C0 +DCC0 +CEC0 +C780 +C300 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 504 0 +DWIDTH 7 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 2 14 4 2 +BITMAP +C0 +C0 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 0 +BITMAP +0C00 +0C00 +3F00 +3F00 +CCC0 +CCC0 +CC00 +CC00 +CCC0 +CCC0 +3F00 +3F00 +0C00 +0C00 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0F00 +0F00 +30C0 +30C0 +3000 +3000 +FC00 +FC00 +3000 +3000 +30C0 +30C0 +CF00 +CF00 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +CCC0 +CCC0 +3300 +3300 +C0C0 +C0C0 +3300 +3300 +CCC0 +CCC0 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +C0C0 +C0C0 +3300 +3300 +FFC0 +FFC0 +0C00 +0C00 +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 2 14 4 2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 8 16 2 2 +BITMAP +3F +3F +C0 +C0 +3C +3C +C3 +C3 +C3 +C3 +3C +3C +03 +03 +FC +FC +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 2 2 16 +BITMAP +CC +CC +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 12 14 0 2 +BITMAP +3FC0 +3FC0 +C030 +C030 +CF30 +CF30 +CC30 +CC30 +CF30 +CF30 +C030 +C030 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 10 +BITMAP +3C +3C +CC +CC +3C +3C +00 +00 +FC +FC +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +0CC0 +0CC0 +3300 +3300 +CC00 +CC00 +3300 +3300 +0CC0 +0CC0 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 6 0 4 +BITMAP +FFC0 +FFC0 +00C0 +00C0 +00C0 +00C0 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 2 2 8 +BITMAP +FC +FC +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 12 14 0 2 +BITMAP +3FC0 +3FC0 +C030 +C030 +CF30 +CF30 +CC30 +CC30 +CC30 +CC30 +C030 +C030 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 2 0 16 +BITMAP +FFC0 +FFC0 +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 8 8 2 12 +BITMAP +3C +3C +C3 +C3 +C3 +C3 +3C +3C +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0C00 +0C00 +0C00 +0C00 +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +0000 +0000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 10 +BITMAP +30 +30 +CC +CC +0C +0C +30 +30 +FC +FC +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 10 +BITMAP +F0 +F0 +0C +0C +30 +30 +0C +0C +F0 +F0 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 6 2 12 +BITMAP +0C +0C +30 +30 +C0 +C0 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 -2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C3C0 +C3C0 +FCC0 +FCC0 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3FC0 +3FC0 +FCC0 +FCC0 +FCC0 +FCC0 +FCC0 +FCC0 +3CC0 +3CC0 +0CC0 +0CC0 +0CC0 +0CC0 +0CC0 +0CC0 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 4 4 4 8 +BITMAP +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 4 2 -2 +BITMAP +0C +0C +F0 +F0 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 10 +BITMAP +30 +30 +F0 +F0 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 10 2 12 +BITMAP +30 +30 +CC +CC +30 +30 +00 +00 +FC +FC +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +CC00 +CC00 +3300 +3300 +0CC0 +0CC0 +3300 +3300 +CC00 +CC00 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3000 +3000 +F000 +F000 +30C0 +30C0 +3300 +3300 +3C00 +3C00 +3300 +3300 +CF00 +CF00 +3300 +3300 +3FC0 +3FC0 +0300 +0300 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3000 +3000 +F000 +F000 +30C0 +30C0 +3300 +3300 +3C00 +3C00 +3300 +3300 +CCC0 +CCC0 +00C0 +00C0 +0300 +0300 +0FC0 +0FC0 +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +F000 +F000 +0C00 +0C00 +30C0 +30C0 +0F00 +0F00 +FC00 +FC00 +3300 +3300 +CF00 +CF00 +3300 +3300 +3FC0 +3FC0 +0300 +0300 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +0C00 +0C00 +0000 +0000 +0C00 +0C00 +0C00 +0C00 +3000 +3000 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3CC0 +3CC0 +CF00 +CF00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 2 +BITMAP +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0C00 +0C00 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +FFC0 +FFC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3FC0 +3FC0 +CC00 +CC00 +CC00 +CC00 +FF00 +FF00 +CC00 +CC00 +CC00 +CC00 +CFC0 +CFC0 +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 -2 +BITMAP +3F00 +3F00 +C0C0 +C0C0 +C000 +C000 +C000 +C000 +C000 +C000 +C0C0 +C0C0 +3F00 +3F00 +0300 +0300 +3C00 +3C00 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +FFC0 +FFC0 +C000 +C000 +C000 +C000 +FF00 +FF00 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +FFC0 +FFC0 +C000 +C000 +C000 +C000 +FF00 +FF00 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +FFC0 +FFC0 +C000 +C000 +C000 +C000 +FF00 +FF00 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 2 +BITMAP +3300 +3300 +0000 +0000 +FFC0 +FFC0 +C000 +C000 +C000 +C000 +FF00 +FF00 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 20 2 2 +BITMAP +C0 +C0 +30 +30 +00 +00 +FC +FC +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 20 2 2 +BITMAP +0C +0C +30 +30 +00 +00 +FC +FC +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 20 2 2 +BITMAP +30 +30 +CC +CC +00 +00 +FC +FC +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 18 2 2 +BITMAP +CC +CC +00 +00 +FC +FC +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +3F00 +30C0 +30C0 +30C0 +30C0 +FCC0 +FCC0 +30C0 +30C0 +30C0 +30C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3CC0 +3CC0 +CF00 +CF00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +F0C0 +F0C0 +CCC0 +CCC0 +C3C0 +C3C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3CC0 +3CC0 +CF00 +CF00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 2 +BITMAP +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 4 +BITMAP +C0C0 +C0C0 +3300 +3300 +0C00 +0C00 +3300 +3300 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 0 +BITMAP +00C0 +00C0 +3F00 +3F00 +C3C0 +C3C0 +CCC0 +CCC0 +CCC0 +CCC0 +CCC0 +CCC0 +F0C0 +F0C0 +3F00 +3F00 +C000 +C000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 2 +BITMAP +3300 +3300 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +3300 +3300 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 8 14 2 2 +BITMAP +C0 +C0 +FC +FC +C3 +C3 +C3 +C3 +C3 +C3 +FC +FC +C0 +C0 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3F00 +3F00 +C0C0 +C0C0 +C300 +C300 +CC00 +CC00 +C300 +C300 +C0C0 +C0C0 +CF00 +CF00 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +3F00 +3F00 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3CC0 +3CC0 +CF00 +CF00 +0000 +0000 +3F00 +3F00 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3300 +3300 +0000 +0000 +3F00 +3F00 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0C00 +0C00 +3F00 +3F00 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3F00 +3F00 +0CC0 +0CC0 +3F00 +3F00 +CC00 +CC00 +3FC0 +3FC0 +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 -2 +BITMAP +3F00 +3F00 +C0C0 +C0C0 +C000 +C000 +C0C0 +C0C0 +3F00 +3F00 +0300 +0300 +3C00 +3C00 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +FF00 +FF00 +C000 +C000 +3F00 +3F00 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +FF00 +FF00 +C000 +C000 +3F00 +3F00 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +FF00 +FF00 +C000 +C000 +3F00 +3F00 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +FF00 +FF00 +C000 +C000 +3F00 +3F00 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 16 2 2 +BITMAP +C0 +C0 +30 +30 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 16 2 2 +BITMAP +0C +0C +30 +30 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 16 2 2 +BITMAP +30 +30 +CC +CC +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 6 14 2 2 +BITMAP +CC +CC +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +FC +FC +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 2 +BITMAP +3300 +3300 +0C00 +0C00 +3300 +3300 +00C0 +00C0 +3FC0 +3FC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3CC0 +3CC0 +CF00 +CF00 +0000 +0000 +CF00 +CF00 +F0C0 +F0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3CC0 +3CC0 +CF00 +CF00 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3300 +3300 +0000 +0000 +3F00 +3F00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 4 +BITMAP +0C00 +0C00 +0000 +0000 +FFC0 +FFC0 +0000 +0000 +0C00 +0C00 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 10 0 2 +BITMAP +3FC0 +3FC0 +C3C0 +C3C0 +CCC0 +CCC0 +F0C0 +F0C0 +FF00 +FF00 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +3000 +3000 +0C00 +0C00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 16 0 2 +BITMAP +0C00 +0C00 +3300 +3300 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 14 0 2 +BITMAP +3300 +3300 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 20 0 -2 +BITMAP +0300 +0300 +0C00 +0C00 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3300 +3300 +0C00 +0C00 +3000 +3000 +C000 +C000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 -2 +BITMAP +C000 +C000 +C000 +C000 +FF00 +FF00 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +FF00 +FF00 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 864 0 +DWIDTH 12 0 +BBX 10 18 0 -2 +BITMAP +3300 +3300 +0000 +0000 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +3300 +3300 +0C00 +0C00 +3000 +3000 +C000 +C000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-14x28.bdf b/buildroot/share/fonts/marlin-14x28.bdf new file mode 100644 index 000000000000..8a91ff060551 --- /dev/null +++ b/buildroot/share/fonts/marlin-14x28.bdf @@ -0,0 +1,5078 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 28 100 100 +FONTBOUNDINGBOX 16 27 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. orig" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 26 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1800 +1800 +FFC0 +FFC0 +FFC0 +F830 +F830 +E030 +E030 +E030 +E030 +E030 +E1F0 +E1F0 +1FF0 +1FF0 +01C0 +01C0 +01C0 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +F800 +F800 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 11 0 5 +BITMAP +0600 +0700 +0780 +07C0 +FFE0 +FFF0 +FFE0 +07C0 +0780 +0700 +0600 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +0600 +0F00 +1F80 +3FC0 +7FE0 +FFF0 +FFF0 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +FE00 +FE00 +FE00 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 0 +BITMAP +0600 +0600 +1FC0 +1FC0 +1FC0 +E630 +E630 +E630 +E630 +E7F0 +E7F0 +E7F0 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +0600 +0600 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 13 11 1 5 +BITMAP +E380 +F3C0 +79E0 +3CF0 +1E78 +1E78 +1E78 +3CF0 +79E0 +F3C0 +E380 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 0 +BITMAP +FFF0 +FFF0 +E630 +E630 +E630 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E630 +E630 +E630 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 23 1 -2 +BITMAP +0C00 +0C00 +3300 +3300 +3300 +3300 +3300 +3300 +3300 +3300 +3300 +3300 +C0C0 +C0C0 +CCC0 +CCC0 +CCC0 +CCC0 +CCC0 +C0C0 +C0C0 +3F00 +3F00 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 6 6 1 10 +BITMAP +30 +78 +CC +CC +78 +30 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 2 17 5 2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 6 7 3 14 +BITMAP +CC +CC +CC +CC +CC +CC +CC +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 14 0 2 +BITMAP +1980 +1980 +FFF0 +FFF0 +1980 +1980 +1980 +1980 +1980 +FFF0 +FFF0 +1980 +1980 +1980 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 0 +BITMAP +0600 +0600 +1F80 +3FC0 +76E0 +E670 +C630 +C600 +E600 +7600 +3F80 +1FC0 +06E0 +0670 +C630 +E670 +76E0 +3FC0 +1F80 +0600 +0600 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +F060 +F060 +F060 +F060 +00E0 +03C0 +0780 +0E00 +0C00 +1C00 +3800 +7000 +E000 +C1E0 +C1E0 +C1E0 +C1E0 +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +1800 +3C00 +7E00 +E600 +C600 +C600 +EE00 +7C00 +3800 +7C00 +EE30 +C770 +C3E0 +E3E0 +7F70 +3E30 +1C30 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 2 7 5 14 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 21 3 0 +BITMAP +0E +1E +38 +70 +60 +E0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +E0 +60 +70 +38 +1E +0E +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 21 3 0 +BITMAP +E0 +F0 +38 +1C +0C +0E +06 +06 +06 +06 +06 +06 +06 +06 +06 +0E +0C +1C +38 +F0 +E0 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +0600 +0600 +0600 +E670 +F6F0 +3FC0 +1F80 +0600 +0600 +0600 +1F80 +3FC0 +F6F0 +E670 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 4 +BITMAP +0600 +0600 +0600 +0600 +0600 +FFF0 +FFF0 +0600 +0600 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 4 7 3 0 +BITMAP +F0 +F0 +30 +30 +70 +E0 +C0 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 3 0 9 +BITMAP +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 4 5 3 2 +BITMAP +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +0030 +0030 +0070 +00E0 +01C0 +0180 +0380 +0300 +0700 +0E00 +1C00 +1800 +3800 +7000 +E000 +C000 +C000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +1F80 +3FC0 +6060 +C030 +C070 +C0F0 +C1B0 +C330 +C630 +CC30 +D830 +F030 +E030 +C030 +6060 +3FC0 +1F80 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 17 3 2 +BITMAP +30 +30 +30 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +1FC0 +3FE0 +7060 +E030 +C030 +0030 +0070 +00E0 +01C0 +0380 +0700 +0E00 +1C00 +3800 +7000 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +FFF0 +FFF0 +0030 +0030 +0070 +00E0 +01C0 +0380 +07C0 +03E0 +0070 +0030 +E030 +7070 +38E0 +1FC0 +0F80 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 0 2 +BITMAP +0180 +0180 +0380 +0780 +0F80 +1D80 +3980 +7180 +E180 +C180 +FFE0 +FFE0 +0180 +0180 +0180 +0180 +0180 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +FFF0 +FFF0 +C000 +C000 +C000 +FFC0 +FFE0 +0070 +0030 +0030 +0030 +0030 +E030 +7070 +38E0 +1FC0 +0F80 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +03C0 +07C0 +0E00 +1C00 +3800 +7000 +E000 +C000 +FFC0 +FFE0 +C070 +C030 +C030 +E030 +7070 +3FE0 +1FC0 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +FFF0 +FFF0 +0030 +0030 +0030 +0070 +00E0 +01C0 +0380 +0700 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C060 +C060 +C060 +E0E0 +7FC0 +7FC0 +E0E0 +C060 +C060 +C060 +E0E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +3F80 +7FC0 +E0C0 +C060 +C060 +C060 +C060 +E060 +7FE0 +3FE0 +0060 +00E0 +01C0 +0380 +0700 +1E00 +1C00 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 4 11 3 2 +BITMAP +F0 +F0 +F0 +F0 +00 +00 +00 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 4 13 3 0 +BITMAP +F0 +F0 +F0 +F0 +00 +00 +F0 +F0 +30 +30 +70 +E0 +C0 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 13 3 4 +BITMAP +06 +0E +1C +38 +70 +E0 +C0 +E0 +70 +38 +1C +0E +06 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 7 0 7 +BITMAP +FFF0 +FFF0 +0000 +0000 +0000 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 13 2 4 +BITMAP +C0 +E0 +70 +38 +1C +0E +06 +0E +1C +38 +70 +E0 +C0 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 0 2 +BITMAP +1F80 +3FC0 +70E0 +E060 +C060 +00E0 +01C0 +0380 +0700 +0600 +0600 +0600 +0000 +0000 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +1F00 +3F80 +71C0 +E0E0 +C060 +C7E0 +CFE0 +CE60 +CC60 +CEE0 +CFE0 +C7C0 +C000 +E000 +7000 +3F80 +1F80 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +1F00 +3F80 +71C0 +E0E0 +C060 +C060 +C060 +C060 +FFE0 +FFE0 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +FF80 +FFC0 +30E0 +3060 +3060 +3060 +30E0 +3FE0 +3FC0 +30C0 +3060 +3060 +3060 +3060 +30E0 +FFE0 +FFC0 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +3F00 +7F80 +E1C0 +C0E0 +C060 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C060 +C0E0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +FF80 +FFC0 +30E0 +3060 +3060 +3060 +3060 +3060 +3060 +3060 +3060 +3060 +3060 +3060 +30E0 +FFC0 +FF80 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +FFF0 +FFF0 +C000 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +C000 +C000 +C000 +C000 +C000 +C000 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +FFF0 +FFF0 +C000 +C000 +C000 +C000 +C000 +FFC0 +FFC0 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +1F00 +3F80 +71C0 +E0E0 +C060 +C000 +C000 +C000 +C000 +C000 +C3E0 +C3E0 +C060 +C0E0 +E1C0 +7F80 +3F00 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C060 +C060 +C060 +C060 +C060 +C060 +C060 +FFE0 +FFE0 +FFE0 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 8 16 2 2 +BITMAP +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 16 0 2 +BITMAP +07E0 +07E0 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +C180 +E380 +7700 +3E00 +1C00 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C060 +C0E0 +C1C0 +C380 +C700 +CE00 +DC00 +F800 +F000 +F800 +DC00 +CE00 +C700 +C380 +C1C0 +C0E0 +C060 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +FFE0 +FFE0 +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 17 1 2 +BITMAP +C0C0 +C0C0 +E1C0 +F3C0 +FFC0 +DEC0 +CCC0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C060 +C060 +C060 +C060 +E060 +F060 +F860 +DC60 +CE60 +C760 +C3E0 +C1E0 +C0E0 +C060 +C060 +C060 +C060 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +E0E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +FF80 +FFC0 +C0E0 +C060 +C060 +C060 +C060 +C0E0 +FFC0 +FF80 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 1 2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +CC60 +CE60 +C760 +C3A0 +E1C0 +7EE0 +3E70 +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +FF80 +FFC0 +C0E0 +C060 +C060 +C060 +C060 +C0E0 +FFC0 +FF80 +DC00 +CE00 +C700 +C380 +C1C0 +C0E0 +C060 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C060 +C000 +C000 +E000 +7F80 +3FC0 +00E0 +0060 +C060 +C060 +E0E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +FFF0 +FFF0 +FFF0 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +E0E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +60C0 +60C0 +3180 +3180 +1B00 +0E00 +0E00 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +CE60 +CE60 +CE60 +FFE0 +FBE0 +7BC0 +3180 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 17 1 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +0C00 +1E00 +3F00 +7380 +E1C0 +C0C0 +C0C0 +C0C0 +C0C0 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 17 1 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 16 1 2 +BITMAP +FFE0 +FFE0 +0060 +0060 +00E0 +01C0 +0380 +0700 +0E00 +1C00 +3800 +7000 +E000 +C000 +FFE0 +FFE0 +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 21 3 0 +BITMAP +FE +FE +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +FE +FE +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C000 +E000 +6000 +7000 +3000 +3800 +1C00 +0C00 +0E00 +0600 +0700 +0380 +0180 +01C0 +00C0 +00E0 +0060 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 6 21 3 0 +BITMAP +FC +FC +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +0C +FC +FC +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 7 0 14 +BITMAP +0600 +0F00 +1F80 +39C0 +70E0 +E070 +C030 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 2 0 -2 +BITMAP +FFF0 +FFF0 +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 7 3 14 +BITMAP +C0 +E0 +70 +38 +1C +0E +06 +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +3F80 +3FC0 +00E0 +0060 +0060 +3FE0 +7FE0 +E060 +C060 +E0E0 +7FE0 +3FC0 +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C000 +C000 +C000 +C000 +C000 +FF80 +FFC0 +C0E0 +C060 +C060 +C060 +C060 +C060 +C060 +C0E0 +FFC0 +FF80 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +3F80 +7F80 +E000 +C000 +C000 +C000 +C000 +C060 +C060 +E0E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +0030 +0030 +0030 +0030 +0030 +3FF0 +7FF0 +E030 +C030 +C030 +C030 +C030 +C030 +C030 +E030 +7FF0 +3FF0 +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C0E0 +FFC0 +FF80 +C000 +C000 +E000 +7F80 +3F80 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +0F00 +1F80 +39C0 +30E0 +3060 +3000 +3000 +3000 +FC00 +FC00 +3000 +3000 +3000 +3000 +3000 +3000 +3000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 16 1 -2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C060 +C060 +C060 +C060 +C060 +E060 +7FE0 +3FE0 +0060 +00E0 +3FC0 +3F80 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C000 +C000 +C000 +C000 +C000 +FF80 +FFC0 +C0E0 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 16 3 2 +BITMAP +30 +30 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 9 20 3 -2 +BITMAP +0180 +0180 +0000 +0000 +0F80 +0F80 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +0180 +C180 +E380 +7F00 +3E00 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 17 1 2 +BITMAP +C000 +C000 +C000 +C000 +C000 +C060 +C0E0 +C1C0 +C380 +C700 +FE00 +FE00 +C700 +C380 +C1C0 +C0E0 +C060 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 17 3 2 +BITMAP +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +F380 +FFC0 +DEE0 +CC60 +CC60 +CC60 +CC60 +CC60 +CC60 +CC60 +CC60 +CC60 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +CF80 +DFC0 +F8E0 +F060 +E060 +C060 +C060 +C060 +C060 +C060 +C060 +C060 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +3F80 +7FC0 +E0E0 +C060 +C060 +C060 +C060 +C060 +C060 +E0E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 16 1 -2 +BITMAP +FF80 +FFC0 +C0E0 +C060 +C060 +C060 +C060 +C060 +C060 +C0E0 +FFC0 +FF80 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 16 1 -2 +BITMAP +3FE0 +7FE0 +E060 +C060 +C060 +C060 +C060 +C060 +C060 +E060 +7FE0 +3FE0 +0060 +0060 +0060 +0060 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +CF80 +DFC0 +F8E0 +F060 +E060 +C000 +C000 +C000 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +3FE0 +7FE0 +E000 +C000 +E000 +7F80 +3FC0 +00E0 +0060 +00E0 +FFC0 +FF80 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +0600 +0600 +0600 +0600 +0600 +FFF0 +FFF0 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0700 +03F0 +01F0 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 12 1 2 +BITMAP +C060 +C060 +C060 +C060 +C060 +C060 +C0E0 +C1E0 +C3E0 +E760 +7E60 +3C60 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 12 1 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E1C0 +7380 +3F00 +1E00 +0C00 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 12 1 2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +CCC0 +CCC0 +CCC0 +DEC0 +FFC0 +7380 +3300 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +C030 +E070 +70E0 +39C0 +1F80 +0F00 +0F00 +1F80 +39C0 +70E0 +E070 +C030 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 10 16 1 -2 +BITMAP +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +C0C0 +E0C0 +71C0 +3B80 +1F00 +0E00 +1C00 +3800 +7000 +E000 +C000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +FFF0 +FFF0 +00E0 +01C0 +0380 +0700 +0E00 +1C00 +3800 +7000 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 21 3 0 +BITMAP +0E +1E +38 +30 +30 +30 +30 +30 +70 +E0 +C0 +E0 +70 +30 +30 +30 +30 +30 +38 +1E +0E +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 2 21 5 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 6 21 3 0 +BITMAP +C0 +E0 +70 +30 +30 +30 +30 +30 +38 +1C +0C +1C +38 +30 +30 +30 +30 +30 +70 +E0 +C0 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 11 7 1 7 +BITMAP +3060 +7860 +FC60 +CC60 +CEE0 +C7C0 +C380 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 648 0 +DWIDTH 9 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 2 17 5 2 +BITMAP +C0 +C0 +C0 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 16 0 0 +BITMAP +0600 +0600 +1FC0 +1FC0 +E630 +E630 +E630 +E600 +E600 +E630 +E630 +1FC0 +1FC0 +1FC0 +0600 +0600 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +07C0 +07C0 +07C0 +1830 +1830 +1800 +1800 +FE00 +FE00 +FE00 +1800 +1800 +1830 +1830 +E7C0 +E7C0 +E7C0 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +E630 +E630 +19C0 +19C0 +19C0 +E030 +E030 +19C0 +19C0 +E630 +E630 +E630 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +E030 +E030 +E030 +19C0 +19C0 +FFF0 +FFF0 +0600 +0600 +0600 +FFF0 +FFF0 +0600 +0600 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 2 17 5 2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 9 19 3 2 +BITMAP +3F80 +3F80 +C000 +C000 +C000 +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +0180 +0180 +FE00 +FE00 +FE00 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 2 3 19 +BITMAP +CE +CE +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 14 17 0 2 +BITMAP +1FF0 +1FF0 +1FF0 +E00C +E00C +E7CC +E7CC +E60C +E60C +E60C +E7CC +E7CC +E00C +E00C +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 11 3 12 +BITMAP +3E +3E +CE +CE +3E +3E +3E +00 +00 +FE +FE +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +0630 +0630 +19C0 +19C0 +19C0 +E600 +E600 +19C0 +19C0 +0630 +0630 +0630 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 7 0 5 +BITMAP +FFF0 +FFF0 +FFF0 +0030 +0030 +0030 +0030 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 3 3 9 +BITMAP +FE +FE +FE +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 14 17 0 2 +BITMAP +1FF0 +1FF0 +1FF0 +E00C +E00C +E7CC +E7CC +E60C +E60C +E60C +E60C +E60C +E00C +E00C +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 2 0 19 +BITMAP +FFF0 +FFF0 +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 9 9 3 14 +BITMAP +3E00 +3E00 +C180 +C180 +C180 +C180 +C180 +3E00 +3E00 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +0600 +0600 +0600 +0600 +0600 +FFF0 +FFF0 +0600 +0600 +0600 +0600 +0600 +0000 +0000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 11 3 12 +BITMAP +30 +30 +CE +CE +0E +0E +0E +30 +30 +FE +FE +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 11 3 12 +BITMAP +F0 +F0 +0E +0E +30 +30 +30 +0E +0E +F0 +F0 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 7 3 14 +BITMAP +0E +0E +30 +30 +30 +C0 +C0 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 16 0 -2 +BITMAP +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E1F0 +E1F0 +FE30 +FE30 +FE30 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1FF0 +1FF0 +FE30 +FE30 +FE30 +FE30 +FE30 +FE30 +FE30 +1E30 +1E30 +1E30 +0630 +0630 +0630 +0630 +0630 +0630 +0630 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 5 5 5 9 +BITMAP +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 4 3 -2 +BITMAP +0E +0E +F0 +F0 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 11 3 12 +BITMAP +30 +30 +F0 +F0 +30 +30 +30 +30 +30 +FE +FE +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 12 3 14 +BITMAP +30 +30 +30 +CE +CE +30 +30 +00 +00 +00 +FE +FE +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +E600 +E600 +19C0 +19C0 +19C0 +0630 +0630 +19C0 +19C0 +E600 +E600 +E600 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1800 +1800 +1800 +F800 +F800 +1830 +1830 +19C0 +19C0 +19C0 +1E00 +1E00 +19C0 +19C0 +E7C0 +E7C0 +E7C0 +19C0 +19C0 +1FF0 +1FF0 +01C0 +01C0 +01C0 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1800 +1800 +1800 +F800 +F800 +1830 +1830 +19C0 +19C0 +19C0 +1E00 +1E00 +19C0 +19C0 +E630 +E630 +E630 +0030 +0030 +01C0 +01C0 +07F0 +07F0 +07F0 +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +F800 +F800 +F800 +0600 +0600 +1830 +1830 +07C0 +07C0 +07C0 +FE00 +FE00 +19C0 +19C0 +E7C0 +E7C0 +E7C0 +19C0 +19C0 +1FF0 +1FF0 +01C0 +01C0 +01C0 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +0600 +0600 +0600 +0000 +0000 +0600 +0600 +0600 +0600 +0600 +1800 +1800 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1800 +1800 +1800 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +01C0 +01C0 +01C0 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +0600 +0600 +0600 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1E30 +1E30 +1E30 +E7C0 +E7C0 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 2 +BITMAP +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +0600 +0600 +0600 +19C0 +19C0 +0600 +0600 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +FFF0 +FFF0 +FFF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +1FF0 +1FF0 +1FF0 +E600 +E600 +E600 +E600 +FFC0 +FFC0 +FFC0 +E600 +E600 +E600 +E600 +E7F0 +E7F0 +E7F0 +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 -2 +BITMAP +1FC0 +1FC0 +1FC0 +E030 +E030 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E030 +E030 +1FC0 +1FC0 +1FC0 +01C0 +01C0 +1E00 +1E00 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1800 +1800 +1800 +0600 +0600 +0000 +0000 +FFF0 +FFF0 +FFF0 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +01C0 +01C0 +01C0 +0600 +0600 +0000 +0000 +FFF0 +FFF0 +FFF0 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +0600 +0600 +0600 +19C0 +19C0 +0000 +0000 +FFF0 +FFF0 +FFF0 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 2 +BITMAP +19C0 +19C0 +0000 +0000 +FFF0 +FFF0 +FFF0 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 24 3 2 +BITMAP +C0 +C0 +C0 +30 +30 +00 +00 +FE +FE +FE +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 24 3 2 +BITMAP +0E +0E +0E +30 +30 +00 +00 +FE +FE +FE +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 24 3 2 +BITMAP +30 +30 +30 +CE +CE +00 +00 +FE +FE +FE +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 21 3 2 +BITMAP +CE +CE +00 +00 +FE +FE +FE +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +1FC0 +1FC0 +1FC0 +1830 +1830 +1830 +1830 +FE30 +FE30 +FE30 +1830 +1830 +1830 +1830 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1E30 +1E30 +1E30 +E7C0 +E7C0 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +F830 +F830 +E630 +E630 +E630 +E1F0 +E1F0 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1800 +1800 +1800 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +01C0 +01C0 +01C0 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +0600 +0600 +0600 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1E30 +1E30 +1E30 +E7C0 +E7C0 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 2 +BITMAP +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 11 0 5 +BITMAP +E030 +E030 +19C0 +19C0 +0600 +0600 +0600 +19C0 +19C0 +E030 +E030 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 0 +BITMAP +0030 +0030 +1FC0 +1FC0 +1FC0 +E1F0 +E1F0 +E630 +E630 +E630 +E630 +E630 +E630 +E630 +F830 +F830 +1FC0 +1FC0 +1FC0 +E000 +E000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +1800 +1800 +1800 +0600 +0600 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +01C0 +01C0 +01C0 +0600 +0600 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +0600 +0600 +0600 +19C0 +19C0 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 2 +BITMAP +19C0 +19C0 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 24 0 2 +BITMAP +01C0 +01C0 +01C0 +0600 +0600 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +19C0 +19C0 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 9 17 3 2 +BITMAP +C000 +C000 +C000 +FE00 +FE00 +C180 +C180 +C180 +C180 +C180 +C180 +C180 +FE00 +FE00 +C000 +C000 +C000 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +1FC0 +1FC0 +1FC0 +E030 +E030 +E1C0 +E1C0 +E600 +E600 +E600 +E1C0 +E1C0 +E030 +E030 +E7C0 +E7C0 +E7C0 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1800 +1800 +0600 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +0030 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +01C0 +01C0 +0600 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +0030 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +0600 +0600 +19C0 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +0030 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1E30 +1E30 +E7C0 +E7C0 +E7C0 +0000 +0000 +1FC0 +1FC0 +0030 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +19C0 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +0030 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +0600 +0600 +19C0 +19C0 +19C0 +0600 +0600 +1FC0 +1FC0 +0030 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +1FC0 +1FC0 +0630 +0630 +0630 +1FC0 +1FC0 +E600 +E600 +1FF0 +1FF0 +1FF0 +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 16 0 -2 +BITMAP +1FC0 +1FC0 +E030 +E030 +E030 +E000 +E000 +E030 +E030 +1FC0 +1FC0 +1FC0 +01C0 +01C0 +1E00 +1E00 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1800 +1800 +0600 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +FFC0 +FFC0 +E000 +E000 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +01C0 +01C0 +0600 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +FFC0 +FFC0 +E000 +E000 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +0600 +0600 +19C0 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +FFC0 +FFC0 +E000 +E000 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +19C0 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +FFC0 +FFC0 +E000 +E000 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 19 3 2 +BITMAP +C0 +C0 +30 +30 +30 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 19 3 2 +BITMAP +0E +0E +30 +30 +30 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 19 3 2 +BITMAP +30 +30 +CE +CE +CE +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 7 17 3 2 +BITMAP +CE +CE +CE +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +30 +30 +FE +FE +FE +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 2 +BITMAP +19C0 +19C0 +0600 +0600 +19C0 +19C0 +19C0 +0030 +0030 +1FF0 +1FF0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1E30 +1E30 +E7C0 +E7C0 +E7C0 +0000 +0000 +E7C0 +E7C0 +F830 +F830 +F830 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1800 +1800 +0600 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +01C0 +01C0 +0600 +0600 +0600 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +0600 +0600 +19C0 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1E30 +1E30 +E7C0 +E7C0 +E7C0 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +19C0 +19C0 +19C0 +0000 +0000 +1FC0 +1FC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 11 0 5 +BITMAP +0600 +0600 +0000 +0000 +FFF0 +FFF0 +FFF0 +0000 +0000 +0600 +0600 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 12 0 2 +BITMAP +1FF0 +1FF0 +E1F0 +E1F0 +E1F0 +E630 +E630 +F830 +F830 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +1800 +1800 +0600 +0600 +0600 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +01C0 +01C0 +0600 +0600 +0600 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 19 0 2 +BITMAP +0600 +0600 +19C0 +19C0 +19C0 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 17 0 2 +BITMAP +19C0 +19C0 +19C0 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 23 0 -2 +BITMAP +01C0 +01C0 +0600 +0600 +0600 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +19C0 +19C0 +0600 +0600 +0600 +1800 +1800 +E000 +E000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 -2 +BITMAP +E000 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 1008 0 +DWIDTH 14 0 +BBX 12 21 0 -2 +BITMAP +19C0 +19C0 +19C0 +0000 +0000 +E030 +E030 +E030 +E030 +E030 +E030 +E030 +19C0 +19C0 +0600 +0600 +0600 +1800 +1800 +E000 +E000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-16x32.bdf b/buildroot/share/fonts/marlin-16x32.bdf new file mode 100644 index 000000000000..0cbcbb6879bb --- /dev/null +++ b/buildroot/share/fonts/marlin-16x32.bdf @@ -0,0 +1,5492 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 32 100 100 +FONTBOUNDINGBOX 18 31 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 30 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1C00 +1C00 +FFE0 +FFE0 +FFE0 +FC1C +FC1C +FC1C +E01C +E01C +E01C +E01C +E01C +E0FC +E0FC +E0FC +1FFC +1FFC +00E0 +00E0 +00E0 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +FC00 +FC00 +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 15 0 5 +BITMAP +0200 +0300 +0380 +03C0 +03E0 +03F0 +FFF8 +FFFC +FFF8 +03F0 +03E0 +03C0 +0380 +0300 +0200 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 22 0 3 +BITMAP +0300 +0780 +0FC0 +1FE0 +3FF0 +7FF8 +FFFC +FFFC +FFFC +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +FF00 +FF00 +FF00 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 0 +BITMAP +0300 +0300 +1FE0 +1FE0 +1FE0 +E31C +E31C +E31C +E31C +E31C +E3FC +E3FC +E3FC +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 1296 0 +DWIDTH 18 0 +BBX 16 13 0 6 +BITMAP +F9E0 +F9F0 +7CF8 +3E7C +1F3E +0F9F +078F +0F9F +1F3E +3E7C +7EF8 +FDF0 +F9E0 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 0 +BITMAP +FFFC +FFFC +E31C +E31C +E31C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E31C +E31C +E31C +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 26 0 -2 +BITMAP +0780 +0FC0 +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +3CF0 +7CF8 +F03C +E01C +E01C +E31C +E31C +E31C +E31C +E31C +E01C +E01C +F03C +7FF8 +3FF0 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 7 7 1 12 +BITMAP +38 +7C +EE +C6 +EE +7C +38 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 2 19 6 3 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 8 3 16 +BITMAP +E7 +E7 +E7 +E7 +E7 +E7 +E7 +E7 +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 16 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +FFFC +FFFC +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +1CE0 +FFFC +FFFC +1CE0 +1CE0 +1CE0 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 25 0 0 +BITMAP +0300 +0300 +0300 +1FE0 +3FF0 +7FF8 +F33C +E31C +E31C +E300 +F300 +7FE0 +3FF0 +1FF8 +033C +031C +031C +E31C +F33C +7FF8 +3FF0 +1FE0 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +F81C +F81C +F81C +F81C +F83C +0078 +00F0 +01E0 +03C0 +0780 +0F00 +1E00 +3C00 +7800 +F07C +E07C +E07C +E07C +E07C +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1C00 +3E00 +7E00 +F700 +E300 +E300 +E300 +F700 +7E00 +3E00 +3E00 +771C +E3BC +E1FC +E0F0 +F1F0 +7FFC +3FBC +1F1C +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 2 8 6 16 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 7 24 4 0 +BITMAP +0E +1E +38 +30 +60 +60 +60 +60 +E0 +C0 +C0 +C0 +C0 +C0 +C0 +E0 +60 +60 +60 +30 +38 +18 +0E +0E +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 7 24 5 0 +BITMAP +E0 +F0 +38 +18 +0C +0C +0C +0C +0E +06 +06 +06 +06 +06 +06 +0E +0C +0C +0C +18 +38 +30 +E0 +E0 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +0300 +0300 +0300 +E31C +E31C +F33C +3FF0 +1FE0 +0300 +0300 +0300 +1FE0 +1FE0 +3FF0 +F33C +E31C +0300 +0300 +0300 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 6 +BITMAP +0300 +0300 +0300 +0300 +0300 +FFFC +FFFC +FFFC +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 5 8 3 0 +BITMAP +F8 +F8 +18 +18 +38 +F0 +E0 +C0 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 3 0 11 +BITMAP +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 5 5 3 3 +BITMAP +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +001C +001C +0038 +0070 +00F0 +00E0 +01C0 +03C0 +0380 +0700 +0F00 +0E00 +1C00 +1C00 +3800 +7000 +F000 +E000 +C000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E0FC +E1FC +E3DC +E79C +EF1C +FE1C +FC1C +F81C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 19 3 3 +BITMAP +18 +38 +78 +F8 +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +001C +003C +0078 +00F0 +01E0 +03C0 +0780 +0F00 +1E00 +3C00 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +001C +001C +003C +0078 +00F0 +01E0 +03F0 +03F8 +003C +001C +001C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +00E0 +01E0 +03E0 +07E0 +0FE0 +1EE0 +3CE0 +78E0 +F0E0 +E0E0 +E0E0 +FFFC +FFFC +FFFC +00E0 +00E0 +00E0 +00E0 +00E0 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +E000 +E000 +E000 +FFF0 +FFF8 +003C +001C +001C +001C +001C +001C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +03E0 +07E0 +0FE0 +1E00 +3C00 +7800 +F000 +E000 +FFE0 +FFF0 +FFF8 +E03C +E01C +E01C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +001C +001C +003C +0078 +00F0 +01E0 +03C0 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +F03C +7FF8 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +F01C +7FFC +3FFC +1FFC +001C +001C +003C +0078 +00F0 +1FE0 +1FC0 +1F80 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 5 13 3 3 +BITMAP +F8 +F8 +F8 +F8 +F8 +00 +00 +00 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 5 16 3 0 +BITMAP +F8 +F8 +F8 +F8 +F8 +00 +00 +00 +F8 +F8 +F8 +18 +18 +F8 +F0 +E0 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 14 3 5 +BITMAP +07 +0F +1F +3C +78 +F0 +E0 +E0 +F0 +78 +3C +1F +0F +07 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 9 0 8 +BITMAP +FFFC +FFFC +FFFC +0000 +0000 +0000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 14 3 5 +BITMAP +E0 +F0 +F8 +7C +3E +1F +0F +0F +1F +3E +7C +F8 +F0 +E0 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E03C +0078 +00F0 +01E0 +03C0 +0380 +0380 +0380 +0380 +0000 +0000 +0380 +0380 +0380 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E1FC +E3FC +E31C +E31C +E31C +E3FC +E3FC +E1F8 +E000 +F000 +7FE0 +3FE0 +1FE0 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFE0 +FFF0 +FFF8 +1C3C +1C1C +1C1C +1C1C +1C3C +1FF8 +1FF0 +1FF8 +1C3C +1C1C +1C1C +1C1C +1C3C +FFF8 +FFF0 +FFE0 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFE0 +FFF0 +FFF8 +1C3C +1C1C +1C1C +1C1C +1C1C +1C1C +1C1C +1C1C +1C1C +1C1C +1C1C +1C1C +1C3C +FFF8 +FFF0 +FFE0 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E000 +E000 +E000 +E000 +E000 +E0FC +E0FC +E0FC +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 19 3 3 +BITMAP +FF +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +07FC +07FC +07FC +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +E0E0 +F1E0 +7FC0 +3F80 +1F00 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E03C +E078 +E0F0 +E1E0 +E3C0 +E780 +EF00 +FE00 +FC00 +FE00 +EF00 +E780 +E3C0 +E1E0 +E0F0 +E078 +E03C +E01C +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +F03C +F87C +FCFC +FFFC +EFDC +E79C +E31C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +E01C +F01C +F81C +FC1C +FE1C +EF1C +E79C +E3DC +E1FC +E0FC +E07C +E03C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFE0 +FFF0 +FFF8 +E03C +E01C +E01C +E01C +E03C +FFF8 +FFF0 +FFE0 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E19C +E1DC +E1EC +F0F0 +7F78 +3FBC +1F9C +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFE0 +FFF0 +FFF8 +E03C +E01C +E01C +E01C +E03C +FFF8 +FFF0 +FFE0 +E700 +E780 +E3C0 +E1E0 +E0F0 +E078 +E03C +E01C +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E000 +F000 +7FE0 +3FF0 +1FF8 +003C +001C +001C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +F03C +7038 +3878 +3870 +1CE0 +1FE0 +0FC0 +0780 +0300 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E79C +E79C +E79C +E79C +F7BC +7FF8 +3FF0 +1CE0 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +E01C +F03C +7878 +3CF0 +1FE0 +0FC0 +07C0 +0FC0 +1FE0 +3FF0 +7CF8 +F87C +F03C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 15 19 0 3 +BITMAP +E00E +E00E +E00E +E00E +E00E +E00E +701C +3838 +1FF0 +0FE0 +07C0 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +FFFC +FFFC +FFFC +001C +003C +0078 +00F0 +01E0 +03C0 +0780 +0F00 +1E00 +3C00 +7800 +F000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 24 3 0 +BITMAP +FF +FF +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +FF +FF +FF +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E000 +F000 +F000 +7800 +3C00 +1C00 +1E00 +0F00 +0780 +0380 +03C0 +01C0 +01E0 +00E0 +00F0 +0078 +003C +001C +001C +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 25 3 0 +BITMAP +FF +FF +FF +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +07 +FF +FF +FF +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 8 0 16 +BITMAP +0780 +0FC0 +1FE0 +3FF0 +7CF8 +F87C +F03C +E01C +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 3 0 -2 +BITMAP +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 8 3 16 +BITMAP +E0 +F0 +78 +3C +1E +0F +07 +03 +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 14 0 3 +BITMAP +1FE0 +1FF0 +1FF8 +003C +001C +001C +1FFC +3FFC +7FFC +E01C +E01C +7FFC +3FFC +1FFC +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E000 +E000 +E000 +E000 +E000 +FFE0 +FFF0 +FFF8 +E03C +E01C +E01C +E01C +E01C +E01C +E01C +E03C +FFF8 +FFF0 +FFE0 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 14 0 3 +BITMAP +1FE0 +3FE0 +7FE0 +F000 +E000 +E000 +E000 +E000 +E000 +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +001C +001C +001C +001C +001C +1FFC +3FFC +7FFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +F01C +7FFC +3FFC +1FFC +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 14 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E03C +FFF8 +FFF0 +FFE0 +E000 +F000 +7FE0 +3FE0 +1FE0 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +03E0 +07F0 +0FF8 +1E3C +1C1C +1C1C +1C00 +1C00 +FF80 +FF80 +FF80 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 -2 +BITMAP +1FE0 +3FF0 +7FF8 +F01C +E01C +E01C +E01C +E01C +E01C +E01C +F01C +7FFC +3FFC +1FFC +001C +001C +003C +1FF8 +1FF0 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E000 +E000 +E000 +E000 +E000 +FFE0 +FFF0 +FFF8 +E03C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 9 19 3 3 +BITMAP +1C00 +1C00 +1C00 +0000 +0000 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 11 24 3 -2 +BITMAP +00E0 +00E0 +00E0 +0000 +0000 +07E0 +07E0 +07E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +00E0 +E0E0 +E0E0 +F1E0 +7FC0 +3F80 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E000 +E000 +E000 +E000 +E000 +E01C +E03C +E078 +E0F0 +E1E0 +E3C0 +FF80 +FF80 +FFC0 +E1E0 +E0F0 +E078 +E03C +E01C +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 9 19 3 3 +BITMAP +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +FEF0 +FFF8 +E7BC +E31C +E31C +E31C +E31C +E31C +E31C +E31C +E31C +E31C +E31C +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E7F0 +EFF8 +FFFC +FC3C +F81C +F01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +1FE0 +3FF0 +7FF8 +F03C +E01C +E01C +E01C +E01C +E01C +F03C +7FF8 +3FF0 +1FE0 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 18 0 -2 +BITMAP +FFE0 +FFF0 +FFF8 +E03C +E01C +E01C +E01C +E01C +E01C +E03C +FFF8 +FFF0 +FFE0 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 18 0 -2 +BITMAP +1FFC +3FFC +7FFC +F01C +E01C +E01C +E01C +E01C +E01C +F01C +7FFC +3FFC +1FFC +001C +001C +001C +001C +001C +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E7F0 +EFF8 +FFFC +FC1C +F81C +F000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +1FFC +3FFC +7FFC +E000 +F000 +7FE0 +3FF0 +1FF8 +003C +001C +FFF8 +FFF0 +FFE0 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +0700 +0700 +0700 +0700 +0700 +FFFC +FFFC +FFFC +0700 +0700 +0700 +0700 +0700 +0700 +0700 +0780 +03FC +01FC +00FC +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E03C +E07C +E0FC +F1FC +7FDC +3F9C +1F1C +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E01C +F03C +7878 +3CF0 +1FE0 +0FC0 +0780 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E01C +E01C +E01C +E01C +E01C +E31C +E31C +E31C +E31C +F7BC +7FF8 +3FF0 +1CE0 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E01C +F03C +7878 +3CF0 +1FE0 +0FC0 +0780 +0FC0 +1FE0 +3CF0 +7878 +F03C +E01C +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 13 18 0 -2 +BITMAP +E038 +E038 +E038 +E038 +E038 +E038 +E038 +F078 +78F0 +3DE0 +1FC0 +0F80 +0F00 +1E00 +3C00 +7800 +F000 +E000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +FFFC +FFFC +FFFC +00F0 +01E0 +03C0 +0780 +0F00 +1E00 +3C00 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 24 3 0 +BITMAP +07 +0F +1C +18 +18 +18 +18 +18 +38 +38 +E0 +E0 +E0 +38 +38 +18 +18 +18 +18 +18 +1C +0F +0F +07 +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 3 24 6 0 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 24 3 0 +BITMAP +E0 +F0 +38 +18 +18 +18 +18 +18 +18 +1C +07 +07 +07 +1C +18 +18 +18 +18 +18 +18 +38 +F0 +E0 +E0 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 8 0 8 +BITMAP +3C1C +7E1C +F71C +E31C +E3BC +E1F0 +E0E0 +E0E0 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 792 0 +DWIDTH 11 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 2 19 6 3 +BITMAP +C0 +C0 +C0 +00 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 0 +BITMAP +0300 +0300 +0300 +1FE0 +1FE0 +E31C +E31C +E31C +E300 +E300 +E300 +E31C +E31C +1FE0 +1FE0 +1FE0 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +03E0 +03E0 +03E0 +1C1C +1C1C +1C1C +1C00 +1C00 +FF00 +FF00 +FF00 +1C00 +1C00 +1C00 +1C1C +1C1C +E3E0 +E3E0 +E3E0 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E31C +E31C +1CE0 +1CE0 +1CE0 +E01C +E01C +E01C +1CE0 +1CE0 +E31C +E31C +E31C +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +E01C +E01C +E01C +1CE0 +1CE0 +1CE0 +FFFC +FFFC +0300 +0300 +0300 +FFFC +FFFC +FFFC +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 2 19 6 3 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +00 +00 +00 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 11 21 3 3 +BITMAP +1FE0 +1FE0 +E000 +E000 +E000 +1F00 +1F00 +1F00 +E0E0 +E0E0 +E0E0 +E0E0 +E0E0 +1F00 +1F00 +1F00 +00E0 +00E0 +FF00 +FF00 +FF00 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 2 3 22 +BITMAP +E7 +E7 +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 16 19 0 3 +BITMAP +1FFC +1FFC +1FFC +E003 +E003 +E003 +E3E3 +E3E3 +E303 +E303 +E303 +E3E3 +E3E3 +E3E3 +E003 +E003 +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 13 3 14 +BITMAP +1F +1F +1F +E7 +E7 +1F +1F +1F +00 +00 +00 +FF +FF +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +031C +031C +1CE0 +1CE0 +1CE0 +E300 +E300 +E300 +1CE0 +1CE0 +031C +031C +031C +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 8 0 6 +BITMAP +FFFC +FFFC +FFFC +001C +001C +001C +001C +001C +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 3 3 11 +BITMAP +FF +FF +FF +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 16 19 0 3 +BITMAP +1FFC +1FFC +1FFC +E003 +E003 +E003 +E3E3 +E3E3 +E303 +E303 +E303 +E303 +E303 +E303 +E003 +E003 +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 2 0 22 +BITMAP +FFFC +FFFC +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 11 11 3 16 +BITMAP +1F00 +1F00 +1F00 +E0E0 +E0E0 +E0E0 +E0E0 +E0E0 +1F00 +1F00 +1F00 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +0300 +0300 +0300 +0300 +0300 +0300 +FFFC +FFFC +0300 +0300 +0300 +0300 +0300 +0300 +0000 +0000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 13 3 14 +BITMAP +18 +18 +18 +E7 +E7 +07 +07 +07 +18 +18 +18 +FF +FF +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 13 3 14 +BITMAP +F8 +F8 +F8 +07 +07 +18 +18 +18 +07 +07 +07 +F8 +F8 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 8 3 16 +BITMAP +07 +07 +18 +18 +18 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 18 0 -2 +BITMAP +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E0FC +E0FC +FF1C +FF1C +FF1C +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1FFC +1FFC +FF1C +FF1C +FF1C +FF1C +FF1C +FF1C +FF1C +FF1C +1F1C +1F1C +1F1C +031C +031C +031C +031C +031C +031C +031C +031C +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 5 5 6 11 +BITMAP +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 5 3 -2 +BITMAP +07 +07 +07 +F8 +F8 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 13 3 14 +BITMAP +18 +18 +18 +F8 +F8 +18 +18 +18 +18 +18 +18 +FF +FF +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 14 3 16 +BITMAP +18 +18 +18 +E7 +E7 +E7 +18 +18 +00 +00 +00 +FF +FF +FF +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +E300 +E300 +1CE0 +1CE0 +1CE0 +031C +031C +031C +1CE0 +1CE0 +E300 +E300 +E300 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1C00 +1C00 +1C00 +FC00 +FC00 +FC00 +1C1C +1C1C +1CE0 +1CE0 +1CE0 +1F00 +1F00 +1F00 +1CE0 +1CE0 +E3E0 +E3E0 +E3E0 +1CE0 +1CE0 +1CE0 +1FFC +1FFC +00E0 +00E0 +00E0 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1C00 +1C00 +1C00 +FC00 +FC00 +FC00 +1C1C +1C1C +1CE0 +1CE0 +1CE0 +1F00 +1F00 +1F00 +1CE0 +1CE0 +E31C +E31C +E31C +001C +001C +001C +00E0 +00E0 +03FC +03FC +03FC +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +FC00 +FC00 +FC00 +0300 +0300 +0300 +1C1C +1C1C +03E0 +03E0 +03E0 +FF00 +FF00 +FF00 +1CE0 +1CE0 +E3E0 +E3E0 +E3E0 +1CE0 +1CE0 +1CE0 +1FFC +1FFC +00E0 +00E0 +00E0 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +0300 +0300 +0300 +0000 +0000 +0000 +0300 +0300 +0300 +0300 +0300 +1C00 +1C00 +1C00 +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1C00 +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +00E0 +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +0300 +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1F1C +1F1C +1F1C +E3E0 +E3E0 +E3E0 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +0300 +0300 +0300 +1CE0 +1CE0 +1CE0 +0300 +0300 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +FFFC +FFFC +FFFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FFC +1FFC +1FFC +E300 +E300 +E300 +E300 +E300 +FFE0 +FFE0 +FFE0 +E300 +E300 +E300 +E300 +E300 +E3FC +E3FC +E3FC +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 -2 +BITMAP +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E01C +E01C +1FE0 +1FE0 +1FE0 +00E0 +00E0 +00E0 +1F00 +1F00 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1C00 +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +FFFC +FFFC +FFFC +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +00E0 +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +FFFC +FFFC +FFFC +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +0300 +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +FFFC +FFFC +FFFC +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +FFFC +FFFC +FFFC +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 27 3 3 +BITMAP +E0 +E0 +E0 +18 +18 +18 +00 +00 +FF +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 27 3 3 +BITMAP +07 +07 +07 +18 +18 +18 +00 +00 +FF +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 27 3 3 +BITMAP +18 +18 +18 +E7 +E7 +E7 +00 +00 +FF +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 24 3 3 +BITMAP +E7 +E7 +E7 +00 +00 +FF +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +1FE0 +1FE0 +1C1C +1C1C +1C1C +1C1C +1C1C +FF1C +FF1C +FF1C +1C1C +1C1C +1C1C +1C1C +1C1C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1F1C +1F1C +1F1C +E3E0 +E3E0 +E3E0 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +FC1C +FC1C +E31C +E31C +E31C +E0FC +E0FC +E0FC +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1C00 +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +00E0 +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +0300 +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1F1C +1F1C +1F1C +E3E0 +E3E0 +E3E0 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 6 +BITMAP +E01C +E01C +E01C +1CE0 +1CE0 +0300 +0300 +0300 +1CE0 +1CE0 +1CE0 +E01C +E01C +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 0 +BITMAP +001C +001C +1FE0 +1FE0 +1FE0 +E0FC +E0FC +E0FC +E31C +E31C +E31C +E31C +E31C +E31C +E31C +E31C +FC1C +FC1C +1FE0 +1FE0 +1FE0 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +1C00 +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +00E0 +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +0300 +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 27 0 3 +BITMAP +00E0 +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +1CE0 +1CE0 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 11 19 3 3 +BITMAP +E000 +E000 +E000 +FF00 +FF00 +FF00 +E0E0 +E0E0 +E0E0 +E0E0 +E0E0 +E0E0 +E0E0 +E0E0 +FF00 +FF00 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1FE0 +1FE0 +1FE0 +E01C +E01C +E01C +E0E0 +E0E0 +E300 +E300 +E300 +E0E0 +E0E0 +E0E0 +E01C +E01C +E3E0 +E3E0 +E3E0 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +0000 +1FE0 +1FE0 +001C +001C +001C +1FFC +1FFC +1FFC +E01C +E01C +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +0000 +1FE0 +1FE0 +001C +001C +001C +1FFC +1FFC +1FFC +E01C +E01C +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +1FE0 +1FE0 +001C +001C +001C +1FFC +1FFC +1FFC +E01C +E01C +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1F1C +1F1C +E3E0 +E3E0 +E3E0 +0000 +0000 +0000 +1FE0 +1FE0 +001C +001C +001C +1FFC +1FFC +1FFC +E01C +E01C +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +1FE0 +1FE0 +001C +001C +001C +1FFC +1FFC +1FFC +E01C +E01C +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +0300 +0300 +1CE0 +1CE0 +1CE0 +0300 +0300 +0300 +1FE0 +1FE0 +001C +001C +001C +1FFC +1FFC +1FFC +E01C +E01C +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +1FE0 +1FE0 +031C +031C +031C +1FE0 +1FE0 +1FE0 +E300 +E300 +1FFC +1FFC +1FFC +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 18 0 -2 +BITMAP +1FE0 +1FE0 +E01C +E01C +E01C +E000 +E000 +E000 +E01C +E01C +1FE0 +1FE0 +1FE0 +00E0 +00E0 +00E0 +1F00 +1F00 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +FFE0 +FFE0 +FFE0 +E000 +E000 +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +FFE0 +FFE0 +FFE0 +E000 +E000 +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +FFE0 +FFE0 +FFE0 +E000 +E000 +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +FFE0 +FFE0 +FFE0 +E000 +E000 +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 21 3 3 +BITMAP +E0 +E0 +18 +18 +18 +00 +00 +00 +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 21 3 3 +BITMAP +07 +07 +18 +18 +18 +00 +00 +00 +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 21 3 3 +BITMAP +18 +18 +E7 +E7 +E7 +00 +00 +00 +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 8 19 3 3 +BITMAP +E7 +E7 +E7 +00 +00 +00 +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +FF +FF +FF +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0300 +0300 +1CE0 +1CE0 +1CE0 +001C +001C +001C +1FFC +1FFC +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1F1C +1F1C +E3E0 +E3E0 +E3E0 +0000 +0000 +0000 +E3E0 +E3E0 +FC1C +FC1C +FC1C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1F1C +1F1C +E3E0 +E3E0 +E3E0 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +1FE0 +1FE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 6 +BITMAP +0300 +0300 +0300 +0000 +0000 +FFFC +FFFC +FFFC +0000 +0000 +0000 +0300 +0300 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 13 0 3 +BITMAP +1FFC +1FFC +E0FC +E0FC +E0FC +E31C +E31C +E31C +FC1C +FC1C +FFE0 +FFE0 +FFE0 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +1C00 +1C00 +0300 +0300 +0300 +0000 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 21 0 3 +BITMAP +0300 +0300 +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 19 0 3 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1FE0 +1FE0 +1FE0 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 26 0 -2 +BITMAP +00E0 +00E0 +0300 +0300 +0300 +0000 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1CE0 +1CE0 +0300 +0300 +0300 +1C00 +1C00 +1C00 +E000 +E000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 -2 +BITMAP +E000 +E000 +E000 +E000 +E000 +E000 +FFE0 +FFE0 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +FFE0 +FFE0 +FFE0 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 1152 0 +DWIDTH 16 0 +BBX 14 24 0 -2 +BITMAP +1CE0 +1CE0 +1CE0 +0000 +0000 +0000 +E01C +E01C +E01C +E01C +E01C +E01C +E01C +E01C +1CE0 +1CE0 +0300 +0300 +0300 +1C00 +1C00 +1C00 +E000 +E000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-20x40.bdf b/buildroot/share/fonts/marlin-20x40.bdf new file mode 100644 index 000000000000..e44e0b7f7023 --- /dev/null +++ b/buildroot/share/fonts/marlin-20x40.bdf @@ -0,0 +1,6458 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 40 100 100 +FONTBOUNDINGBOX 22 39 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. orig" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 38 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +FE0380 +FE0380 +FE0380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F03F80 +F03F80 +F03F80 +0FFF80 +0FFF80 +0FFF80 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +FE0000 +FE0000 +FE0000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 16 0 8 +BITMAP +01C000 +01E000 +01F000 +01F800 +01FC00 +01FE00 +FFFF00 +FFFF80 +FFFF80 +FFFF00 +01FE00 +01FC00 +01F800 +01F000 +01E000 +01C000 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 28 0 4 +BITMAP +008000 +01C000 +03E000 +07F000 +0FF800 +1FFC00 +3FFE00 +7FFF00 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +FFC000 +FFC000 +FFC000 +FFC000 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 1 +BITMAP +01C000 +01C000 +01C000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1FF80 +F1FF80 +F1FF80 +F1FF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 1584 0 +DWIDTH 22 0 +BBX 19 16 1 8 +BITMAP +F8F800 +FCFC00 +FEFE00 +7F7F00 +3FBF80 +1FDFC0 +0FEFE0 +07EFE0 +07EFE0 +07EFE0 +0FDFC0 +1FBF80 +3F7F00 +FEFE00 +FCFC00 +F8F800 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 1 +BITMAP +FFFF80 +FFFF80 +FFFF80 +F1C380 +F1C380 +F1C380 +F1C380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F1C380 +F1C380 +F1C380 +F1C380 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 33 0 -2 +BITMAP +01C000 +03E000 +07F000 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +1E3C00 +3E3E00 +7C1F00 +F80F80 +F00780 +F00780 +F08780 +F1C780 +F1C780 +F1C780 +F1C780 +F1C780 +F08780 +F00780 +F00780 +F80F80 +7FFF80 +3FFF00 +1FFE00 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 9 1 15 +BITMAP +1C00 +3E00 +7F00 +E380 +E380 +E380 +7F00 +3E00 +1C00 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 3 24 7 4 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +00 +00 +00 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 10 4 21 +BITMAP +E380 +E380 +E380 +E380 +E380 +E380 +E380 +E380 +E380 +E380 +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 20 0 4 +BITMAP +0E3800 +0E3800 +0E3800 +FFFF80 +FFFF80 +FFFF80 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +0E3800 +FFFF80 +FFFF80 +FFFF80 +0E3800 +0E3800 +0E3800 +0E3800 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 16 30 1 1 +BITMAP +0380 +0380 +0380 +0380 +1FFC +3FFE +7FFF +E38F +E387 +E387 +E380 +E380 +E380 +F380 +7FFC +3FFE +1FFF +038F +0387 +0387 +E387 +E387 +E387 +F38F +7FFE +3FFC +1FF8 +0380 +0380 +0380 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FE0380 +FE0380 +FE0380 +FE0380 +FE0780 +FE0F80 +FE1F80 +003F00 +007E00 +00FC00 +01F800 +01F000 +03E000 +07C000 +0F8000 +1F0000 +3E0000 +FC3F80 +F83F80 +F03F80 +F03F80 +F03F80 +F03F80 +F03F80 +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 16 24 1 4 +BITMAP +1C00 +1C00 +3E00 +7F00 +F780 +E380 +E380 +E380 +E380 +F780 +7F00 +3E00 +3C00 +7E00 +F787 +E38F +E3DF +E1FC +E0FC +F1FE +7FFF +3FCF +1F87 +1F87 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 3 10 7 21 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 30 4 1 +BITMAP +0380 +0780 +0F00 +1E00 +1C00 +3800 +3800 +3800 +7000 +7000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +7000 +7000 +3800 +3800 +3C00 +1C00 +1E00 +0F00 +0780 +0380 +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 30 7 1 +BITMAP +E000 +F000 +7800 +3C00 +1C00 +0E00 +0E00 +0E00 +0700 +0700 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0380 +0700 +0700 +0E00 +0E00 +1E00 +1C00 +3C00 +7800 +F000 +E000 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +01E000 +01E000 +01E000 +E1E1C0 +F1E3C0 +F9E7C0 +7DEF80 +3FFF00 +1FFE00 +0FFC00 +01E000 +01E000 +01E000 +01E000 +0FFC00 +1FFE00 +3FFF00 +7DEF80 +F9E7C0 +F1E3C0 +C1E1C0 +01E000 +01E000 +01E000 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 7 +BITMAP +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 6 10 4 1 +BITMAP +F8 +FC +FC +1C +1C +1C +3C +F8 +F0 +E0 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 4 0 14 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 6 7 4 4 +BITMAP +FC +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +000180 +000380 +000780 +000F80 +000F00 +001E00 +003C00 +003C00 +007800 +00F800 +00F000 +01E000 +03C000 +07C000 +078000 +0F0000 +0F0000 +1E0000 +3C0000 +780000 +F00000 +F00000 +E00000 +C00000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F00FC0 +F01FC0 +F03FC0 +F07FC0 +F0FFC0 +F1FBC0 +F3F3C0 +F7E3C0 +FFC3C0 +FF83C0 +FF03C0 +FE03C0 +FC03C0 +F803C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 24 4 4 +BITMAP +1E00 +1E00 +3E00 +7E00 +FE00 +FE00 +FE00 +FE00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +0003C0 +0007C0 +000FC0 +001F80 +003F00 +007E00 +00FC00 +01F800 +03F000 +07E000 +0FC000 +1F8000 +3F0000 +FFFFC0 +FFFFC0 +FFFFC0 +FFFFC0 +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +000380 +000780 +000F00 +001E00 +003C00 +007800 +00F000 +01FC00 +01FE00 +00FF00 +000F80 +000780 +000380 +E00380 +F00380 +F80780 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +003C00 +007C00 +00FC00 +01FC00 +03FC00 +07FC00 +0FBC00 +1F3C00 +3E3C00 +7C3C00 +F83C00 +F03C00 +F03C00 +F03C00 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +FFFC00 +FFFE00 +FFFF00 +FFFF80 +0007C0 +0003C0 +0003C0 +0003C0 +0003C0 +0003C0 +E003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +00FC00 +01FC00 +03FC00 +07FC00 +0FC000 +1F8000 +3F0000 +7E0000 +FC0000 +F80000 +FFFC00 +FFFE00 +FFFF00 +FFFF80 +F007C0 +F003C0 +F003C0 +F003C0 +F003C0 +F80780 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +000780 +000780 +000780 +000F80 +001F00 +003E00 +007C00 +00F800 +01F000 +01E000 +01E000 +01E000 +01E000 +01E000 +01E000 +01E000 +01E000 +01E000 +01E000 +01E000 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F007C0 +7FFF80 +3FFF00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F803C0 +7FFFC0 +3FFFC0 +1FFFC0 +0FFFC0 +0003C0 +0007C0 +000F80 +001F00 +003E00 +007C00 +0FF800 +0FF000 +0FE000 +0FC000 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 6 17 4 4 +BITMAP +FC +FC +FC +FC +FC +FC +FC +00 +00 +00 +FC +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 6 20 4 1 +BITMAP +FC +FC +FC +FC +FC +FC +FC +00 +00 +00 +F8 +FC +FC +1C +1C +1C +3C +F8 +F0 +E0 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 16 4 8 +BITMAP +0380 +0780 +0F80 +1F00 +3E00 +7C00 +F800 +F000 +F000 +F800 +7C00 +3E00 +1F00 +0F80 +0780 +0380 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 10 0 11 +BITMAP +FFFF80 +FFFF80 +FFFF80 +000000 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 16 4 8 +BITMAP +E000 +F000 +F800 +7C00 +3E00 +1F00 +0F80 +0780 +0780 +0F80 +1F00 +7E00 +7C00 +F800 +F000 +E000 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F80F80 +F00780 +E00780 +000F80 +001F00 +003E00 +007C00 +00F800 +01F000 +01E000 +01E000 +01E000 +01E000 +000000 +000000 +000000 +01E000 +01E000 +01E000 +01E000 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F0FFC0 +F1FFC0 +F1FFC0 +F1E3C0 +F1C3C0 +F1C3C0 +F1E7C0 +F1FFC0 +F1FFC0 +F0FF80 +F00000 +F00000 +F80000 +7FFC00 +3FFC00 +1FFC00 +0FFC00 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +FFFFC0 +FFFFC0 +FFFFC0 +FFFFC0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +FFFC00 +FFFE00 +FFFF00 +FFFF80 +1E07C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E07C0 +1FFF80 +1FFF00 +1FFF00 +1FFF80 +1E07C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E07C0 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F003C0 +F003C0 +F807C0 +FFFF80 +7FFF00 +3FFE00 +1FFC00 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +FFFC00 +FFFE00 +FFFF00 +FFFF80 +1E07C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E03C0 +1E07C0 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F03FC0 +F03FC0 +F03FC0 +F003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 11 24 3 4 +BITMAP +FFE0 +FFE0 +FFE0 +FFE0 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +0E00 +FFE0 +FFE0 +FFE0 +FFE0 +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +01FF80 +01FF80 +01FF80 +01FF80 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +F03C00 +F03C00 +F87C00 +7FF800 +3FF000 +1FE000 +0FC000 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00380 +F00780 +F00F80 +F01F00 +F03E00 +F07C00 +F0F800 +F1F000 +F3E000 +F7C000 +FF8000 +FF0000 +FF0000 +FF8000 +F7C000 +F3E000 +F1F000 +F0F800 +F07C00 +F03E00 +F01F00 +F00F80 +F00780 +F00380 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +F007C0 +F007C0 +F80FC0 +FC1FC0 +FE3FC0 +FF7FC0 +FFFFC0 +F7F3C0 +F3E3C0 +F1C3C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F803C0 +FC03C0 +FE03C0 +FF03C0 +FF83C0 +F7C3C0 +F3E3C0 +F1F3C0 +F0FBC0 +F07FC0 +F03FC0 +F01FC0 +F00FC0 +F007C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +FFFC00 +FFFE00 +FFFF00 +FFFF80 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F007C0 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F1C3C0 +F1E3C0 +F1F3C0 +F0F9C0 +F07DC0 +F83EC0 +7FDF40 +3FEF80 +1FF7C0 +0FF3C0 +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +FFFC00 +FFFE00 +FFFF00 +FFFF80 +F007C0 +F003C0 +F003C0 +F003C0 +F003C0 +F007C0 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +F7C000 +F3E000 +F1F000 +F0F800 +F07C00 +F03E00 +F01F00 +F00F80 +F00780 +F00380 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F003C0 +F003C0 +F001C0 +F00000 +F00000 +F80000 +7FFC00 +3FFE00 +1FFF00 +0FFF80 +0007C0 +0003C0 +0003C0 +E003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +780F00 +3C1E00 +3C1E00 +1E3C00 +0E3800 +0F7800 +07F000 +03E000 +03E000 +01C000 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F1C780 +F1C780 +F1C780 +F1C780 +F1C780 +FBEF80 +7FFF00 +3FFE00 +1F7C00 +0E3800 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F80F80 +7C1F00 +3E3E00 +1F7C00 +0FF800 +07F000 +03E000 +03E000 +07F000 +0FF800 +1F7C00 +3E3E00 +7C1F00 +F80F80 +F00780 +F00780 +F00780 +F00780 +F00780 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F80F80 +7C1F00 +3E3E00 +1F7C00 +0FF800 +07F000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +03E000 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +000780 +000F80 +001F80 +003F00 +007E00 +00FC00 +01F800 +03F000 +07E000 +0FC000 +1F8000 +3F0000 +7E0000 +FC0000 +F80000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 30 4 1 +BITMAP +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +E00000 +F00000 +F80000 +F80000 +7C0000 +3E0000 +3E0000 +1F0000 +0F0000 +0F8000 +07C000 +03C000 +01E000 +01F000 +00F800 +007800 +003C00 +003E00 +001F00 +001F00 +000F80 +000F80 +000780 +000380 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 30 4 1 +BITMAP +FFC0 +FFC0 +FFC0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +03C0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 10 0 21 +BITMAP +01C000 +03E000 +07F000 +0FF800 +1FFC00 +3F7E00 +7E3F00 +FC1F80 +F80F80 +F00780 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 3 0 -2 +BITMAP +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 10 4 21 +BITMAP +E000 +F000 +F800 +7C00 +3E00 +1F00 +0F80 +07C0 +03C0 +01C0 +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 16 17 1 4 +BITMAP +1FF8 +1FFC +1FFE +000F +0007 +0007 +0FFF +1FFF +3FFF +7FFF +F007 +E007 +F007 +FFFF +7FFF +3FFF +1FFF +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFE00 +FFFF00 +F00780 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00780 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +1FFC00 +3FFC00 +7FFC00 +F80000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00380 +F00380 +F80780 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +000380 +000380 +000380 +000380 +000380 +000380 +000380 +1FFF80 +3FFF80 +7FFF80 +F80380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F80380 +7FFF80 +3FFF80 +1FFF80 +0FFF80 +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +1FFC00 +3FFE00 +7FFF00 +F80780 +F00380 +F00380 +F00780 +FFFF00 +FFFE00 +FFFC00 +F00000 +F00000 +F80000 +7FFC00 +3FFC00 +1FFC00 +0FFC00 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 24 0 4 +BITMAP +01FC00 +03FE00 +07FF00 +0FFF80 +0F07C0 +0F03C0 +0F03C0 +0F0000 +0F0000 +0F0000 +FFF000 +FFF000 +FFF000 +FFF000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 -2 +BITMAP +1FFE00 +3FFF00 +7FFF80 +F80780 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F80380 +7FFF80 +3FFF80 +1FFF80 +0FFF80 +000380 +000380 +000780 +0FFF80 +0FFF00 +0FFE00 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFE00 +FFFF00 +FFFF80 +F00780 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 24 4 4 +BITMAP +1E00 +1E00 +1E00 +1E00 +0000 +0000 +0000 +FE00 +FE00 +FE00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +1E00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 13 30 4 -2 +BITMAP +0038 +0038 +0038 +0038 +0000 +0000 +0000 +03F8 +03F8 +03F8 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +0038 +E038 +E038 +F078 +FFF8 +7FF0 +3FE0 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00780 +F00F80 +F01F80 +F03F00 +F07E00 +F0FC00 +F1F800 +FFF000 +FFE000 +FFE000 +F1F000 +F0F800 +F07C00 +F03E00 +F01F00 +F00F80 +F00780 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 24 4 4 +BITMAP +FC00 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +FE3C00 +FF7E00 +FFFF00 +F3E780 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F1FC00 +F3FE00 +F7FF00 +FF8780 +FF0380 +FE0380 +FC0380 +F80380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 18 0 4 +BITMAP +0FFC00 +1FFE00 +3FFF00 +7FFF80 +F807C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F003C0 +F807C0 +7FFF80 +3FFF00 +1FFE00 +0FFC00 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 -2 +BITMAP +FFFE00 +FFFF00 +FFFF80 +F00780 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00780 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 -2 +BITMAP +1FFF80 +3FFF80 +7FFF80 +F80380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F80380 +7FFF80 +3FFF80 +1FFF80 +0FFF80 +000380 +000380 +000380 +000380 +000380 +000380 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F1FC00 +F3FE00 +F7FF00 +FFC780 +FF8380 +FF0380 +FE0380 +FC0000 +F80000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +1FFF80 +3FFF80 +7FFF80 +F80000 +F00000 +F00000 +F80000 +7FFE00 +3FFF00 +1FFF80 +000780 +000380 +000780 +FFFF80 +FFFF00 +FFFE00 +FFFC00 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01E000 +01FF80 +00FF80 +007F80 +003F80 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00780 +F00F80 +F01F80 +F03F80 +F87F80 +7FFB80 +3FF380 +1FE380 +0FC380 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F80F80 +7C1F00 +3E3E00 +1F7C00 +0FF800 +07F000 +03E000 +01C000 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F1C780 +F1C780 +F1C780 +F1C780 +F1C780 +FBEF80 +7FFF00 +3F7E00 +1F7C00 +0E3800 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +E00380 +F00780 +F80F80 +7C1F00 +3E3E00 +1F7C00 +0FF800 +07F000 +03E000 +07F000 +0FF800 +1F7C00 +3E3E00 +7C1F00 +F80F80 +F00780 +E00380 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 -2 +BITMAP +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F00780 +F80F80 +7C1F00 +3E3E00 +1F7C00 +0FF800 +07F000 +03E000 +07C000 +0F8000 +1F0000 +3E0000 +FC0000 +F80000 +F00000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +FFFF80 +FFFF80 +FFFF80 +001F00 +003E00 +007C00 +00F800 +01F000 +03E000 +07C000 +0F8000 +1F0000 +3E0000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 30 4 1 +BITMAP +03C0 +07C0 +0FC0 +1E00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +3C00 +7800 +E000 +E000 +E000 +E000 +7800 +3C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1E00 +0FC0 +07C0 +03C0 +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 3 30 7 1 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 9 30 4 1 +BITMAP +E000 +F000 +F800 +3C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1E00 +0F00 +0380 +0380 +0380 +0380 +0F00 +1E00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +3C00 +F800 +F000 +E000 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 18 10 0 11 +BITMAP +0E03C0 +1F03C0 +3F83C0 +7BC3C0 +F1C3C0 +F1C3C0 +F1E7C0 +F0FF80 +F07F00 +F03E00 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 1080 0 +DWIDTH 15 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 3 24 7 4 +BITMAP +E0 +E0 +E0 +E0 +00 +00 +00 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 1 +BITMAP +01C000 +01C000 +01C000 +0FFC00 +0FFC00 +0FFC00 +F1C380 +F1C380 +F1C380 +F1C380 +F1C000 +F1C000 +F1C000 +F1C380 +F1C380 +F1C380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +01FC00 +01FC00 +01FC00 +01FC00 +0E0380 +0E0380 +0E0380 +0E0000 +0E0000 +0E0000 +FFC000 +FFC000 +FFC000 +FFC000 +0E0000 +0E0000 +0E0000 +0E0380 +0E0380 +0E0380 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F1C380 +F1C380 +F1C380 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +F00380 +F00380 +F00380 +0E3C00 +0E3C00 +0E3C00 +F1C380 +F1C380 +F1C380 +F1C380 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +F00380 +F00380 +F00380 +F00380 +0E3C00 +0E3C00 +0E3C00 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 3 24 7 4 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +00 +00 +00 +00 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 13 27 4 4 +BITMAP +1FF8 +1FF8 +1FF8 +E000 +E000 +E000 +E000 +1FC0 +1FC0 +1FC0 +E038 +E038 +E038 +E038 +E038 +E038 +E038 +1FC0 +1FC0 +1FC0 +0038 +0038 +0038 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 3 4 28 +BITMAP +E3C0 +E3C0 +E3C0 +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 20 24 0 4 +BITMAP +0FFF80 +0FFF80 +0FFF80 +0FFF80 +F00070 +F00070 +F00070 +F1FC70 +F1FC70 +F1FC70 +F1C070 +F1C070 +F1C070 +F1C070 +F1FC70 +F1FC70 +F1FC70 +F00070 +F00070 +F00070 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 16 4 18 +BITMAP +1FC0 +1FC0 +1FC0 +E3C0 +E3C0 +E3C0 +1FC0 +1FC0 +1FC0 +1FC0 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +01C380 +01C380 +01C380 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +F1C000 +F1C000 +F1C000 +0E3C00 +0E3C00 +0E3C00 +01C380 +01C380 +01C380 +01C380 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 10 0 8 +BITMAP +FFFF80 +FFFF80 +FFFF80 +FFFF80 +000380 +000380 +000380 +000380 +000380 +000380 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 4 4 14 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 20 24 0 4 +BITMAP +0FFF80 +0FFF80 +0FFF80 +0FFF80 +F00070 +F00070 +F00070 +F1FC70 +F1FC70 +F1FC70 +F1C070 +F1C070 +F1C070 +F1C070 +F1C070 +F1C070 +F1C070 +F00070 +F00070 +F00070 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 3 0 28 +BITMAP +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 13 13 4 21 +BITMAP +1FC0 +1FC0 +1FC0 +E038 +E038 +E038 +E038 +E038 +E038 +E038 +1FC0 +1FC0 +1FC0 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +FFFF80 +FFFF80 +FFFF80 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 16 4 18 +BITMAP +1C00 +1C00 +1C00 +E3C0 +E3C0 +E3C0 +03C0 +03C0 +03C0 +03C0 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 16 4 18 +BITMAP +FC00 +FC00 +FC00 +03C0 +03C0 +03C0 +1C00 +1C00 +1C00 +1C00 +03C0 +03C0 +03C0 +FC00 +FC00 +FC00 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 10 4 21 +BITMAP +03C0 +03C0 +03C0 +1C00 +1C00 +1C00 +1C00 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 -2 +BITMAP +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F03F80 +F03F80 +F03F80 +FFC380 +FFC380 +FFC380 +FFC380 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0FFF80 +0FFF80 +0FFF80 +FFC380 +FFC380 +FFC380 +FFC380 +FFC380 +FFC380 +FFC380 +FFC380 +FFC380 +FFC380 +0FC380 +0FC380 +0FC380 +0FC380 +01C380 +01C380 +01C380 +01C380 +01C380 +01C380 +01C380 +01C380 +01C380 +01C380 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 7 7 7 14 +BITMAP +FE +FE +FE +FE +FE +FE +FE +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 6 4 -2 +BITMAP +03C0 +03C0 +03C0 +FC00 +FC00 +FC00 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 16 4 18 +BITMAP +1C00 +1C00 +1C00 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 17 4 21 +BITMAP +1C00 +1C00 +1C00 +1C00 +E3C0 +E3C0 +E3C0 +1C00 +1C00 +1C00 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +F1C000 +F1C000 +F1C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +01C380 +01C380 +01C380 +0E3C00 +0E3C00 +0E3C00 +F1C000 +F1C000 +F1C000 +F1C000 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +0E0000 +FE0000 +FE0000 +FE0000 +0E0380 +0E0380 +0E0380 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +0FC000 +0FC000 +0FC000 +0E3C00 +0E3C00 +0E3C00 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +0E3C00 +0E3C00 +0E3C00 +0FFF80 +0FFF80 +0FFF80 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +0E0000 +FE0000 +FE0000 +FE0000 +0E0380 +0E0380 +0E0380 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +0FC000 +0FC000 +0FC000 +0E3C00 +0E3C00 +0E3C00 +F1C380 +F1C380 +F1C380 +F1C380 +000380 +000380 +000380 +003C00 +003C00 +003C00 +01FF80 +01FF80 +01FF80 +01FF80 +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +FE0000 +FE0000 +FE0000 +FE0000 +01C000 +01C000 +01C000 +0E0380 +0E0380 +0E0380 +01FC00 +01FC00 +01FC00 +01FC00 +FFC000 +FFC000 +FFC000 +0E3C00 +0E3C00 +0E3C00 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +0E3C00 +0E3C00 +0E3C00 +0FFF80 +0FFF80 +0FFF80 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +0E0000 +0E0000 +0E0000 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +003C00 +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0FC380 +0FC380 +0FC380 +0FC380 +F1FC00 +F1FC00 +F1FC00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0FFF80 +0FFF80 +0FFF80 +0FFF80 +F1C000 +F1C000 +F1C000 +F1C000 +F1C000 +F1C000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F1C000 +F1C000 +F1C000 +F1C000 +F1C000 +F1C000 +F1FF80 +F1FF80 +F1FF80 +F1FF80 +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 -2 +BITMAP +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +003C00 +003C00 +003C00 +0FC000 +0FC000 +0FC000 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +003C00 +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 34 4 4 +BITMAP +E000 +E000 +E000 +E000 +1C00 +1C00 +1C00 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 34 4 4 +BITMAP +03C0 +03C0 +03C0 +03C0 +1C00 +1C00 +1C00 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 34 4 4 +BITMAP +1C00 +1C00 +1C00 +1C00 +E3C0 +E3C0 +E3C0 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 30 4 4 +BITMAP +E3C0 +E3C0 +E3C0 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0FFC00 +0FFC00 +0FFC00 +0FFC00 +0E0380 +0E0380 +0E0380 +0E0380 +0E0380 +0E0380 +FFC380 +FFC380 +FFC380 +FFC380 +0E0380 +0E0380 +0E0380 +0E0380 +0E0380 +0E0380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0FC380 +0FC380 +0FC380 +0FC380 +F1FC00 +F1FC00 +F1FC00 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FE0380 +FE0380 +FE0380 +F1C380 +F1C380 +F1C380 +F1C380 +F03F80 +F03F80 +F03F80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +003C00 +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0FC380 +0FC380 +0FC380 +0FC380 +F1FC00 +F1FC00 +F1FC00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 16 0 8 +BITMAP +F00380 +F00380 +F00380 +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 1 +BITMAP +000380 +000380 +000380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F03F80 +F03F80 +F03F80 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +F1C380 +FE0380 +FE0380 +FE0380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +003C00 +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +01C000 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 34 0 4 +BITMAP +003C00 +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 13 24 4 4 +BITMAP +E000 +E000 +E000 +E000 +FFC0 +FFC0 +FFC0 +E038 +E038 +E038 +E038 +E038 +E038 +E038 +E038 +E038 +E038 +FFC0 +FFC0 +FFC0 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0FFC00 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F03C00 +F03C00 +F03C00 +F1C000 +F1C000 +F1C000 +F1C000 +F03C00 +F03C00 +F03C00 +F00380 +F00380 +F00380 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +000380 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +000380 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +000380 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0FC380 +0FC380 +0FC380 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +000380 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +000380 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +0FFC00 +0FFC00 +0FFC00 +000380 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +0FFC00 +0FFC00 +0FFC00 +01C380 +01C380 +01C380 +01C380 +0FFC00 +0FFC00 +0FFC00 +F1C000 +F1C000 +F1C000 +0FFF80 +0FFF80 +0FFF80 +0FFF80 +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 23 0 -2 +BITMAP +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00000 +F00000 +F00000 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +003C00 +003C00 +003C00 +0FC000 +0FC000 +0FC000 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 27 4 4 +BITMAP +E000 +E000 +E000 +1C00 +1C00 +1C00 +1C00 +0000 +0000 +0000 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 27 4 4 +BITMAP +03C0 +03C0 +03C0 +1C00 +1C00 +1C00 +1C00 +0000 +0000 +0000 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 27 4 4 +BITMAP +1C00 +1C00 +1C00 +E3C0 +E3C0 +E3C0 +E3C0 +0000 +0000 +0000 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 10 24 4 4 +BITMAP +E3C0 +E3C0 +E3C0 +E3C0 +0000 +0000 +0000 +FC00 +FC00 +FC00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000380 +000380 +000380 +0FFF80 +0FFF80 +0FFF80 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0FC380 +0FC380 +0FC380 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +000000 +000000 +000000 +F1FC00 +F1FC00 +F1FC00 +FE0380 +FE0380 +FE0380 +FE0380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0FC380 +0FC380 +0FC380 +F1FC00 +F1FC00 +F1FC00 +F1FC00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +0FFC00 +0FFC00 +0FFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 16 0 8 +BITMAP +01C000 +01C000 +01C000 +000000 +000000 +000000 +FFFF80 +FFFF80 +FFFF80 +FFFF80 +000000 +000000 +000000 +01C000 +01C000 +01C000 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 17 0 4 +BITMAP +0FFF80 +0FFF80 +0FFF80 +F03F80 +F03F80 +F03F80 +F03F80 +F1C380 +F1C380 +F1C380 +FE0380 +FE0380 +FE0380 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +0E0000 +0E0000 +0E0000 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 27 0 4 +BITMAP +01C000 +01C000 +01C000 +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 24 0 4 +BITMAP +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0FFC00 +0FFC00 +0FFC00 +0FFC00 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 33 0 -2 +BITMAP +003C00 +003C00 +003C00 +01C000 +01C000 +01C000 +01C000 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +01C000 +0E0000 +0E0000 +0E0000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 -2 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFC00 +FFFC00 +FFFC00 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 1440 0 +DWIDTH 20 0 +BBX 17 30 0 -2 +BITMAP +0E3C00 +0E3C00 +0E3C00 +0E3C00 +000000 +000000 +000000 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +F00380 +0E3C00 +0E3C00 +0E3C00 +01C000 +01C000 +01C000 +01C000 +0E0000 +0E0000 +0E0000 +F00000 +F00000 +F00000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-24x48.bdf b/buildroot/share/fonts/marlin-24x48.bdf new file mode 100644 index 000000000000..dba6e07e7f18 --- /dev/null +++ b/buildroot/share/fonts/marlin-24x48.bdf @@ -0,0 +1,6462 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 40 100 100 +FONTBOUNDINGBOX 26 39 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 38 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +FFFF00 +FFFF80 +FFFFC0 +FFFFE0 +FF00F0 +FF00F0 +FF00F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F00FF0 +F00FF0 +F00FF0 +7FFFF0 +3FFFF0 +1FFFF0 +0FFFF0 +000F00 +000F00 +000F00 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +FF0000 +FF0000 +FF0000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 19 18 0 7 +BITMAP +00E000 +00F000 +00F800 +00FC00 +00FE00 +00FF00 +00FF80 +FFFFC0 +FFFFE0 +FFFFE0 +FFFFC0 +00FF80 +00FF00 +00FE00 +00FC00 +00F800 +00F000 +00E000 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 19 29 0 4 +BITMAP +004000 +00E000 +01F000 +03F800 +07FC00 +0FFE00 +1FFF00 +3FFF80 +7FFFC0 +FFFFE0 +FFFFE0 +FFFFE0 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +FFF000 +FFF000 +FFF000 +FFF000 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 1 +BITMAP +00F000 +00F000 +00F000 +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +FCF3F0 +F8F1F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0FFF0 +F0FFF0 +F0FFF0 +F0FFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +FC03F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 1872 0 +DWIDTH 26 0 +BBX 24 16 0 8 +BITMAP +FE3F80 +7F1FC0 +3F8FE0 +1FC7F0 +0FE3F8 +07F1FC +03F8FE +01FC7F +01FC7F +03F8FE +07F1FC +0FE3F8 +1FC7F0 +3F8FE0 +7F1FC0 +FE3F80 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 1 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 33 0 -2 +BITMAP +01F800 +03FC00 +07FE00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +1F0F80 +3F0FC0 +7F0FE0 +F801F0 +F000F0 +F000F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 10 9 1 15 +BITMAP +1E00 +3F00 +7F80 +F3C0 +E1C0 +F3C0 +7F80 +3F00 +1E00 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 4 24 8 4 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +00 +00 +00 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 10 4 21 +BITMAP +F0F0 +F0F0 +F0F0 +F0F0 +F0F0 +F0F0 +F0F0 +F0F0 +F0F0 +F0F0 +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 20 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +FFFFF0 +FFFFF0 +FFFFF0 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +FFFFF0 +FFFFF0 +FFFFF0 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 1 +BITMAP +00F000 +00F000 +00F000 +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F8F1F0 +F0F0F0 +F0F0F0 +F0F000 +F0F000 +F8F000 +7FFF00 +3FFF80 +1FFFC0 +0FFFE0 +00F1F0 +00F0F0 +00F0F0 +F0F0F0 +F0F0F0 +F8F1F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FF00F0 +FF00F0 +FF00F0 +FF01F0 +FF03F0 +FF07E0 +FF0FC0 +001F80 +003F00 +007E00 +00FC00 +01F800 +03F000 +07E000 +0FC000 +1F8000 +3F0000 +7E0FF0 +FC0FF0 +F80FF0 +F00FF0 +F00FF0 +F00FF0 +F00FF0 +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0F0000 +1F8000 +3FC000 +7FE000 +F9F000 +F0F000 +F0F000 +F0F000 +F0F000 +F9F000 +7FE000 +3FC000 +3FC000 +7FE000 +F9F0F0 +F0F9F0 +F07FF0 +F03F80 +F01F00 +F83F80 +7FFFF0 +3FFFF0 +1FF9F0 +0FF0F0 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 4 10 8 21 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 1 +BITMAP +01F0 +03F0 +07F0 +0F80 +1F00 +1E00 +3E00 +3C00 +7C00 +7800 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +7800 +7C00 +3C00 +3E00 +1E00 +1F00 +0F80 +07F0 +03F0 +01F0 +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 1 +BITMAP +F800 +FC00 +FE00 +1F00 +0F80 +0780 +03C0 +03C0 +01E0 +01E0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +01E0 +01E0 +03C0 +03C0 +0780 +0F80 +1F00 +FE00 +FC00 +F000 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +F0F0F0 +F8F1F0 +7CF3E0 +3EF7C0 +1FFF80 +0FFF00 +07FE00 +03FC00 +03FC00 +07FE00 +0FFF00 +1FFF80 +3EF7C0 +7CF3E0 +F8F1F0 +F0F0F0 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 16 0 8 +BITMAP +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 8 10 4 1 +BITMAP +FF +FF +FF +0F +0F +0F +1E +FC +F8 +F0 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 4 0 14 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 8 7 4 4 +BITMAP +FF +FF +FF +FF +FF +FF +FF +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +000070 +0000F0 +0001F0 +0003F0 +0007E0 +000FC0 +001F80 +001F80 +003F00 +007E00 +00FC00 +01FC00 +03F800 +03F000 +07E000 +07C000 +0F8000 +1F8000 +3F0000 +7E0000 +FC0000 +F80000 +F00000 +E00000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F003F0 +F007F0 +F00FF0 +F01FF0 +F03EF0 +F07CF0 +F0F8F0 +F1F0F0 +F3E0F0 +F7C0F0 +FF80F0 +FF00F0 +FE00F0 +FC00F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 24 4 4 +BITMAP +0F00 +1F00 +3F00 +7F00 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +0001F0 +0003E0 +0007C0 +000F80 +001F00 +003E00 +007C00 +00F800 +01F000 +03E000 +07C000 +0F8000 +1F0000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +0000F0 +0001F0 +0003F0 +0007E0 +000FC0 +001F80 +003F00 +007F80 +007FC0 +003FE0 +0001F0 +0000F0 +0000F0 +E000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 25 0 4 +BITMAP +001F00 +003F00 +007F00 +00FF00 +01FF00 +03EF00 +07CF00 +0F8F00 +1F0F00 +3E0F00 +7C0F00 +F80F00 +F00F00 +F00F00 +F00F00 +FFFFF0 +FFFFF0 +FFFFF0 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +FFFF80 +FFFFC0 +FFFFE0 +0001F0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +E000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +01FF00 +03FF00 +07FF00 +0FFF00 +1F8000 +3F0000 +7E0000 +FC0000 +F80000 +F00000 +FFFF00 +FFFF80 +FFFFC0 +FFFFE0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +0000F0 +0000F0 +0000F0 +0001F0 +0003E0 +0007C0 +000F80 +001F00 +003E00 +007C00 +00F800 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F800F0 +7FFFF0 +3FFFF0 +1FFFF0 +0FFFF0 +0000F0 +0001F0 +0003F0 +0007E0 +000FC0 +001F80 +0FFF00 +0FFE00 +0FFC00 +0FF800 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 8 17 4 4 +BITMAP +FF +FF +FF +FF +FF +FF +FF +00 +00 +00 +FF +FF +FF +FF +FF +FF +FF +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 8 20 4 1 +BITMAP +FF +FF +FF +FF +FF +FF +FF +00 +00 +00 +FF +FF +FF +0F +0F +0F +1E +FC +F8 +F0 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 13 16 3 8 +BITMAP +0078 +00F8 +03F8 +07E0 +1F80 +3F00 +7C00 +F800 +F800 +7C00 +3F00 +1F80 +07E0 +03F8 +00F8 +0078 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 10 0 11 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +000000 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 13 16 4 8 +BITMAP +F000 +F800 +FE00 +3F00 +0FC0 +07E0 +01F0 +00F8 +00F8 +01F0 +07E0 +0FC0 +3F00 +FE00 +F800 +F000 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +0001F0 +0003E0 +0007C0 +000F80 +001F00 +003E00 +007C00 +00F800 +00F000 +00F000 +000000 +000000 +000000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F07FF0 +F0FFF0 +F0FFF0 +F0F9F0 +F0F0F0 +F0F0F0 +F0F9F0 +F0FFF0 +F0FFF0 +F07FE0 +F00000 +F00000 +F80000 +7FFF00 +3FFF00 +1FFF00 +0FFF00 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFF00 +FFFF80 +FFFFC0 +FFFFE0 +0F01F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F01F0 +0FFFE0 +0FFFC0 +0FFFC0 +0FFFE0 +0F01F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F01F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFF00 +FFFF80 +FFFFC0 +FFFFE0 +0F01F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F01F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00FF0 +F00FF0 +F00FF0 +F00FF0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 24 4 4 +BITMAP +FFF0 +FFF0 +FFF0 +FFF0 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00FFF0 +00FFF0 +00FFF0 +00FFF0 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +000F00 +F00F00 +F00F00 +F81F00 +7FFE00 +3FFC00 +1FF800 +0FF000 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 19 24 0 4 +BITMAP +F001E0 +F003E0 +F007C0 +F00F80 +F01F00 +F03E00 +F07C00 +F0F800 +F1F000 +F3E000 +FFC000 +FF8000 +FF8000 +FFC000 +F3E000 +F1F000 +F0F800 +F07C00 +F03E00 +F01F00 +F00F80 +F007C0 +F003E0 +F001E0 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F801F0 +FC03F0 +FE07F0 +FF0FF0 +FF9FF0 +F7FEF0 +F3FCF0 +F1F8F0 +F0F0F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F800F0 +FC00F0 +FE00F0 +FF00F0 +FF80F0 +F7C0F0 +F3E0F0 +F1F0F0 +F0F8F0 +F07CF0 +F03EF0 +F01FF0 +F00FF0 +F007F0 +F003F0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFF00 +FFFF80 +FFFFC0 +FFFFE0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +F001F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F0F8F0 +F0FCF0 +F07EF0 +F03F70 +F01FB0 +F80FC0 +7FF7E0 +3FFBF0 +1FFDF0 +0FFCF0 +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFF00 +FFFF80 +FFFFC0 +FFFFE0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +F001F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +F1F000 +F0F800 +F07C00 +F03E00 +F01F00 +F00F80 +F007C0 +F003E0 +F001F0 +F000F0 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F00000 +F00000 +F00000 +7FFF00 +3FFF80 +1FFFC0 +0FFFE0 +0001F0 +0000F0 +0000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7C03E0 +3E07C0 +1F0F80 +0F9F00 +07FE00 +03FC00 +01F800 +00F000 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F9F9F0 +7FFFE0 +3FFFC0 +1F9F80 +0F0F00 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7C03E0 +3E07C0 +1F0F80 +0F9F00 +07FE00 +03FC00 +03FC00 +07FE00 +0F9F00 +1F0F80 +3E07C0 +7C03E0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7C03E0 +3E07C0 +1F0F80 +0FFF00 +07FE00 +03FC00 +01F800 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +0000F0 +0001F0 +0003F0 +0007E0 +000FC0 +001F80 +003F00 +007E00 +00FC00 +01F800 +03F000 +07E000 +0FC000 +1F8000 +3F0000 +7E0000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 1 +BITMAP +FFF0 +FFF0 +FFF0 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +F000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +E00000 +F00000 +F80000 +FC0000 +7E0000 +3F0000 +1F8000 +0F8000 +0FC000 +07E000 +03F000 +01F800 +00F800 +007C00 +003E00 +001F00 +001F80 +000FC0 +0007C0 +0007E0 +0003F0 +0001F0 +0000F0 +000070 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 1 +BITMAP +FFF0 +FFF0 +FFF0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +00F0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 11 0 21 +BITMAP +00F000 +01F800 +03FC00 +07FE00 +0F9F00 +1F0F80 +3E07C0 +7C03E0 +F801F0 +F000F0 +E00070 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 3 0 -2 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 11 4 20 +BITMAP +F000 +F800 +FC00 +7E00 +3F00 +1F80 +0FC0 +07E0 +03F0 +01F0 +00F0 +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +0FFF80 +0FFFC0 +0FFFE0 +0001F0 +0000F0 +0000F0 +0FFFF0 +1FFFF0 +3FFFF0 +7FFFF0 +F800F0 +F000F0 +F800F0 +7FFFF0 +3FFFF0 +1FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFFC0 +FFFFE0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F001F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +1FFF00 +3FFF00 +7FFF00 +F80000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +1FFFF0 +3FFFF0 +7FFFF0 +F800F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F800F0 +7FFFF0 +3FFFF0 +1FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F001F0 +FFFFE0 +FFFFC0 +FFFF80 +F00000 +F00000 +F80000 +7FFF00 +3FFF00 +1FFF00 +0FFF00 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00FF00 +01FF80 +03FFC0 +07FFE0 +0F81F0 +0F00F0 +0F0070 +0F0000 +0F0000 +0F0000 +FFF000 +FFF000 +FFF000 +FFF000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +0F0000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 -2 +BITMAP +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F800F0 +7FFFF0 +3FFFF0 +1FFFF0 +0FFFF0 +0000F0 +0000F0 +0001F0 +0FFFE0 +0FFFC0 +0FFF80 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF80 +FFFFC0 +FFFFE0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 24 4 4 +BITMAP +0F00 +0F00 +0F00 +0F00 +0000 +0000 +0000 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 16 30 4 -2 +BITMAP +000F +000F +000F +000F +0000 +0000 +0000 +00FF +00FF +00FF +000F +000F +000F +000F +000F +000F +000F +000F +000F +000F +000F +000F +000F +000F +E00F +F00F +F81F +7FFE +3FFC +1FF8 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F000F0 +F001F0 +F003E0 +F007C0 +F00F80 +F01F00 +F03E00 +FFFC00 +FFF800 +FFFC00 +F03E00 +F01F00 +F00F80 +F007C0 +F003E0 +F001F0 +F000F0 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 24 4 4 +BITMAP +FF00 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +FF0F80 +FF9FC0 +FFFFE0 +F1F9F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F1FF80 +F3FFC0 +F7FFE0 +FF81F0 +FF00F0 +FE00F0 +FC00F0 +F800F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 18 0 4 +BITMAP +0FFF00 +1FFF80 +3FFFC0 +7FFFE0 +F801F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7FFFE0 +3FFFC0 +1FFF80 +0FFF00 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 -2 +BITMAP +FFFF80 +FFFFC0 +FFFFE0 +F001F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F001F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 -2 +BITMAP +1FFFF0 +3FFFF0 +7FFFF0 +F800F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F800F0 +7FFFF0 +3FFFF0 +1FFFF0 +0FFFF0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F1FF80 +F3FFC0 +F7FFE0 +FF81F0 +FF00F0 +FE0070 +FC0030 +F80000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +1FFFF0 +3FFFF0 +7FFFF0 +F80000 +F00000 +F00000 +F80000 +7FFF80 +3FFFC0 +1FFFE0 +0001F0 +0000F0 +0001F0 +FFFFE0 +FFFFC0 +FFFF80 +FFFF00 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +FFFFF0 +FFFFF0 +FFFFF0 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F800 +007FF0 +003FF0 +001FF0 +000FF0 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F001F0 +F003F0 +F007F0 +F00FF0 +F81FF0 +7FFEF0 +3FFCF0 +1FF8F0 +0FF0F0 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7C03E0 +3E07C0 +1F0F80 +0F9F00 +07FE00 +03FC00 +01F800 +00F000 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F9F9F0 +7FFFE0 +3FFFC0 +1F9F80 +0F0F00 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 19 16 0 4 +BITMAP +F803E0 +7C07C0 +3E0F80 +1F1F00 +0FBE00 +07FC00 +03F800 +01F000 +01F000 +03F800 +07BC00 +0F1E00 +1E0F00 +3C0780 +7803C0 +F001E0 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 -2 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F801F0 +7C03E0 +3E07C0 +1F0F80 +0F9F00 +07FE00 +03FC00 +00F800 +01F000 +03E000 +07C000 +0F8000 +FF0000 +FE0000 +FC0000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +001F80 +003F00 +007E00 +00FC00 +01F800 +03F000 +07E000 +0FC000 +1F8000 +3F0000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 1 +BITMAP +00F0 +01F0 +03E0 +0780 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +1F00 +3F00 +7E00 +F800 +F000 +F000 +F800 +7E00 +3F00 +1F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0780 +03E0 +01F0 +00F0 +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 4 30 8 1 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 1 +BITMAP +F000 +F800 +7C00 +3E00 +1F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F80 +0FC0 +07E0 +01F0 +00F0 +00F0 +01F0 +07E0 +0FC0 +0F80 +0F00 +0F00 +0F00 +0F00 +0F00 +1F00 +3E00 +7C00 +F800 +F000 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 10 0 11 +BITMAP +1F00F0 +3F80F0 +7FC0F0 +F3E0F0 +F1F0F0 +F0F8F0 +F07DF0 +F03FE0 +F01FC0 +F00F80 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 1368 0 +DWIDTH 19 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 4 24 8 4 +BITMAP +F0 +F0 +F0 +F0 +00 +00 +00 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 1 +BITMAP +00F000 +00F000 +00F000 +0FFF00 +0FFF00 +0FFF00 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F000 +F0F000 +F0F000 +F0F0F0 +F0F0F0 +F0F0F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00FF00 +00FF00 +00FF00 +00FF00 +0F00F0 +0F00F0 +0F00F0 +0F0000 +0F0000 +0F0000 +FFF000 +FFF000 +FFF000 +FFF000 +0F0000 +0F0000 +0F0000 +0F00F0 +0F00F0 +0F00F0 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F0F0F0 +F0F0F0 +F0F0F0 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +F000F0 +F000F0 +F000F0 +0F0F00 +0F0F00 +0F0F00 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +0F0F00 +0F0F00 +0F0F00 +FFFFF0 +FFFFF0 +FFFFF0 +00F000 +00F000 +00F000 +00F000 +FFFFF0 +FFFFF0 +FFFFF0 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 4 24 8 4 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +00 +00 +00 +00 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 16 27 4 4 +BITMAP +0FFF +0FFF +0FFF +F000 +F000 +F000 +F000 +0FF0 +0FF0 +0FF0 +F00F +F00F +F00F +F00F +F00F +F00F +F00F +0FF0 +0FF0 +0FF0 +000F +000F +000F +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 3 4 28 +BITMAP +F0F0 +F0F0 +F0F0 +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 24 24 0 4 +BITMAP +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +F0000F +F0000F +F0000F +F0FF0F +F0FF0F +F0FF0F +F0F00F +F0F00F +F0F00F +F0F00F +F0FF0F +F0FF0F +F0FF0F +F0000F +F0000F +F0000F +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 16 4 18 +BITMAP +0FF0 +0FF0 +0FF0 +F0F0 +F0F0 +F0F0 +0FF0 +0FF0 +0FF0 +0FF0 +0000 +0000 +0000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +00F0F0 +00F0F0 +00F0F0 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +F0F000 +F0F000 +F0F000 +0F0F00 +0F0F00 +0F0F00 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 10 0 8 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +0000F0 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 4 4 14 +BITMAP +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 24 24 0 4 +BITMAP +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +F0000F +F0000F +F0000F +F0FF0F +F0FF0F +F0FF0F +F0F00F +F0F00F +F0F00F +F0F00F +F0F00F +F0F00F +F0F00F +F0000F +F0000F +F0000F +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 3 0 28 +BITMAP +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 16 13 4 21 +BITMAP +0FF0 +0FF0 +0FF0 +F00F +F00F +F00F +F00F +F00F +F00F +F00F +0FF0 +0FF0 +0FF0 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +FFFFF0 +FFFFF0 +FFFFF0 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 16 4 18 +BITMAP +0F00 +0F00 +0F00 +F0F0 +F0F0 +F0F0 +00F0 +00F0 +00F0 +00F0 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 16 4 18 +BITMAP +FF00 +FF00 +FF00 +00F0 +00F0 +00F0 +0F00 +0F00 +0F00 +0F00 +00F0 +00F0 +00F0 +FF00 +FF00 +FF00 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 10 4 21 +BITMAP +00F0 +00F0 +00F0 +0F00 +0F00 +0F00 +0F00 +F000 +F000 +F000 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 -2 +BITMAP +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F00FF0 +F00FF0 +F00FF0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0FFFF0 +0FFFF0 +0FFFF0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +0FF0F0 +0FF0F0 +0FF0F0 +0FF0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 8 7 8 14 +BITMAP +FF +FF +FF +FF +FF +FF +FF +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 6 4 -2 +BITMAP +00F0 +00F0 +00F0 +FF00 +FF00 +FF00 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 16 4 18 +BITMAP +0F00 +0F00 +0F00 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 17 4 21 +BITMAP +0F00 +0F00 +0F00 +0F00 +F0F0 +F0F0 +F0F0 +0F00 +0F00 +0F00 +0000 +0000 +0000 +0000 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +F0F000 +F0F000 +F0F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +00F0F0 +00F0F0 +00F0F0 +0F0F00 +0F0F00 +0F0F00 +F0F000 +F0F000 +F0F000 +F0F000 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +0F0000 +FF0000 +FF0000 +FF0000 +0F00F0 +0F00F0 +0F00F0 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0FF000 +0FF000 +0FF000 +0F0F00 +0F0F00 +0F0F00 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +0F0F00 +0F0F00 +0F0F00 +0FFFF0 +0FFFF0 +0FFFF0 +000F00 +000F00 +000F00 +000F00 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +0F0000 +FF0000 +FF0000 +FF0000 +0F00F0 +0F00F0 +0F00F0 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0FF000 +0FF000 +0FF000 +0F0F00 +0F0F00 +0F0F00 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +0000F0 +0000F0 +0000F0 +000F00 +000F00 +000F00 +00FFF0 +00FFF0 +00FFF0 +00FFF0 +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +FF0000 +FF0000 +FF0000 +FF0000 +00F000 +00F000 +00F000 +0F00F0 +0F00F0 +0F00F0 +00FF00 +00FF00 +00FF00 +00FF00 +FFF000 +FFF000 +FFF000 +0F0F00 +0F0F00 +0F0F00 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +0F0F00 +0F0F00 +0F0F00 +0FFFF0 +0FFFF0 +0FFFF0 +000F00 +000F00 +000F00 +000F00 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +0F0000 +0F0000 +0F0000 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +000F00 +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0FF0F0 +0FF0F0 +0FF0F0 +0FF0F0 +F0FF00 +F0FF00 +F0FF00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +F0F000 +F0F000 +F0F000 +F0F000 +F0F000 +F0F000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F0F000 +F0F000 +F0F000 +F0F000 +F0F000 +F0F000 +F0FFF0 +F0FFF0 +F0FFF0 +F0FFF0 +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 -2 +BITMAP +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +000F00 +000F00 +000F00 +0FF000 +0FF000 +0FF000 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +000F00 +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 34 4 4 +BITMAP +F000 +F000 +F000 +F000 +0F00 +0F00 +0F00 +0000 +0000 +0000 +FFF0 +FFF0 +FFF0 +FFF0 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 34 4 4 +BITMAP +00F0 +00F0 +00F0 +00F0 +0F00 +0F00 +0F00 +0000 +0000 +0000 +FFF0 +FFF0 +FFF0 +FFF0 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 34 4 4 +BITMAP +0F00 +0F00 +0F00 +0F00 +F0F0 +F0F0 +F0F0 +0000 +0000 +0000 +FFF0 +FFF0 +FFF0 +FFF0 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 30 4 4 +BITMAP +F0F0 +F0F0 +F0F0 +0000 +0000 +0000 +FFF0 +FFF0 +FFF0 +FFF0 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +0FFF00 +0FFF00 +0FFF00 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +FFF0F0 +FFF0F0 +FFF0F0 +FFF0F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0F00F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0FF0F0 +0FF0F0 +0FF0F0 +0FF0F0 +F0FF00 +F0FF00 +F0FF00 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FF00F0 +FF00F0 +FF00F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F00FF0 +F00FF0 +F00FF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +000F00 +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0FF0F0 +0FF0F0 +0FF0F0 +0FF0F0 +F0FF00 +F0FF00 +F0FF00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 16 0 8 +BITMAP +F000F0 +F000F0 +F000F0 +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 1 +BITMAP +0000F0 +0000F0 +0000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F00FF0 +F00FF0 +F00FF0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +F0F0F0 +FF00F0 +FF00F0 +FF00F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +000F00 +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +00F000 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 34 0 4 +BITMAP +000F00 +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 16 24 4 4 +BITMAP +F000 +F000 +F000 +F000 +FFF0 +FFF0 +FFF0 +F00F +F00F +F00F +F00F +F00F +F00F +F00F +F00F +F00F +F00F +FFF0 +FFF0 +FFF0 +F000 +F000 +F000 +F000 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0FFF00 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F00F00 +F00F00 +F00F00 +F0F000 +F0F000 +F0F000 +F0F000 +F00F00 +F00F00 +F00F00 +F000F0 +F000F0 +F000F0 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0000F0 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0000F0 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0000F0 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0FF0F0 +0FF0F0 +0FF0F0 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0000F0 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +0000F0 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +0FFF00 +0FFF00 +0FFF00 +0000F0 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +0FFF00 +0FFF00 +0FFF00 +00F0F0 +00F0F0 +00F0F0 +00F0F0 +0FFF00 +0FFF00 +0FFF00 +F0F000 +F0F000 +F0F000 +0FFFF0 +0FFFF0 +0FFFF0 +0FFFF0 +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 23 0 -2 +BITMAP +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F00000 +F00000 +F00000 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +000F00 +000F00 +000F00 +0FF000 +0FF000 +0FF000 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 27 4 4 +BITMAP +F000 +F000 +F000 +0F00 +0F00 +0F00 +0F00 +0000 +0000 +0000 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 27 4 4 +BITMAP +00F0 +00F0 +00F0 +0F00 +0F00 +0F00 +0F00 +0000 +0000 +0000 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 27 4 4 +BITMAP +0F00 +0F00 +0F00 +F0F0 +F0F0 +F0F0 +F0F0 +0000 +0000 +0000 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 12 24 4 4 +BITMAP +F0F0 +F0F0 +F0F0 +F0F0 +0000 +0000 +0000 +FF00 +FF00 +FF00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +0F00 +FFF0 +FFF0 +FFF0 +FFF0 +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +0000F0 +0000F0 +0000F0 +0FFFF0 +0FFFF0 +0FFFF0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0FF0F0 +0FF0F0 +0FF0F0 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +000000 +000000 +000000 +F0FF00 +F0FF00 +F0FF00 +FF00F0 +FF00F0 +FF00F0 +FF00F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0FF0F0 +0FF0F0 +0FF0F0 +F0FF00 +F0FF00 +F0FF00 +F0FF00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +0FFF00 +0FFF00 +0FFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 16 0 8 +BITMAP +00F000 +00F000 +00F000 +000000 +000000 +000000 +FFFFF0 +FFFFF0 +FFFFF0 +FFFFF0 +000000 +000000 +000000 +00F000 +00F000 +00F000 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 17 0 4 +BITMAP +0FFFF0 +0FFFF0 +0FFFF0 +F00FF0 +F00FF0 +F00FF0 +F00FF0 +F0F0F0 +F0F0F0 +F0F0F0 +FF00F0 +FF00F0 +FF00F0 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +0F0000 +0F0000 +0F0000 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 27 0 4 +BITMAP +00F000 +00F000 +00F000 +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 24 0 4 +BITMAP +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0FFF00 +0FFF00 +0FFF00 +0FFF00 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 33 0 -2 +BITMAP +000F00 +000F00 +000F00 +00F000 +00F000 +00F000 +00F000 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +00F000 +0F0000 +0F0000 +0F0000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 -2 +BITMAP +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +FFFF00 +FFFF00 +FFFF00 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F00000 +F00000 +F00000 +F00000 +F00000 +F00000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 1728 0 +DWIDTH 24 0 +BBX 20 30 0 -2 +BITMAP +0F0F00 +0F0F00 +0F0F00 +0F0F00 +000000 +000000 +000000 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +F000F0 +0F0F00 +0F0F00 +0F0F00 +00F000 +00F000 +00F000 +00F000 +0F0000 +0F0000 +0F0000 +F00000 +F00000 +F00000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-28x56.bdf b/buildroot/share/fonts/marlin-28x56.bdf new file mode 100644 index 000000000000..1b6a3f523306 --- /dev/null +++ b/buildroot/share/fonts/marlin-28x56.bdf @@ -0,0 +1,7311 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 48 100 100 +FONTBOUNDINGBOX 30 47 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 46 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +FFC03F +FFC01F +FFC01F +FFC01F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F803FF +F803FF +F803FF +FC03FF +7FFFFF +3FFFFF +1FFFFF +0FFFFF +0003E0 +0003E0 +0003E0 +0003E0 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +FFC000 +FFC000 +FFC000 +FFC000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 23 20 0 10 +BITMAP +003C00 +003E00 +003F00 +003F80 +003FC0 +003FE0 +003FF0 +003FF8 +FFFFFC +FFFFFE +FFFFFE +FFFFFC +003FF8 +003FF0 +003FE0 +003FC0 +003F80 +003F00 +003E00 +003C00 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 23 34 0 6 +BITMAP +001000 +003800 +007C00 +00FE00 +01FF00 +03FF80 +07FFC0 +0FFFE0 +1FFFF0 +3FFFF8 +7FFFFC +FFFFFE +FFFFFE +FFFFFE +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 2 +BITMAP +003C00 +003C00 +003C00 +003C00 +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC3C3F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83FFF +F83FFF +F83FFF +F83FFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 2160 0 +DWIDTH 30 0 +BBX 28 20 0 10 +BITMAP +FE1FE000 +FF1FF000 +FF9FF800 +7FCFFC00 +3FE7FE00 +1FF3FF00 +0FF9FF80 +07FCFFC0 +03FE7FE0 +01FF3FF0 +01FF3FF0 +03FE7FE0 +07FCFFC0 +0FF9FF80 +1FF3FF00 +3FE7FE00 +7FCFFC00 +FF9FF800 +FF1FF000 +FE1FE000 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 2 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F83C1F +F83C1F +F83C1F +F83C1F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F83C1F +F83C1F +F83C1F +F83C1F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 -2 +BITMAP +007E00 +00FF00 +01FF80 +03FFC0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +0FC3F0 +1FC3F8 +3FC3FC +7FC3FE +FC003F +F8001F +F8001F +F8001F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 13 12 1 18 +BITMAP +0F80 +1FC0 +3FE0 +7FF0 +F8F8 +F078 +F078 +F8F8 +7FF0 +3FE0 +1FC0 +0F80 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 4 28 10 6 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +00 +00 +00 +00 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 12 5 26 +BITMAP +F87C +F87C +F87C +F87C +F87C +F87C +F87C +F87C +F87C +F87C +F87C +F87C +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 24 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +07C3E0 +07C3E0 +07C3E0 +07C3E0 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 2 +BITMAP +003C00 +003C00 +003C00 +003C00 +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC3C3F +F83C1F +F83C1F +F83C1F +F83C00 +F83C00 +F83C00 +FC3C00 +7FFFF0 +3FFFF8 +1FFFFC +0FFFFE +003C3F +003C1F +003C1F +003C1F +F83C1F +F83C1F +F83C1F +FC3C3F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFC01F +FFC01F +FFC01F +FFC01F +FFC01F +FFC03F +FFC07F +FFC0FF +0003F8 +0007F0 +000FE0 +001FC0 +003F00 +007E00 +00FC00 +01F800 +07F000 +0FE000 +1FC000 +3F8000 +FE03FF +FC03FF +F803FF +F803FF +F803FF +F803FF +F803FF +F803FF +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FC000 +1FE000 +3FF000 +7FF800 +FC7C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +7C7800 +3FF000 +1FE000 +1FF000 +3FF800 +7C7C0F +F83E1F +F81F3F +F80FFE +F807FC +F803F8 +F803F8 +FC07FC +7FFFFE +3FFF3F +1FFE1F +0FFC0F +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 4 12 10 26 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 2 +BITMAP +007C +00FC +01FC +03FC +07C0 +0780 +0F80 +0F00 +1F00 +3E00 +3E00 +7C00 +FC00 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +7C00 +3C00 +3E00 +1F00 +1F00 +0F80 +0FC0 +07E0 +03FC +01FC +00FC +007C +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 2 +BITMAP +F800 +FC00 +FE00 +FF00 +1F80 +0FC0 +07E0 +07E0 +03F0 +03F0 +01F8 +01F8 +00FC +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +00FC +00F8 +01F8 +01F0 +03F0 +03E0 +07E0 +07C0 +0F80 +FF00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +F83C1F +FC3C3F +7E3C7E +3F3CFC +1FBDF8 +0FFFF0 +07FFE0 +03FFC0 +01FF80 +00FF00 +00FF00 +01FF80 +03FFC0 +07FFE0 +0FFFF0 +1FBDF8 +3F3CFC +7E3C7E +FC3C3F +F83C1F +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 10 +BITMAP +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 9 12 5 2 +BITMAP +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0F80 +FF00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 4 0 18 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 9 8 5 6 +BITMAP +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +00001F +00003F +00007F +0000FE +0001FC +0003FC +0003F8 +0007F0 +000FE0 +001FE0 +003FC0 +003F80 +007F80 +00FF00 +01FE00 +01FC00 +03FC00 +07F800 +0FF800 +0FF000 +1FE000 +3FC000 +7F8000 +FF0000 +FE0000 +FC0000 +F80000 +F00000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8007F +F800FF +F801FF +F803FF +F807FF +F80FFF +F81FDF +F83F9F +F87F1F +F8FE1F +F9FC1F +FBF81F +FFF01F +FFE01F +FFC01F +FF801F +FF001F +FE001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 28 5 6 +BITMAP +0F80 +1F80 +3F80 +7F80 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +00003F +00007F +0000FE +0001FC +0003F8 +0007F0 +000FE0 +001FC0 +003F80 +007F00 +00FE00 +01FC00 +03F800 +07F000 +0FE000 +1FC000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +00001F +00001F +00003F +00007F +0000FE +0001FC +0003F8 +0007F0 +003FF0 +003FF8 +003FFC +003FFE +00003F +00001F +00001F +00001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 29 0 6 +BITMAP +0007E0 +000FE0 +001FE0 +003FE0 +007FE0 +00FFE0 +01FBE0 +03F3E0 +07E3E0 +0FC3E0 +1F83E0 +3F03E0 +7E03E0 +FC03E0 +F803E0 +F803E0 +F803E0 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +00003F +00001F +00001F +00001F +00001F +00001F +00001F +00001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +00FFE0 +01FFE0 +03FFE0 +07FFE0 +0FE000 +1FC000 +3F8000 +7F0000 +FE0000 +FC0000 +F80000 +F80000 +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +00001F +00001F +00003F +00007E +0000FC +0001F8 +0003F0 +0007E0 +000FC0 +001F80 +003F00 +003E00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC001F +7FFFFF +3FFFFF +1FFFFF +0FFFFF +00001F +00001F +00003F +00007E +0000FC +0001F8 +0003F0 +0007E0 +07FFC0 +07FF80 +07FF00 +07FE00 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 9 20 5 6 +BITMAP +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 9 24 5 2 +BITMAP +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0F80 +FF00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 21 5 9 +BITMAP +007C +00FC +01F8 +03F0 +07E0 +0FC0 +1F80 +3F00 +7E00 +FC00 +F800 +FC00 +7E00 +3F00 +1F80 +0FC0 +07E0 +03F0 +01F8 +00FC +007C +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 12 0 14 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 20 5 10 +BITMAP +FC00 +FE00 +3F00 +1F80 +0FC0 +07E0 +03F0 +01F8 +00FC +007C +007C +00FC +01F8 +03F0 +07E0 +0FC0 +1F80 +3F00 +FE00 +FC00 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8003F +00007E +0000FC +0001F8 +0003F0 +0007E0 +000FC0 +001F80 +003F00 +003E00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +F8003F +F8001F +F8001F +F8001F +F81FFF +F83FFF +F83FFF +F83FFF +F83E1F +F83C1F +F83C1F +F83E3F +F83FFF +F83FFF +F83FFF +F81FFE +F80000 +F80000 +F80000 +FC0000 +7FFFE0 +3FFFE0 +1FFFE0 +0FFFE0 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +07C03F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07FFFE +07FFFC +07FFFC +07FFFE +07C03F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C03F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +07C03F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C03F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F803FF +F803FF +F803FF +F803FF +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 28 5 6 +BITMAP +FFFC +FFFC +FFFC +FFFC +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +003FFF +003FFF +003FFF +003FFF +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +F803E0 +F803E0 +F803E0 +FC07E0 +7FFFC0 +3FFF80 +1FFF00 +0FFE00 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8003F +F8007E +F800FC +F801F8 +F803F0 +F807E0 +F80FC0 +F81F80 +F83F00 +F87E00 +F8FC00 +F9F800 +FFF000 +FFE000 +FFE000 +FFF000 +F9F800 +F8FC00 +F87E00 +F83F00 +F81F80 +F80FC0 +F807E0 +F803F0 +F801F8 +F800FC +F8007E +F8003F +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +FC003F +FE007F +FF00FF +FF81FF +FFC3FF +FFE7FF +FFFFFF +F9FF9F +F8FF1F +F87E1F +F83C1F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +FC001F +FE001F +FF001F +FF801F +FFC01F +FFE01F +FBF01F +F9F81F +F8FC1F +F87E1F +F83F1F +F81F9F +F80FDF +F807FF +F803FF +F801FF +F800FF +F8007F +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8003F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F83C1F +F83E1F +F83F1F +F83F9F +F81FDF +F80FEF +F807F7 +FC03FB +7FFDFC +3FFEFE +1FFF7F +0FFFBF +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8003F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +F8FC00 +F87E00 +F83F00 +F81F80 +F80FC0 +F807E0 +F803F0 +F801F8 +F800FC +F8007E +F8003F +F8001F +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F80000 +F80000 +F80000 +FC0000 +7FFFF0 +3FFFF8 +1FFFFC +0FFFFE +00003F +00001F +00001F +00001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +FE007E +7F00FC +3F81F8 +1FC3F0 +0FE7E0 +07FFC0 +03FF80 +01FF00 +00FE00 +007C00 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F87E3F +7FFFFE +3FFFFC +1FE7F8 +0FC3F0 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 23 28 0 6 +BITMAP +F8003E +F8003E +F8003E +F8003E +FC007E +7E00FC +3F01F8 +1F83F0 +0FC7E0 +07EFC0 +03FF80 +01FF00 +00FE00 +007C00 +007C00 +00FE00 +01FF00 +03FF80 +07EFC0 +0FC7E0 +1F83F0 +3F01F8 +7E00FC +FC007E +F8003E +F8003E +F8003E +F8003E +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7E007E +3F00FC +1F81F8 +0FC3F0 +07FFE0 +03FFC0 +01FF80 +00FF00 +007E00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +00001F +00003F +00007F +0000FE +0001FC +0003F8 +0007F0 +000FE0 +001FC0 +003F80 +007F00 +00FE00 +01FC00 +03F800 +07F000 +0FE000 +1FC000 +3F8000 +7F0000 +FE0000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 2 +BITMAP +FFFC +FFFC +FFFC +FFFC +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F80000 +FC0000 +FE0000 +FF0000 +7F8000 +3F8000 +1FC000 +1FE000 +0FE000 +07F000 +03F800 +03FC00 +01FE00 +00FE00 +007F00 +003F80 +003FC0 +001FC0 +000FE0 +0007F0 +0007F8 +0003F8 +0001FC +0001FE +0000FF +00007F +00003F +00001F +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 2 +BITMAP +FFFC +FFFC +FFFC +FFFC +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +007C +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 12 0 26 +BITMAP +003C00 +00FF00 +01FF80 +03FFC0 +07E7E0 +0FC3F0 +1F81F8 +3F00FC +7E007E +FC003F +F8001F +F0000F +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 4 0 -2 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 12 5 26 +BITMAP +F800 +FC00 +FE00 +FF00 +7FC0 +3FE0 +1FF0 +0FF8 +03FC +01FC +00FC +007C +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +07FFF0 +07FFF8 +07FFFC +07FFFE +00003F +00001F +00001F +00001F +0FFFFF +1FFFFF +3FFFFF +7FFFFF +FC001F +F8001F +F8001F +FC001F +7FFFFF +3FFFFF +1FFFFF +0FFFFF +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8003F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +0FFFE0 +1FFFE0 +3FFFE0 +7FFFE0 +FC0000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +00001F +00001F +00001F +00001F +00001F +00001F +00001F +00001F +0FFFFF +1FFFFF +3FFFFF +7FFFFF +FC001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC001F +7FFFFF +3FFFFF +1FFFFF +0FFFFF +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8003F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +F80000 +F80000 +F80000 +FC0000 +7FFFE0 +3FFFE0 +1FFFE0 +0FFFE0 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +007FF0 +00FFF8 +01FFFC +03FFFE +07E03F +07C01F +07C01F +07C00F +07C000 +07C000 +07C000 +07C000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +07C000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 -2 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC001F +7FFFFF +3FFFFF +1FFFFF +0FFFFF +00001F +00001F +00001F +00003F +07FFFE +07FFFC +07FFF8 +07FFF0 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 28 5 6 +BITMAP +0780 +0780 +0780 +0780 +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 19 36 5 -2 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +000000 +000000 +000000 +000000 +007FE0 +007FE0 +007FE0 +007FE0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +0003E0 +F803E0 +F803E0 +F803E0 +FC07E0 +7FFFC0 +3FFF80 +1FFF00 +0FFE00 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 23 28 0 6 +BITMAP +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F8003E +F8007E +F800FC +F801F8 +F803F0 +F807E0 +F80FC0 +F81F80 +FFFF00 +FFFE00 +FFFE00 +FFFF00 +F81F80 +F80FC0 +F807E0 +F803F0 +F801F8 +F800FC +F8007E +F8003E +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 28 5 6 +BITMAP +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +FFC3F0 +FFE7F8 +FFFFFC +FFFFFE +F87E3F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F87FF0 +F8FFF8 +F9FFFC +FBFFFE +FFE03F +FFC01F +FF801F +FF001F +FE001F +FC001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +0FFFF0 +1FFFF8 +3FFFFC +7FFFFE +FC003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7FFFFE +3FFFFC +1FFFF8 +0FFFF0 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 -2 +BITMAP +FFFFF0 +FFFFF8 +FFFFFC +FFFFFE +F8003F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8003F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 -2 +BITMAP +0FFFFF +1FFFFF +3FFFFF +7FFFFF +FC001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC001F +7FFFFF +3FFFFF +1FFFFF +0FFFFF +00001F +00001F +00001F +00001F +00001F +00001F +00001F +00001F +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F87FF0 +F8FFF8 +F9FFFC +FBFFFE +FFE03F +FFC01F +FF801F +FF000F +FE0000 +FC0000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +0FFFFF +1FFFFF +3FFFFF +7FFFFF +FC0000 +F80000 +F80000 +FC0000 +7FFFF0 +3FFFF8 +1FFFFC +0FFFFE +00003F +00001F +00001F +00003F +FFFFFE +FFFFFC +FFFFF8 +FFFFF0 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003E00 +003FFF +001FFF +000FFF +0007FF +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8003F +F8007F +F800FF +F801FF +F803FF +FC07FF +7FFFDF +3FFF9F +1FFF1F +0FFE1F +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FC003F +7E007E +3F00FC +1F81F8 +0FC3F0 +07E7E0 +03FFC0 +01FF80 +00FF00 +007E00 +003C00 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +FC7E3F +7FFFFE +3FFFFC +1FFFF8 +0FE7F0 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F0000F +F8001F +FC003F +7E007E +3F00FC +1F81F8 +0FC3F0 +07E7E0 +03FFC0 +01FF80 +01FF80 +03FFC0 +07FFE0 +0FE7F0 +1FC3F8 +3F81FC +7F00FE +FE007F +FC003F +F8001F +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 -2 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8003F +FC007E +FE00FC +7F01F8 +3F83F0 +1FC7E0 +0FFFC0 +07FF80 +03FF00 +01FE00 +00FC00 +01F800 +03F000 +07E000 +0FC000 +1F8000 +FF0000 +FE0000 +FC0000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +0003F8 +0007F0 +000FE0 +001FC0 +003F80 +007F00 +00FE00 +01FC00 +03F800 +07F000 +0FE000 +1FC000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 2 +BITMAP +007C +00FC +01FC +03FC +07C0 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0F80 +1F80 +3F00 +FC00 +F800 +F800 +FC00 +3F00 +1F80 +0F80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +07C0 +03FC +01FC +00FC +007C +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 4 36 10 2 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 2 +BITMAP +F800 +FC00 +FE00 +FF00 +0F80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +07C0 +07E0 +03F0 +00FC +007C +007C +00FC +03F0 +07E0 +07C0 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0F80 +FF00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 12 0 14 +BITMAP +0FE01F +1FF01F +3FF81F +7FFC1F +FC7C1F +F83C1F +F83C1F +F83E3F +F83FFE +F81FFC +F80FF8 +F807F0 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 1656 0 +DWIDTH 23 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 4 28 10 6 +BITMAP +F0 +F0 +F0 +F0 +00 +00 +00 +00 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 2 +BITMAP +003C00 +003C00 +003C00 +003C00 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F83C1F +F83C1F +F83C1F +F83C1F +F83C00 +F83C00 +F83C00 +F83C00 +F83C1F +F83C1F +F83C1F +F83C1F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +003FE0 +003FE0 +003FE0 +003FE0 +07C01F +07C01F +07C01F +07C01F +07C000 +07C000 +07C000 +07C000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +07C000 +07C000 +07C000 +07C000 +07C01F +07C01F +07C01F +07C01F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F83C1F +F83C1F +F83C1F +F83C1F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F8001F +F8001F +F8001F +F8001F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F83C1F +F83C1F +F83C1F +F83C1F +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +F8001F +F8001F +F8001F +F8001F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +003C00 +003C00 +003C00 +003C00 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 4 28 10 6 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +00 +00 +00 +00 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 19 32 5 6 +BITMAP +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F80000 +F80000 +F80000 +F80000 +07FC00 +07FC00 +07FC00 +07FC00 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +07FC00 +07FC00 +07FC00 +07FC00 +0003E0 +0003E0 +0003E0 +0003E0 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 4 5 34 +BITMAP +F87C +F87C +F87C +F87C +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 28 28 0 6 +BITMAP +07FFFF00 +07FFFF00 +07FFFF00 +07FFFF00 +F80000F0 +F80000F0 +F80000F0 +F80000F0 +F83FE0F0 +F83FE0F0 +F83FE0F0 +F83FE0F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83FE0F0 +F83FE0F0 +F83FE0F0 +F83FE0F0 +F80000F0 +F80000F0 +F80000F0 +F80000F0 +07FFFF00 +07FFFF00 +07FFFF00 +07FFFF00 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 20 5 22 +BITMAP +07FC +07FC +07FC +07FC +F87C +F87C +F87C +F87C +07FC +07FC +07FC +07FC +0000 +0000 +0000 +0000 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +003C1F +003C1F +003C1F +003C1F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F83C00 +F83C00 +F83C00 +F83C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C1F +003C1F +003C1F +003C1F +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 12 0 10 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +00001F +00001F +00001F +00001F +00001F +00001F +00001F +00001F +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 4 5 18 +BITMAP +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 28 28 0 6 +BITMAP +07FFFF00 +07FFFF00 +07FFFF00 +07FFFF00 +F80000F0 +F80000F0 +F80000F0 +F80000F0 +F83FE0F0 +F83FE0F0 +F83FE0F0 +F83FE0F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83C00F0 +F83C00F0 +F80000F0 +F80000F0 +F80000F0 +F80000F0 +07FFFF00 +07FFFF00 +07FFFF00 +07FFFF00 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 4 0 34 +BITMAP +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 19 16 5 26 +BITMAP +07FC00 +07FC00 +07FC00 +07FC00 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +07FC00 +07FC00 +07FC00 +07FC00 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 20 5 22 +BITMAP +0780 +0780 +0780 +0780 +F87C +F87C +F87C +F87C +007C +007C +007C +007C +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 20 5 22 +BITMAP +FF80 +FF80 +FF80 +FF80 +007C +007C +007C +007C +0780 +0780 +0780 +0780 +007C +007C +007C +007C +FF80 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 12 5 26 +BITMAP +007C +007C +007C +007C +0780 +0780 +0780 +0780 +F800 +F800 +F800 +F800 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 -2 +BITMAP +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F803FF +F803FF +F803FF +F803FF +FFFC1F +FFFC1F +FFFC1F +FFFC1F +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07FFFF +07FFFF +07FFFF +07FFFF +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +07FC1F +07FC1F +07FC1F +07FC1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +003C1F +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 9 8 10 18 +BITMAP +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 8 5 -2 +BITMAP +007C +007C +007C +007C +FF80 +FF80 +FF80 +FF80 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 20 5 22 +BITMAP +0780 +0780 +0780 +0780 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 20 5 26 +BITMAP +0780 +0780 +0780 +0780 +F87C +F87C +F87C +F87C +0780 +0780 +0780 +0780 +0000 +0000 +0000 +0000 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +F83C00 +F83C00 +F83C00 +F83C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C1F +003C1F +003C1F +003C1F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F83C00 +F83C00 +F83C00 +F83C00 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +FFC000 +FFC000 +FFC000 +FFC000 +07C01F +07C01F +07C01F +07C01F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07FC00 +07FC00 +07FC00 +07FC00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F83FE0 +F83FE0 +F83FE0 +F83FE0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07FFFF +07FFFF +07FFFF +07FFFF +0003E0 +0003E0 +0003E0 +0003E0 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +FFC000 +FFC000 +FFC000 +FFC000 +07C01F +07C01F +07C01F +07C01F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07FC00 +07FC00 +07FC00 +07FC00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F83C1F +F83C1F +F83C1F +F83C1F +00001F +00001F +00001F +00001F +0003E0 +0003E0 +0003E0 +0003E0 +003FFF +003FFF +003FFF +003FFF +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +FFC000 +FFC000 +FFC000 +FFC000 +003C00 +003C00 +003C00 +003C00 +07C01F +07C01F +07C01F +07C01F +003FE0 +003FE0 +003FE0 +003FE0 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F83FE0 +F83FE0 +F83FE0 +F83FE0 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +07FFFF +07FFFF +07FFFF +07FFFF +0003E0 +0003E0 +0003E0 +0003E0 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +07C000 +07C000 +07C000 +07C000 +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07FC1F +07FC1F +07FC1F +07FC1F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07FFFF +07FFFF +07FFFF +07FFFF +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83C00 +F83FFF +F83FFF +F83FFF +F83FFF +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 -2 +BITMAP +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +0003E0 +0003E0 +0003E0 +0003E0 +07FC00 +07FC00 +07FC00 +07FC00 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 40 5 6 +BITMAP +F800 +F800 +F800 +F800 +0780 +0780 +0780 +0780 +0000 +0000 +0000 +0000 +FFFC +FFFC +FFFC +FFFC +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 40 5 6 +BITMAP +007C +007C +007C +007C +0780 +0780 +0780 +0780 +0000 +0000 +0000 +0000 +FFFC +FFFC +FFFC +FFFC +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 40 5 6 +BITMAP +0780 +0780 +0780 +0780 +F87C +F87C +F87C +F87C +0000 +0000 +0000 +0000 +FFFC +FFFC +FFFC +FFFC +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 36 5 6 +BITMAP +F87C +F87C +F87C +F87C +0000 +0000 +0000 +0000 +FFFC +FFFC +FFFC +FFFC +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07FFE0 +07FFE0 +07FFE0 +07FFE0 +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +FFFC1F +FFFC1F +FFFC1F +FFFC1F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07C01F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07FC1F +07FC1F +07FC1F +07FC1F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFC01F +FFC01F +FFC01F +FFC01F +F83C1F +F83C1F +F83C1F +F83C1F +F803FF +F803FF +F803FF +F803FF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07FC1F +07FC1F +07FC1F +07FC1F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 10 +BITMAP +F8001F +F8001F +F8001F +F8001F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 2 +BITMAP +00001F +00001F +00001F +00001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F803FF +F803FF +F803FF +F803FF +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +F83C1F +FFC01F +FFC01F +FFC01F +FFC01F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 19 28 5 6 +BITMAP +F80000 +F80000 +F80000 +F80000 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +F803E0 +FFFC00 +FFFC00 +FFFC00 +FFFC00 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F803E0 +F803E0 +F803E0 +F803E0 +F83C00 +F83C00 +F83C00 +F83C00 +F803E0 +F803E0 +F803E0 +F803E0 +F8001F +F8001F +F8001F +F8001F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07FC1F +07FC1F +07FC1F +07FC1F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +07FFE0 +07FFE0 +07FFE0 +07FFE0 +003C1F +003C1F +003C1F +003C1F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F83C00 +F83C00 +F83C00 +F83C00 +07FFFF +07FFFF +07FFFF +07FFFF +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 -2 +BITMAP +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F80000 +F80000 +F80000 +F80000 +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +0003E0 +0003E0 +0003E0 +0003E0 +07FC00 +07FC00 +07FC00 +07FC00 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 32 5 6 +BITMAP +F800 +F800 +F800 +F800 +0780 +0780 +0780 +0780 +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 32 5 6 +BITMAP +007C +007C +007C +007C +0780 +0780 +0780 +0780 +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 32 5 6 +BITMAP +0780 +0780 +0780 +0780 +F87C +F87C +F87C +F87C +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 14 28 5 6 +BITMAP +F87C +F87C +F87C +F87C +0000 +0000 +0000 +0000 +FF80 +FF80 +FF80 +FF80 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +0780 +FFFC +FFFC +FFFC +FFFC +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +00001F +00001F +00001F +00001F +07FFFF +07FFFF +07FFFF +07FFFF +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07FC1F +07FC1F +07FC1F +07FC1F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +000000 +000000 +000000 +000000 +F83FE0 +F83FE0 +F83FE0 +F83FE0 +FFC01F +FFC01F +FFC01F +FFC01F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07FC1F +07FC1F +07FC1F +07FC1F +F83FE0 +F83FE0 +F83FE0 +F83FE0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +07FFE0 +07FFE0 +07FFE0 +07FFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 10 +BITMAP +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +000000 +000000 +000000 +000000 +003C00 +003C00 +003C00 +003C00 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 20 0 6 +BITMAP +07FFFF +07FFFF +07FFFF +07FFFF +F803FF +F803FF +F803FF +F803FF +F83C1F +F83C1F +F83C1F +F83C1F +FFC01F +FFC01F +FFC01F +FFC01F +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +07C000 +07C000 +07C000 +07C000 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 32 0 6 +BITMAP +003C00 +003C00 +003C00 +003C00 +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 28 0 6 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07FFE0 +07FFE0 +07FFE0 +07FFE0 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 40 0 -2 +BITMAP +0003E0 +0003E0 +0003E0 +0003E0 +003C00 +003C00 +003C00 +003C00 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +07C000 +07C000 +07C000 +07C000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 -2 +BITMAP +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +FFFFE0 +FFFFE0 +FFFFE0 +FFFFE0 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 2016 0 +DWIDTH 28 0 +BBX 24 36 0 -2 +BITMAP +07C3E0 +07C3E0 +07C3E0 +07C3E0 +000000 +000000 +000000 +000000 +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +F8001F +07C3E0 +07C3E0 +07C3E0 +07C3E0 +003C00 +003C00 +003C00 +003C00 +07C000 +07C000 +07C000 +07C000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-32x64.bdf b/buildroot/share/fonts/marlin-32x64.bdf new file mode 100644 index 000000000000..987f9c974f2e --- /dev/null +++ b/buildroot/share/fonts/marlin-32x64.bdf @@ -0,0 +1,9870 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 70 100 100 +FONTBOUNDINGBOX 34 69 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 68 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FFFFFFE0 +FFE01FE0 +FFE00FE0 +FFE007E0 +FFE003E0 +FFE003E0 +FFE003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FE00FFE0 +FF00FFE0 +7FFFFFE0 +3FFFFFE0 +1FFFFFE0 +0FFFFFE0 +07FFFFE0 +03FFFFE0 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 30 37 0 11 +BITMAP +00100000 +00180000 +001C0000 +001E0000 +001F0000 +001F8000 +001FC000 +001FE000 +001FF000 +001FF800 +001FFC00 +001FFE00 +001FFF00 +001FFF80 +001FFFC0 +FFFFFFE0 +FFFFFFF0 +FFFFFFF8 +FFFFFFFC +FFFFFFF8 +FFFFFFF0 +001FFFE0 +001FFFC0 +001FFF80 +001FFF00 +001FFE00 +001FFC00 +001FF800 +001FF000 +001FE000 +001FC000 +001F8000 +001F0000 +001E0000 +001C0000 +00180000 +00100000 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 28 48 0 9 +BITMAP +00060000 +000F0000 +001F8000 +003FC000 +007FE000 +00FFF000 +01FFF800 +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FFFFFFF0 +FFFFFFF0 +FFFFFFF0 +FFFFFFF0 +FFFFFFF0 +FFFFFFF0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 3 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FE1F07E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 2448 0 +DWIDTH 34 0 +BBX 32 29 0 15 +BITMAP +FC07E000 +FE07F000 +FF07F800 +FF87FC00 +FFC7FE00 +7FE3FF00 +3FF1FF80 +1FF8FFC0 +0FFC7FE0 +07FE3FF0 +03FF1FF8 +01FF8FFC +00FFC7FE +007FE3FF +007FE3FF +00FFC7FE +01FF8FFC +03FF1FF8 +07FE3FF0 +0FFC7FE0 +1FF8FFC0 +3FF1FF80 +7FE3FF00 +FFC7FE00 +FF87FC00 +FF07F800 +FE07F000 +FC07E000 +F807C000 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 3 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 58 0 -2 +BITMAP +001F0000 +003F8000 +007FC000 +00FFE000 +01FFF000 +03FFF800 +03F1FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +07E0FC00 +0FE0FE00 +1FE0FF00 +3FE0FF80 +7FE0FFC0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +7FFFFFC0 +3FFFFF80 +1FFFFF00 +0FFFFE00 +07FFFC00 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 17 17 0 27 +BITMAP +03E000 +07F000 +0FF800 +1FFC00 +3FFE00 +7FFF00 +FE3F80 +FC1F80 +FC1F80 +FC1F80 +FE3F80 +7FFF00 +3FFE00 +1FFC00 +0FF800 +07F000 +03E000 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 5 41 11 9 +BITMAP +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +00 +00 +00 +00 +00 +00 +F8 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 18 6 38 +BITMAP +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +F83F +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 35 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 3 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03FFFE00 +07FFFF00 +0FFFFF80 +1FFFFFC0 +3FFFFFE0 +7FFFFFE0 +FE1F07E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FE1F0000 +FFFFFC00 +7FFFFE00 +3FFFFF00 +1FFFFF80 +0FFFFFC0 +07FFFFE0 +001F07E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FE1F07E0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE007E0 +FFE00FE0 +FFE01FE0 +FFE03FC0 +00007F80 +0000FF00 +0001FE00 +0003FC00 +0007F800 +000FF000 +001FE000 +003FC000 +007F8000 +00FF0000 +01FE0000 +03FC0000 +07F80000 +0FF00000 +1FE00000 +3FC00000 +7F800000 +FF00FFE0 +FE00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03E00000 +07F00000 +0FF80000 +1FFC0000 +3FFE0000 +7FFF0000 +FE3F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FE3F0000 +7FFE0000 +3FFC0000 +1FF80000 +1FF00000 +3FF80000 +7FFC0000 +FEFE01E0 +FC7F03E0 +FC3F87E0 +FC1FC7E0 +FC0FFFC0 +FC07FF80 +FC03FF00 +FC01FE00 +FC00FC00 +FC00FC00 +FC00FE00 +FE01FF00 +7FFFFF80 +3FFFFFC0 +1FFFFFE0 +0FFFCFE0 +07FF87E0 +03FF03E0 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 5 18 11 38 +BITMAP +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 3 +BITMAP +003F +007F +00FF +01FE +03FC +07F8 +07F0 +0FE0 +1FC0 +1FC0 +1F80 +1F80 +1F00 +3F00 +3F00 +3F00 +7E00 +7E00 +FE00 +FE00 +FC00 +FC00 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +FC00 +FC00 +FC00 +7E00 +7E00 +3E00 +3F00 +3F00 +1F00 +1F00 +1F80 +1F80 +0FC0 +0FE0 +07F0 +03F8 +01FC +00FE +007F +003F +001F +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 3 +BITMAP +F800 +FC00 +FE00 +FF00 +7F80 +3FC0 +1FC0 +0FE0 +07E0 +07F0 +03F0 +03F8 +01F8 +01F8 +00FC +00FC +007E +007E +007F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +007F +007E +007E +00FC +00FC +01F8 +01F8 +01F8 +03F0 +07F0 +07E0 +07E0 +0FC0 +1FC0 +3F80 +7F00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +F01F01E0 +F81F03E0 +FC1F07E0 +FE1F0FE0 +FF1F1FE0 +7F9F3FC0 +3FDF7F80 +1FFFFF00 +0FFFFE00 +07FFFC00 +03FFF800 +01FFF000 +00FFE000 +007FC000 +007FC000 +007FC000 +00FFE000 +01FFF000 +03FFF800 +07FFFC00 +0FFFFE00 +1FFFFF00 +3FDF7F80 +7F9F3FC0 +FF1F1FE0 +FE1F0FE0 +FC1F07E0 +F81F03E0 +F01F01E0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 15 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 10 18 6 3 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +0FC0 +FFC0 +FF80 +FF00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 6 0 27 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 10 12 6 9 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +000003E0 +000007E0 +000007E0 +00000FE0 +00000FE0 +00001FE0 +00003FC0 +00003F80 +00007F80 +0000FF00 +0000FF00 +0001FE00 +0001FC00 +0003FC00 +0007F800 +0007F800 +000FF000 +000FF000 +001FE000 +003FC000 +003FC000 +007F8000 +00FF8000 +00FF0000 +01FE0000 +01FE0000 +03FC0000 +07FC0000 +07F80000 +0FF00000 +1FF00000 +1FE00000 +3FE00000 +3FC00000 +7FC00000 +FF800000 +FF000000 +FF000000 +FE000000 +FE000000 +FC000000 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FE0007E0 +FC0007E0 +FC000FE0 +FC001FE0 +FC003FE0 +FC007FE0 +FC00FFE0 +FC01FFE0 +FC03FFE0 +FC07FFE0 +FC0FFFE0 +FC1FFFE0 +FC3FFBE0 +FC7FF3E0 +FCFFE3E0 +FDFFC3E0 +FFFF83E0 +FFFF03E0 +FFFE03E0 +FFFC03E0 +FFF803E0 +FFF003E0 +FFE003E0 +FFC003E0 +FF8003E0 +FF0003E0 +FE0003E0 +FC0003E0 +FE0007E0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 41 6 9 +BITMAP +07C0 +07C0 +0FC0 +1FC0 +3FC0 +7FC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +000003E0 +000003E0 +000003E0 +000007E0 +00000FE0 +00001FE0 +00003FC0 +00007F80 +0000FF00 +0001FE00 +0003FC00 +0007F800 +000FF000 +001FE000 +003FC000 +007F8000 +00FF0000 +01FE0000 +03FC0000 +07F80000 +0FF00000 +1FE00000 +3FC00000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000007E0 +00000FE0 +00001FC0 +00003F80 +00007F00 +0000FE00 +0001FC00 +000FFC00 +001FFE00 +001FFF00 +001FFF80 +001FFFC0 +000007E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +0000FC00 +0000FC00 +0001FC00 +0003FC00 +0007FC00 +000FFC00 +001FFC00 +003FFC00 +007FFC00 +00FFFC00 +01FEFC00 +03FCFC00 +07F8FC00 +0FF0FC00 +1FE0FC00 +3FC0FC00 +7F80FC00 +FF00FC00 +FE00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +00000FE0 +000007E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001FFC00 +003FFC00 +007FFC00 +00FFFC00 +01FFFC00 +03FFFC00 +07F80000 +0FF00000 +1FE00000 +3FC00000 +7F800000 +FF000000 +FE000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FFFFFFE0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000007E0 +00000FC0 +00001F80 +00003F00 +00007E00 +0000FC00 +0001F800 +0003F000 +0007E000 +000FC000 +001F8000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFC0 +3FFFFF80 +1FFFFF00 +1FFFFF00 +3FFFFF80 +7FFFFFC0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +FF0003E0 +7FFFFFE0 +3FFFFFE0 +1FFFFFE0 +0FFFFFE0 +07FFFFE0 +03FFFFE0 +000003E0 +000003E0 +000003E0 +000003E0 +000007E0 +00000FE0 +00001FE0 +00003FC0 +00007F80 +0000FF00 +0001FE00 +0003FC00 +03FFF800 +03FFF000 +03FFE000 +03FFC000 +03FF8000 +03FF0000 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 10 29 6 9 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 10 35 6 3 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +0FC0 +1FC0 +FFC0 +FF80 +FF00 +FE00 +FC00 +F800 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 18 28 4 16 +BITMAP +0007C0 +000FC0 +001FC0 +003F80 +007F00 +00FE00 +01FC00 +03F800 +07F000 +0FE000 +1FC000 +3F8000 +7F0000 +FE0000 +FE0000 +7F0000 +3F8000 +1FC000 +0FE000 +07F000 +03F800 +01FC00 +00FE00 +007F00 +003F80 +001FC0 +000FC0 +0007C0 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 17 0 21 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 18 29 6 15 +BITMAP +F80000 +FC0000 +FE0000 +FF0000 +7F8000 +3FC000 +1FE000 +0FF000 +07F800 +03FC00 +01FE00 +00FF00 +007F80 +003FC0 +003FC0 +007F80 +00FF00 +01FE00 +03FC00 +07F800 +0FF000 +1FE000 +3FC000 +7F8000 +FF0000 +FE0000 +FC0000 +F80000 +F00000 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +00001FC0 +00003F80 +00007F00 +0000FE00 +0001FC00 +0003F800 +0007F000 +000FE000 +001FC000 +001F8000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1F83E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F83E0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC0FFFC0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FE000000 +7FFFFC00 +3FFFFC00 +1FFFFC00 +0FFFFC00 +07FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FFFFFFE0 +03E00FE0 +03E007E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E007E0 +03E00FE0 +03FFFFE0 +03FFFFC0 +03FFFF80 +03FFFF00 +03FFFF80 +03FFFFC0 +03E00FE0 +03E007E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E007E0 +03E00FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FFFFFFE0 +03E00FE0 +03E007E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E007E0 +03E00FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 41 6 9 +BITMAP +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001FFFE0 +001FFFE0 +001FFFE0 +001FFFE0 +001FFFE0 +001FFFE0 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FE01FC00 +FF03FC00 +7FFFF800 +3FFFF000 +1FFFE000 +0FFFC000 +07FF8000 +03FF0000 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0001E0 +FC0003E0 +FC0007E0 +FC000FE0 +FC001FC0 +FC003F80 +FC007F00 +FC00FE00 +FC01FC00 +FC03F800 +FC07F000 +FC0FE000 +FC1FC000 +FC3F8000 +FC7F0000 +FCFE0000 +FDFC0000 +FFF80000 +FFF00000 +FFE00000 +FFE00000 +FFF00000 +FFF80000 +FDFC0000 +FCFE0000 +FC7F0000 +FC3F8000 +FC1FC000 +FC0FE000 +FC07F000 +FC03F800 +FC01FC00 +FC00FE00 +FC007F00 +FC003F80 +FC001FC0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0001E0 +FC0000E0 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +FF801FE0 +FFC03FE0 +FFE07FE0 +FFF0FFE0 +FFF9FFE0 +FFFFFFE0 +FDFFFBE0 +FCFFF3E0 +FC7FE3E0 +FC3FC3E0 +FC1F83E0 +FC0F03E0 +FC0603E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +FF0003E0 +FF8003E0 +FFC003E0 +FFE003E0 +FFF003E0 +FFF803E0 +FFFC03E0 +FFFE03E0 +FDFF03E0 +FCFF83E0 +FC7FC3E0 +FC3FE3E0 +FC1FF3E0 +FC0FFBE0 +FC07FFE0 +FC03FFE0 +FC01FFE0 +FC00FFE0 +FC007FE0 +FC003FE0 +FC001FE0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FFFFFFE0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC1E03E0 +FC1F03E0 +FC1F83E0 +FC1FC3E0 +FC1FE3E0 +FC1FF3E0 +FC0FFBE0 +FC07FDE0 +FC03FEE0 +FC01FF60 +FC00FF80 +FC007FC0 +7FFFBFE0 +3FFFDFE0 +1FFFEFE0 +0FFFF7E0 +07FFFBE0 +03FFF9E0 +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FFFFFFE0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +FFFE0000 +FDFF0000 +FCFF8000 +FC7FC000 +FC3FE000 +FC1FF000 +FC0FF800 +FC07FC00 +FC03FE00 +FC01FF00 +FC00FF80 +FC007FC0 +FC003FE0 +FC001FE0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0001E0 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC000000 +FC000000 +FC000000 +FE000000 +FF000000 +7FFFFC00 +3FFFFE00 +1FFFFF00 +0FFFFF80 +07FFFFC0 +03FFFFE0 +00000FE0 +000007E0 +000003E0 +000003E0 +000003E0 +000003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0007E0 +FE0007E0 +FE000FE0 +7E000FC0 +7F001FC0 +3F001F80 +3F803F80 +1F803F00 +1FC07F00 +0FC07E00 +07E0FE00 +07F1FC00 +03F1F800 +03FFF800 +01FFF000 +01FFF000 +00FFE000 +00FFE000 +007FC000 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FE3F87E0 +FF7FCFE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFBFF00 +07F1FE00 +03E0FC00 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FE000FE0 +FF001FE0 +FF803FE0 +7FC07FE0 +3FE0FFC0 +1FF1FF80 +0FFBFF00 +07FFFE00 +03FFFC00 +01FFF800 +00FFF000 +007FE000 +007FE000 +00FFF000 +01FFF800 +03FFFC00 +07FFFE00 +0FFFFF00 +1FFBFF80 +3FF1FFC0 +7FE0FFE0 +FFC07FE0 +FF803FE0 +FF001FE0 +FE000FE0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FE000FE0 +FF001FE0 +7F803FC0 +3FC07F80 +1FE0FF00 +0FF1FE00 +07FBFC00 +03FFF800 +01FFF000 +00FFE000 +007FC000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +003F8000 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +000003E0 +000003E0 +000007E0 +00000FE0 +00001FE0 +00003FE0 +00007FE0 +0000FFC0 +0001FF80 +0003FF00 +0007FE00 +000FFC00 +001FF800 +003FF000 +007FE000 +00FFC000 +01FF8000 +03FF0000 +07FE0000 +0FFC0000 +1FF80000 +3FF00000 +7FE00000 +FFC00000 +FF800000 +FF000000 +FE000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 3 +BITMAP +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +F800 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC000000 +FE000000 +FE000000 +FF000000 +FF000000 +FF800000 +7FC00000 +3FC00000 +3FE00000 +1FE00000 +0FF00000 +0FF00000 +07F80000 +07FC0000 +03FC0000 +01FE0000 +01FE0000 +00FF0000 +007F8000 +007F8000 +003FC000 +003FC000 +001FE000 +000FF000 +000FF000 +0007F800 +0003F800 +0003FC00 +0001FC00 +0001FE00 +0000FF00 +0000FF00 +00007F80 +00003F80 +00003FC0 +00001FE0 +00000FE0 +00000FE0 +000007E0 +000007E0 +000003E0 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 3 +BITMAP +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +003F +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 28 19 0 38 +BITMAP +00040000 +000E0000 +001F0000 +003F8000 +007FC000 +00FFE000 +01FFF000 +03FBF800 +07F1FC00 +0FE0FE00 +1FC07F00 +3F803F80 +7F001FC0 +FE000FE0 +FC0007F0 +F80003F0 +F00001F0 +E00000F0 +C0000070 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 5 0 -2 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 18 6 38 +BITMAP +F000 +F800 +FC00 +FE00 +FF00 +FF80 +FFC0 +7FE0 +3FF0 +1FF8 +0FFC +07FE +03FF +01FF +00FF +007F +003F +001F +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +03FFFC00 +03FFFE00 +03FFFF00 +03FFFF80 +03FFFFC0 +00000FE0 +000007E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +07FFFFE0 +0FFFFFE0 +1FFFFFE0 +3FFFFFE0 +7FFFFFE0 +FF0003E0 +FE0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +FF0003E0 +7FFFFFE0 +3FFFFFE0 +1FFFFFE0 +0FFFFFE0 +07FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +07FFFC00 +0FFFFC00 +1FFFFC00 +3FFFFC00 +7FFFFC00 +FF000000 +FE000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +07FFFFE0 +0FFFFFE0 +1FFFFFE0 +3FFFFFE0 +7FFFFFE0 +FF0003E0 +FE0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +FF0003E0 +7FFFFFE0 +3FFFFFE0 +1FFFFFE0 +0FFFFFE0 +07FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +07FFFC00 +0FFFFE00 +1FFFFF00 +3FFFFF80 +7FFFFFC0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FE000000 +FF000000 +7FFFFC00 +3FFFFC00 +1FFFFC00 +0FFFFC00 +07FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001FFC00 +003FFE00 +007FFF00 +00FFFF80 +01FFFFC0 +03FFFFE0 +03F80FE0 +03F007E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 40 0 -2 +BITMAP +07FFFE00 +0FFFFF00 +1FFFFF80 +3FFFFFC0 +7FFFFFE0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +FF0003E0 +7FFFFFE0 +3FFFFFE0 +1FFFFFE0 +0FFFFFE0 +07FFFFE0 +03FFFFE0 +000003E0 +000003E0 +000003E0 +000003E0 +000007E0 +00000FE0 +03FFFFC0 +03FFFF80 +03FFFF00 +03FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 41 6 9 +BITMAP +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 21 52 6 -2 +BITMAP +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +000000 +000000 +000000 +000000 +000000 +000000 +003FF8 +003FF8 +003FF8 +003FF8 +003FF8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +F800F8 +F800F8 +F800F8 +F800F8 +FC01F8 +FE03F8 +7FFFF0 +3FFFE0 +1FFFC0 +0FFF80 +07FF00 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC0003E0 +FC0007E0 +FC000FE0 +FC001FC0 +FC003F80 +FC007F00 +FC00FE00 +FC01FC00 +FC03F800 +FC07F000 +FC0FE000 +FFFFC000 +FFFF8000 +FFFF0000 +FFFF8000 +FFFFC000 +FFFFE000 +FC0FF000 +FC07F800 +FC03FC00 +FC01FE00 +FC00FF00 +FC007F80 +FC003FC0 +FC001FE0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0001E0 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 41 6 9 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FFE0FC00 +FFF1FE00 +FFFBFF00 +FFFFFF80 +FFFFFFC0 +FC7FCFE0 +FC3F87E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC1FFC00 +FC3FFE00 +FC7FFF00 +FCFFFF80 +FDFFFFC0 +FFFC0FE0 +FFF807E0 +FFF003E0 +FFE003E0 +FFC003E0 +FF8003E0 +FF0003E0 +FE0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +07FFFC00 +0FFFFE00 +1FFFFF00 +3FFFFF80 +7FFFFFC0 +FF000FE0 +FE0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFFFF00 +07FFFE00 +03FFFC00 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 40 0 -2 +BITMAP +FFFFFC00 +FFFFFE00 +FFFFFF00 +FFFFFF80 +FFFFFFC0 +FC000FE0 +FC0007E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 40 0 -2 +BITMAP +07FFFFE0 +0FFFFFE0 +1FFFFFE0 +3FFFFFE0 +7FFFFFE0 +FF0003E0 +FE0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0003E0 +FF0003E0 +7FFFFFE0 +3FFFFFE0 +1FFFFFE0 +0FFFFFE0 +07FFFFE0 +03FFFFE0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC1FFC00 +FC3FFE00 +FC7FFF00 +FCFFFF80 +FDFFFFC0 +FFFC0FE0 +FFF807E0 +FFF003E0 +FFE003E0 +FFC003E0 +FF8003E0 +FF000000 +FE000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +07FFFFE0 +0FFFFFE0 +1FFFFFE0 +3FFFFFE0 +7FFFFFE0 +FF000000 +FE000000 +FC000000 +FC000000 +FE000000 +FF000000 +7FFFFC00 +3FFFFE00 +1FFFFF00 +0FFFFF80 +07FFFFC0 +03FFFFE0 +00000FE0 +000007E0 +000003E0 +000003E0 +000007E0 +00000FE0 +FFFFFFE0 +FFFFFFC0 +FFFFFF80 +FFFFFF00 +FFFFFE00 +FFFFFC00 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F8000 +001FC000 +001FFFE0 +000FFFE0 +0007FFE0 +0003FFE0 +0001FFE0 +0000FFE0 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0007E0 +FC000FE0 +FC001FE0 +FC003FE0 +FC007FE0 +FC00FFE0 +FE01FFE0 +FF03FFE0 +7FFFFBE0 +3FFFF3E0 +1FFFE3E0 +0FFFC3E0 +07FF83E0 +03FF03E0 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FE000FE0 +7F001FC0 +3F803F80 +1FC07F00 +0FE0FE00 +07F1FC00 +03FFF800 +01FFF000 +00FFE000 +007FC000 +003F8000 +001F0000 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC0007E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FC1F07E0 +FE3F8FE0 +FF7FDFE0 +7FFFFFE0 +3FFFFFC0 +1FFFFF80 +0FFBFF00 +07F1FE00 +03E0FC00 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +F00003E0 +F80007E0 +FC000FE0 +FE001FE0 +FF003FC0 +7F807F80 +3FC0FF00 +1FE1FE00 +0FF3FC00 +07FFF800 +03FFF000 +01FFE000 +00FFC000 +007F8000 +007F8000 +00FFC000 +01FFE000 +03FFF000 +07FFF800 +0FF3FC00 +1FE1FE00 +3FC0FF00 +7F807F80 +FF003FC0 +FE001FE0 +FC000FE0 +F80007E0 +F00003E0 +E00001E0 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 40 0 -2 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FE0007E0 +FF000FE0 +7F801FE0 +3FC03FC0 +1FE07F80 +0FF0FF00 +07F9FE00 +03FFFC00 +01FFF800 +00FFF000 +007FE000 +003FC000 +003F8000 +007F0000 +00FE0000 +01FC0000 +03F80000 +07F00000 +0FE00000 +1FC00000 +3F800000 +7F000000 +FE000000 +FC000000 +F8000000 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +00007FC0 +0000FF80 +0001FF00 +0003FE00 +0007FC00 +000FF800 +001FF000 +003FE000 +007FC000 +00FF8000 +01FF0000 +03FE0000 +07FC0000 +0FF80000 +1FF00000 +3FE00000 +7FC00000 +FF800000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 3 +BITMAP +001F +003F +007F +00FF +01FF +03FE +07F0 +07E0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0FC0 +1FC0 +3FC0 +7FC0 +FE00 +FC00 +F800 +F800 +FC00 +FE00 +7FC0 +3FC0 +1FC0 +0FC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07E0 +07F0 +03FE +01FF +00FF +007F +003F +001F +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 5 53 11 3 +BITMAP +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 3 +BITMAP +F000 +F800 +FC00 +FE00 +FF00 +7F80 +1FC0 +0FC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07E0 +07F0 +07F8 +07FC +07FE +00FF +007F +003F +003F +007F +00FF +07FE +07FC +07F8 +07F0 +07E0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0FC0 +1FC0 +7F80 +FF00 +FE00 +FC00 +F800 +F000 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 17 0 21 +BITMAP +07E003E0 +0FF003E0 +1FF803E0 +3FFC03E0 +7FFE03E0 +FFFF03E0 +FE7F83E0 +FC3FC3E0 +FC1FE3E0 +FC0FF7E0 +FC07FFE0 +FC03FFE0 +FC01FFC0 +FC00FF80 +FC007F00 +FC003E00 +FC001C00 +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 1944 0 +DWIDTH 27 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 5 41 11 9 +BITMAP +F8 +F8 +F8 +F8 +F8 +F8 +00 +00 +00 +00 +00 +00 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 3 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001FFC00 +001FFC00 +001FFC00 +001FFC00 +001FFC00 +001FFC00 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 5 41 11 9 +BITMAP +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +00 +00 +00 +00 +00 +00 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 21 47 6 9 +BITMAP +07FFF8 +07FFF8 +07FFF8 +07FFF8 +07FFF8 +07FFF8 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +0000F8 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 6 6 50 +BITMAP +F83F +F83F +F83F +F83F +F83F +F83F +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 32 41 0 9 +BITMAP +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 29 6 33 +BITMAP +07FF +07FF +07FF +07FF +07FF +07FF +F83F +F83F +F83F +F83F +F83F +F83F +07FF +07FF +07FF +07FF +07FF +07FF +0000 +0000 +0000 +0000 +0000 +0000 +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 18 0 15 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 6 6 27 +BITMAP +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 32 41 0 9 +BITMAP +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1FFC1F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC1F001F +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +FC00001F +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 6 0 50 +BITMAP +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 21 24 6 38 +BITMAP +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +07FF00 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 29 6 33 +BITMAP +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +F83F +F83F +F83F +F83F +F83F +F83F +003F +003F +003F +003F +003F +003F +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 29 6 33 +BITMAP +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +003F +003F +003F +003F +003F +003F +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +003F +003F +003F +003F +003F +003F +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 18 6 38 +BITMAP +003F +003F +003F +003F +003F +003F +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +F800 +F800 +F800 +F800 +F800 +F800 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 40 0 -2 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 11 11 11 27 +BITMAP +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +FFE0 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 11 6 -2 +BITMAP +003F +003F +003F +003F +003F +003F +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 29 6 33 +BITMAP +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 30 6 38 +BITMAP +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +F83F +F83F +F83F +F83F +F83F +F83F +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0000 +0000 +0000 +0000 +0000 +0000 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001FFFE0 +001FFFE0 +001FFFE0 +001FFFE0 +001FFFE0 +001FFFE0 +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +FFE00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +001FFC00 +001FFC00 +001FFC00 +001FFC00 +001FFC00 +001FFC00 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +FFFF0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +FC1FFFE0 +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 52 0 -2 +BITMAP +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 59 6 9 +BITMAP +F800 +F800 +F800 +F800 +F800 +F800 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0000 +0000 +0000 +0000 +0000 +0000 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 59 6 9 +BITMAP +003F +003F +003F +003F +003F +003F +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0000 +0000 +0000 +0000 +0000 +0000 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 59 6 9 +BITMAP +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +F83F +F83F +F83F +F83F +F83F +F83F +0000 +0000 +0000 +0000 +0000 +0000 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 53 6 9 +BITMAP +F83F +F83F +F83F +F83F +F83F +F83F +0000 +0000 +0000 +0000 +0000 +0000 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +FFFF03E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03E003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 15 +BITMAP +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 3 +BITMAP +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 59 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 21 41 6 9 +BITMAP +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +F800F8 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +FFFF00 +F80000 +F80000 +F80000 +F80000 +F80000 +F80000 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC00FC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +001F03E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +FC1F0000 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 40 0 -2 +BITMAP +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +03FF0000 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 47 6 9 +BITMAP +F800 +F800 +F800 +F800 +F800 +F800 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 47 6 9 +BITMAP +003F +003F +003F +003F +003F +003F +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 47 6 9 +BITMAP +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +F83F +F83F +F83F +F83F +F83F +F83F +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 16 41 6 9 +BITMAP +F83F +F83F +F83F +F83F +F83F +F83F +0000 +0000 +0000 +0000 +0000 +0000 +FFC0 +FFC0 +FFC0 +FFC0 +FFC0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +07C0 +FFFF +FFFF +FFFF +FFFF +FFFF +FFFF +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 53 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +000003E0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +03FF03E0 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +FC1FFC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 15 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +FFFFFFE0 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 29 0 9 +BITMAP +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +03FFFFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC00FFE0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FC1F03E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFE003E0 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 47 0 9 +BITMAP +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 41 0 9 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +03FFFC00 +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 58 0 -2 +BITMAP +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +0000FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 52 0 -2 +BITMAP +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FFFFFC00 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 2304 0 +DWIDTH 32 0 +BBX 27 52 0 -2 +BITMAP +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +FC0003E0 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +03E0FC00 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +001F0000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +03E00000 +FC000000 +FC000000 +FC000000 +FC000000 +FC000000 +ENDCHAR +ENDFONT diff --git a/buildroot/share/fonts/marlin-8x16.bdf b/buildroot/share/fonts/marlin-8x16.bdf new file mode 100644 index 000000000000..92e73951b5ba --- /dev/null +++ b/buildroot/share/fonts/marlin-8x16.bdf @@ -0,0 +1,3701 @@ +STARTFONT 2.1 +COMMENT Exported by Fony v1.4.6 +FONT Fixed +SIZE 16 100 100 +FONTBOUNDINGBOX 10 15 0 -2 +STARTPROPERTIES 6 +COPYRIGHT "Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1" +RESOLUTION_X 100 +RESOLUTION_Y 100 +FONT_ASCENT 14 +FONT_DESCENT 2 +DEFAULT_CHAR 0 +ENDPROPERTIES +CHARS 256 +STARTCHAR 000 +ENCODING 0 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 001 +ENCODING 1 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 6 10 1 1 +BITMAP +40 +78 +E4 +C4 +84 +84 +84 +9C +78 +08 +ENDCHAR +STARTCHAR 002 +ENCODING 2 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +C0 +FE +FE +C2 +C2 +C2 +C2 +C2 +C2 +FE +FE +ENDCHAR +STARTCHAR 003 +ENCODING 3 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 8 0 1 +BITMAP +10 +18 +1C +FE +FE +1C +18 +10 +ENDCHAR +STARTCHAR 004 +ENCODING 4 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +10 +38 +7C +FE +10 +10 +10 +10 +10 +F0 +F0 +ENDCHAR +STARTCHAR 005 +ENCODING 5 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 6 11 1 -1 +BITMAP +20 +78 +A4 +A4 +A4 +BC +84 +84 +84 +78 +20 +ENDCHAR +STARTCHAR 006 +ENCODING 6 +SWIDTH 720 0 +DWIDTH 10 0 +BBX 9 6 0 2 +BITMAP +EE00 +7700 +1980 +1980 +7700 +EE00 +ENDCHAR +STARTCHAR 007 +ENCODING 7 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 -1 +BITMAP +FE +92 +92 +82 +82 +82 +82 +82 +82 +92 +92 +FE +ENDCHAR +STARTCHAR 008 +ENCODING 8 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 13 1 -2 +BITMAP +20 +50 +50 +50 +50 +50 +50 +88 +A8 +A8 +A8 +88 +70 +ENDCHAR +STARTCHAR 009 +ENCODING 9 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 3 3 1 5 +BITMAP +40 +A0 +40 +ENDCHAR +STARTCHAR 010 +ENCODING 10 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 011 +ENCODING 11 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 012 +ENCODING 12 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 013 +ENCODING 13 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 014 +ENCODING 14 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 015 +ENCODING 15 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 016 +ENCODING 16 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 017 +ENCODING 17 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 018 +ENCODING 18 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 019 +ENCODING 19 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 020 +ENCODING 20 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 021 +ENCODING 21 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 022 +ENCODING 22 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 023 +ENCODING 23 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 024 +ENCODING 24 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 025 +ENCODING 25 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 026 +ENCODING 26 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 027 +ENCODING 27 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 028 +ENCODING 28 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 029 +ENCODING 29 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 030 +ENCODING 30 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 031 +ENCODING 31 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 032 +ENCODING 32 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 033 +ENCODING 33 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 1 10 3 0 +BITMAP +80 +80 +80 +80 +80 +80 +80 +00 +80 +80 +ENDCHAR +STARTCHAR 034 +ENCODING 34 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 3 4 2 7 +BITMAP +A0 +A0 +A0 +A0 +ENDCHAR +STARTCHAR 035 +ENCODING 35 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 0 +BITMAP +28 +28 +FE +28 +28 +28 +FE +28 +28 +ENDCHAR +STARTCHAR 036 +ENCODING 36 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 -1 +BITMAP +10 +3C +52 +92 +90 +70 +1C +12 +92 +54 +3C +10 +ENDCHAR +STARTCHAR 037 +ENCODING 37 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 6 10 1 0 +BITMAP +C4 +C4 +04 +08 +10 +20 +40 +80 +8C +8C +ENDCHAR +STARTCHAR 038 +ENCODING 38 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +20 +60 +90 +90 +60 +60 +92 +8C +52 +32 +ENDCHAR +STARTCHAR 039 +ENCODING 39 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 1 4 3 7 +BITMAP +80 +80 +80 +80 +ENDCHAR +STARTCHAR 040 +ENCODING 40 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 12 2 -1 +BITMAP +30 +40 +40 +40 +80 +80 +80 +80 +40 +40 +40 +30 +ENDCHAR +STARTCHAR 041 +ENCODING 41 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 3 12 2 -1 +BITMAP +80 +40 +40 +40 +20 +20 +20 +20 +40 +40 +40 +80 +ENDCHAR +STARTCHAR 042 +ENCODING 42 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +10 +10 +D6 +38 +10 +10 +38 +D6 +10 +10 +ENDCHAR +STARTCHAR 043 +ENCODING 43 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 2 +BITMAP +10 +10 +10 +FE +10 +10 +10 +ENDCHAR +STARTCHAR 044 +ENCODING 44 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 2 4 2 -1 +BITMAP +C0 +40 +40 +80 +ENDCHAR +STARTCHAR 045 +ENCODING 45 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 2 0 4 +BITMAP +FE +FE +ENDCHAR +STARTCHAR 046 +ENCODING 46 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 2 2 2 0 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR 047 +ENCODING 47 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 6 10 1 0 +BITMAP +04 +04 +08 +10 +10 +20 +40 +40 +80 +80 +ENDCHAR +STARTCHAR 048 +ENCODING 48 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 6 10 1 0 +BITMAP +30 +48 +84 +8C +94 +A4 +C4 +84 +48 +30 +ENDCHAR +STARTCHAR 049 +ENCODING 49 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 10 1 0 +BITMAP +20 +60 +E0 +20 +20 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 050 +ENCODING 50 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +02 +04 +08 +10 +20 +40 +FE +ENDCHAR +STARTCHAR 051 +ENCODING 51 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +02 +02 +04 +08 +1C +02 +82 +44 +38 +ENDCHAR +STARTCHAR 052 +ENCODING 52 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +04 +0C +14 +24 +44 +84 +FE +04 +04 +04 +ENDCHAR +STARTCHAR 053 +ENCODING 53 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +80 +80 +FC +02 +02 +02 +82 +44 +38 +ENDCHAR +STARTCHAR 054 +ENCODING 54 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +1C +20 +40 +80 +F8 +84 +82 +82 +44 +38 +ENDCHAR +STARTCHAR 055 +ENCODING 55 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +02 +02 +04 +0C +08 +10 +10 +10 +10 +ENDCHAR +STARTCHAR 056 +ENCODING 56 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +82 +44 +38 +44 +82 +44 +38 +ENDCHAR +STARTCHAR 057 +ENCODING 57 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +82 +42 +3E +02 +04 +08 +30 +ENDCHAR +STARTCHAR 058 +ENCODING 58 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 2 5 2 1 +BITMAP +C0 +C0 +00 +C0 +C0 +ENDCHAR +STARTCHAR 059 +ENCODING 59 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 2 7 2 -1 +BITMAP +C0 +C0 +00 +C0 +40 +40 +80 +ENDCHAR +STARTCHAR 060 +ENCODING 60 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 7 2 1 +BITMAP +10 +20 +40 +80 +40 +20 +10 +ENDCHAR +STARTCHAR 061 +ENCODING 61 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 4 0 3 +BITMAP +FE +00 +00 +FE +ENDCHAR +STARTCHAR 062 +ENCODING 62 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 7 2 1 +BITMAP +80 +40 +20 +10 +20 +40 +80 +ENDCHAR +STARTCHAR 063 +ENCODING 63 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +04 +08 +10 +10 +00 +10 +10 +ENDCHAR +STARTCHAR 064 +ENCODING 64 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +9E +92 +92 +9E +80 +40 +3C +ENDCHAR +STARTCHAR 065 +ENCODING 65 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +7C +82 +82 +82 +82 +FE +82 +82 +82 +82 +ENDCHAR +STARTCHAR 066 +ENCODING 66 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +F8 +44 +42 +42 +7C +42 +42 +42 +44 +FC +ENDCHAR +STARTCHAR 067 +ENCODING 67 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +18 +24 +42 +80 +80 +80 +80 +42 +24 +18 +ENDCHAR +STARTCHAR 068 +ENCODING 68 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +F8 +44 +42 +42 +42 +42 +42 +42 +44 +F8 +ENDCHAR +STARTCHAR 069 +ENCODING 69 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +80 +80 +80 +FC +80 +80 +80 +80 +FE +ENDCHAR +STARTCHAR 070 +ENCODING 70 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +80 +80 +80 +FC +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 071 +ENCODING 71 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +80 +80 +80 +8E +42 +24 +18 +ENDCHAR +STARTCHAR 072 +ENCODING 72 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +82 +82 +FE +82 +82 +82 +82 +82 +ENDCHAR +STARTCHAR 073 +ENCODING 73 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 10 1 0 +BITMAP +F8 +20 +20 +20 +20 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR 074 +ENCODING 74 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 0 +BITMAP +3E +08 +08 +08 +08 +08 +88 +48 +30 +ENDCHAR +STARTCHAR 075 +ENCODING 75 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +84 +88 +90 +E0 +E0 +90 +88 +84 +82 +ENDCHAR +STARTCHAR 076 +ENCODING 76 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +FE +ENDCHAR +STARTCHAR 077 +ENCODING 77 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +C6 +AA +92 +82 +82 +82 +82 +82 +82 +ENDCHAR +STARTCHAR 078 +ENCODING 78 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +C2 +A2 +92 +8A +86 +82 +82 +82 +ENDCHAR +STARTCHAR 079 +ENCODING 79 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +82 +82 +82 +82 +82 +44 +38 +ENDCHAR +STARTCHAR 080 +ENCODING 80 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +F8 +84 +82 +82 +84 +F8 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 081 +ENCODING 81 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +38 +44 +82 +82 +82 +82 +82 +8C +46 +3A +ENDCHAR +STARTCHAR 082 +ENCODING 82 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +F8 +84 +82 +82 +84 +F8 +90 +88 +84 +82 +ENDCHAR +STARTCHAR 083 +ENCODING 83 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +18 +24 +42 +80 +40 +3C +02 +82 +44 +38 +ENDCHAR +STARTCHAR 084 +ENCODING 84 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +10 +10 +10 +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR 085 +ENCODING 85 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +82 +82 +82 +82 +82 +82 +44 +38 +ENDCHAR +STARTCHAR 086 +ENCODING 86 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +82 +82 +82 +82 +44 +44 +28 +10 +ENDCHAR +STARTCHAR 087 +ENCODING 87 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +82 +82 +82 +82 +92 +92 +54 +28 +ENDCHAR +STARTCHAR 088 +ENCODING 88 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +44 +28 +10 +10 +28 +44 +82 +82 +ENDCHAR +STARTCHAR 089 +ENCODING 89 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +82 +82 +44 +28 +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR 090 +ENCODING 90 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +FE +02 +02 +04 +08 +10 +20 +40 +80 +FE +ENDCHAR +STARTCHAR 091 +ENCODING 91 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 12 2 -1 +BITMAP +F0 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +F0 +ENDCHAR +STARTCHAR 092 +ENCODING 92 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +80 +80 +40 +20 +10 +10 +08 +08 +04 +02 +ENDCHAR +STARTCHAR 093 +ENCODING 93 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 12 2 -1 +BITMAP +F0 +10 +10 +10 +10 +10 +10 +10 +10 +10 +10 +F0 +ENDCHAR +STARTCHAR 094 +ENCODING 94 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 4 0 7 +BITMAP +10 +28 +44 +82 +ENDCHAR +STARTCHAR 095 +ENCODING 95 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 1 0 -2 +BITMAP +FE +ENDCHAR +STARTCHAR 096 +ENCODING 96 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 4 2 7 +BITMAP +80 +40 +20 +10 +ENDCHAR +STARTCHAR 097 +ENCODING 97 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +3C +02 +02 +3E +C2 +46 +3E +ENDCHAR +STARTCHAR 098 +ENCODING 98 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +80 +80 +80 +FC +82 +82 +82 +82 +84 +F8 +ENDCHAR +STARTCHAR 099 +ENCODING 99 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +7C +80 +80 +80 +82 +44 +38 +ENDCHAR +STARTCHAR 100 +ENCODING 100 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +02 +02 +02 +3E +42 +82 +82 +82 +42 +3E +ENDCHAR +STARTCHAR 101 +ENCODING 101 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +3C +42 +82 +FC +80 +40 +3C +ENDCHAR +STARTCHAR 102 +ENCODING 102 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +08 +14 +22 +20 +20 +F8 +20 +20 +20 +20 +ENDCHAR +STARTCHAR 103 +ENCODING 103 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -2 +BITMAP +3C +42 +82 +82 +82 +42 +3E +02 +3C +ENDCHAR +STARTCHAR 104 +ENCODING 104 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +80 +80 +80 +FC +82 +82 +82 +82 +82 +82 +ENDCHAR +STARTCHAR 105 +ENCODING 105 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 9 2 0 +BITMAP +40 +00 +C0 +40 +40 +40 +40 +40 +F0 +ENDCHAR +STARTCHAR 106 +ENCODING 106 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 11 2 -2 +BITMAP +08 +00 +38 +08 +08 +08 +08 +08 +08 +88 +70 +ENDCHAR +STARTCHAR 107 +ENCODING 107 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +80 +80 +80 +82 +84 +88 +F0 +88 +84 +82 +ENDCHAR +STARTCHAR 108 +ENCODING 108 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 9 2 0 +BITMAP +C0 +40 +40 +40 +40 +40 +40 +40 +F0 +ENDCHAR +STARTCHAR 109 +ENCODING 109 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +EC +92 +92 +92 +92 +92 +92 +ENDCHAR +STARTCHAR 110 +ENCODING 110 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +9C +A2 +C2 +82 +82 +82 +82 +ENDCHAR +STARTCHAR 111 +ENCODING 111 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +38 +44 +82 +82 +82 +44 +38 +ENDCHAR +STARTCHAR 112 +ENCODING 112 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -2 +BITMAP +FC +82 +82 +82 +82 +82 +FC +80 +80 +ENDCHAR +STARTCHAR 113 +ENCODING 113 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -2 +BITMAP +7E +82 +82 +82 +82 +82 +7E +02 +02 +ENDCHAR +STARTCHAR 114 +ENCODING 114 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +9C +A2 +C2 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 115 +ENCODING 115 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +3E +40 +80 +7C +02 +04 +F8 +ENDCHAR +STARTCHAR 116 +ENCODING 116 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +10 +10 +10 +FE +10 +10 +10 +10 +08 +06 +ENDCHAR +STARTCHAR 117 +ENCODING 117 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +82 +82 +82 +82 +86 +8A +72 +ENDCHAR +STARTCHAR 118 +ENCODING 118 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +82 +82 +82 +82 +44 +28 +10 +ENDCHAR +STARTCHAR 119 +ENCODING 119 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +82 +82 +82 +82 +92 +54 +28 +ENDCHAR +STARTCHAR 120 +ENCODING 120 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +82 +44 +28 +10 +28 +44 +82 +ENDCHAR +STARTCHAR 121 +ENCODING 121 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -2 +BITMAP +82 +82 +82 +44 +28 +10 +10 +20 +C0 +ENDCHAR +STARTCHAR 122 +ENCODING 122 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +FE +04 +08 +10 +20 +40 +FE +ENDCHAR +STARTCHAR 123 +ENCODING 123 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 12 2 -1 +BITMAP +30 +40 +40 +40 +40 +80 +80 +40 +40 +40 +40 +30 +ENDCHAR +STARTCHAR 124 +ENCODING 124 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 1 12 3 -1 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 125 +ENCODING 125 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 3 12 2 -1 +BITMAP +80 +40 +40 +40 +40 +20 +20 +40 +40 +40 +40 +80 +ENDCHAR +STARTCHAR 126 +ENCODING 126 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 4 0 3 +BITMAP +22 +52 +92 +8C +ENDCHAR +STARTCHAR 127 +ENCODING 127 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 128 +ENCODING 128 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 129 +ENCODING 129 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 130 +ENCODING 130 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 131 +ENCODING 131 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 132 +ENCODING 132 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 133 +ENCODING 133 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 134 +ENCODING 134 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 135 +ENCODING 135 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 136 +ENCODING 136 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 137 +ENCODING 137 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 138 +ENCODING 138 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 139 +ENCODING 139 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 140 +ENCODING 140 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 141 +ENCODING 141 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 142 +ENCODING 142 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 143 +ENCODING 143 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 144 +ENCODING 144 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 145 +ENCODING 145 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 146 +ENCODING 146 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 147 +ENCODING 147 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 148 +ENCODING 148 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 149 +ENCODING 149 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 150 +ENCODING 150 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 151 +ENCODING 151 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 152 +ENCODING 152 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 153 +ENCODING 153 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 154 +ENCODING 154 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 155 +ENCODING 155 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 156 +ENCODING 156 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 157 +ENCODING 157 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 158 +ENCODING 158 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 159 +ENCODING 159 +SWIDTH 216 0 +DWIDTH 3 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 160 +ENCODING 160 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 0 0 0 0 +BITMAP +ENDCHAR +STARTCHAR 161 +ENCODING 161 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 1 10 3 0 +BITMAP +80 +80 +00 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 162 +ENCODING 162 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -1 +BITMAP +10 +3C +D2 +D2 +D0 +D2 +3C +3C +10 +ENDCHAR +STARTCHAR 163 +ENCODING 163 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +1C +1C +22 +20 +F0 +F0 +20 +22 +DC +DC +ENDCHAR +STARTCHAR 164 +ENCODING 164 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +D2 +2C +2C +C2 +2C +D2 +D2 +ENDCHAR +STARTCHAR 165 +ENCODING 165 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +C2 +C2 +2C +FE +10 +10 +FE +10 +10 +10 +ENDCHAR +STARTCHAR 166 +ENCODING 166 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 1 10 3 0 +BITMAP +80 +80 +80 +80 +00 +00 +80 +80 +80 +80 +ENDCHAR +STARTCHAR 167 +ENCODING 167 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 11 2 0 +BITMAP +78 +80 +80 +70 +88 +88 +88 +70 +08 +F0 +F0 +ENDCHAR +STARTCHAR 168 +ENCODING 168 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 1 2 10 +BITMAP +B0 +ENDCHAR +STARTCHAR 169 +ENCODING 169 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 8 10 0 0 +BITMAP +3E +3E +C1 +DD +D1 +D1 +DD +C1 +3E +3E +ENDCHAR +STARTCHAR 170 +ENCODING 170 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 6 2 6 +BITMAP +70 +B0 +70 +70 +00 +F0 +ENDCHAR +STARTCHAR 171 +ENCODING 171 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +12 +2C +2C +D0 +2C +12 +12 +ENDCHAR +STARTCHAR 172 +ENCODING 172 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 4 0 2 +BITMAP +FE +FE +02 +02 +ENDCHAR +STARTCHAR 173 +ENCODING 173 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 2 2 4 +BITMAP +F0 +F0 +ENDCHAR +STARTCHAR 174 +ENCODING 174 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 8 10 0 0 +BITMAP +3E +3E +C1 +DD +D1 +D1 +D1 +C1 +3E +3E +ENDCHAR +STARTCHAR 175 +ENCODING 175 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 1 0 10 +BITMAP +FE +ENDCHAR +STARTCHAR 176 +ENCODING 176 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 5 2 7 +BITMAP +70 +88 +88 +88 +70 +ENDCHAR +STARTCHAR 177 +ENCODING 177 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +10 +10 +10 +FE +10 +10 +10 +00 +FE +FE +ENDCHAR +STARTCHAR 178 +ENCODING 178 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 6 2 6 +BITMAP +40 +B0 +30 +30 +40 +F0 +ENDCHAR +STARTCHAR 179 +ENCODING 179 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 6 2 6 +BITMAP +C0 +30 +40 +40 +30 +C0 +ENDCHAR +STARTCHAR 180 +ENCODING 180 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 4 2 7 +BITMAP +30 +40 +40 +80 +ENDCHAR +STARTCHAR 181 +ENCODING 181 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -2 +BITMAP +C2 +C2 +C2 +C2 +CE +F2 +F2 +C0 +C0 +ENDCHAR +STARTCHAR 182 +ENCODING 182 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +3E +F2 +F2 +F2 +F2 +32 +32 +12 +12 +12 +12 +ENDCHAR +STARTCHAR 183 +ENCODING 183 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 3 3 3 4 +BITMAP +E0 +E0 +E0 +ENDCHAR +STARTCHAR 184 +ENCODING 184 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 2 2 -2 +BITMAP +30 +C0 +ENDCHAR +STARTCHAR 185 +ENCODING 185 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 6 2 6 +BITMAP +40 +C0 +40 +40 +40 +F0 +ENDCHAR +STARTCHAR 186 +ENCODING 186 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 7 2 7 +BITMAP +40 +40 +B0 +40 +00 +00 +F0 +ENDCHAR +STARTCHAR 187 +ENCODING 187 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +D0 +2C +2C +12 +2C +D0 +D0 +ENDCHAR +STARTCHAR 188 +ENCODING 188 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +20 +20 +E0 +22 +2C +2C +30 +2C +DC +DC +2C +3E +0C +0C +ENDCHAR +STARTCHAR 189 +ENCODING 189 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +20 +20 +E0 +22 +2C +2C +30 +2C +D2 +D2 +02 +0C +1E +1E +ENDCHAR +STARTCHAR 190 +ENCODING 190 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +E0 +E0 +10 +22 +1C +1C +F0 +2C +DC +DC +2C +3E +0C +0C +ENDCHAR +STARTCHAR 191 +ENCODING 191 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +10 +10 +00 +10 +10 +10 +20 +C2 +3C +3C +ENDCHAR +STARTCHAR 192 +ENCODING 192 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +20 +20 +10 +00 +3C +3C +C2 +C2 +FE +FE +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 193 +ENCODING 193 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +0C +0C +10 +00 +3C +3C +C2 +C2 +FE +FE +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 194 +ENCODING 194 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +10 +10 +2C +00 +3C +3C +C2 +C2 +FE +FE +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 195 +ENCODING 195 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +32 +32 +DC +00 +3C +3C +C2 +C2 +FE +FE +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 196 +ENCODING 196 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 0 +BITMAP +2C +00 +3C +3C +C2 +C2 +FE +FE +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 197 +ENCODING 197 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +10 +10 +2C +10 +3C +3C +C2 +C2 +FE +FE +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 198 +ENCODING 198 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +3E +3E +D0 +D0 +FC +FC +D0 +D0 +DE +DE +ENDCHAR +STARTCHAR 199 +ENCODING 199 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 -2 +BITMAP +3C +3C +C2 +C0 +C0 +C0 +C0 +C2 +3C +3C +0C +30 +ENDCHAR +STARTCHAR 200 +ENCODING 200 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +20 +20 +10 +00 +FE +FE +C0 +C0 +FC +FC +C0 +C0 +FE +FE +ENDCHAR +STARTCHAR 201 +ENCODING 201 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +0C +0C +10 +00 +FE +FE +C0 +C0 +FC +FC +C0 +C0 +FE +FE +ENDCHAR +STARTCHAR 202 +ENCODING 202 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +10 +10 +2C +00 +FE +FE +C0 +C0 +FC +FC +C0 +C0 +FE +FE +ENDCHAR +STARTCHAR 203 +ENCODING 203 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 0 +BITMAP +2C +00 +FE +FE +C0 +C0 +FC +FC +C0 +C0 +FE +FE +ENDCHAR +STARTCHAR 204 +ENCODING 204 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 14 2 0 +BITMAP +80 +80 +40 +00 +F0 +F0 +40 +40 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 205 +ENCODING 205 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 14 2 0 +BITMAP +30 +30 +40 +00 +F0 +F0 +40 +40 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 206 +ENCODING 206 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 14 2 0 +BITMAP +40 +40 +B0 +00 +F0 +F0 +40 +40 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 207 +ENCODING 207 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 12 2 0 +BITMAP +B0 +00 +F0 +F0 +40 +40 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 208 +ENCODING 208 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +3C +3C +22 +22 +F2 +F2 +22 +22 +3C +3C +ENDCHAR +STARTCHAR 209 +ENCODING 209 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +32 +32 +DC +00 +C2 +C2 +C2 +E2 +D2 +D2 +CE +C2 +C2 +C2 +ENDCHAR +STARTCHAR 210 +ENCODING 210 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +20 +20 +10 +00 +3C +3C +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 211 +ENCODING 211 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +0C +0C +10 +00 +3C +3C +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 212 +ENCODING 212 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +10 +10 +2C +00 +3C +3C +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 213 +ENCODING 213 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +32 +32 +DC +00 +3C +3C +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 214 +ENCODING 214 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 0 +BITMAP +2C +00 +3C +3C +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 215 +ENCODING 215 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 6 0 2 +BITMAP +C2 +2C +10 +10 +2C +C2 +ENDCHAR +STARTCHAR 216 +ENCODING 216 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 -1 +BITMAP +02 +3C +3C +CE +D2 +D2 +D2 +D2 +E2 +3C +3C +C0 +ENDCHAR +STARTCHAR 217 +ENCODING 217 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +20 +20 +10 +00 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 218 +ENCODING 218 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +0C +0C +10 +00 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 219 +ENCODING 219 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +10 +10 +2C +00 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 220 +ENCODING 220 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 0 +BITMAP +2C +00 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 221 +ENCODING 221 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 14 0 0 +BITMAP +0C +0C +10 +00 +C2 +C2 +C2 +2C +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR 222 +ENCODING 222 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 5 10 2 0 +BITMAP +80 +80 +F0 +88 +88 +88 +88 +F0 +80 +80 +ENDCHAR +STARTCHAR 223 +ENCODING 223 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +3C +3C +C2 +CC +D0 +D0 +CC +C2 +DC +DC +ENDCHAR +STARTCHAR 224 +ENCODING 224 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +20 +10 +10 +00 +3C +02 +02 +3E +C2 +3E +3E +ENDCHAR +STARTCHAR 225 +ENCODING 225 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +0C +10 +10 +00 +3C +02 +02 +3E +C2 +3E +3E +ENDCHAR +STARTCHAR 226 +ENCODING 226 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +10 +2C +2C +00 +3C +02 +02 +3E +C2 +3E +3E +ENDCHAR +STARTCHAR 227 +ENCODING 227 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +32 +DC +DC +00 +3C +02 +02 +3E +C2 +3E +3E +ENDCHAR +STARTCHAR 228 +ENCODING 228 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +2C +2C +00 +3C +02 +02 +3E +C2 +3E +3E +ENDCHAR +STARTCHAR 229 +ENCODING 229 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +10 +2C +2C +10 +3C +02 +02 +3E +C2 +3E +3E +ENDCHAR +STARTCHAR 230 +ENCODING 230 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +3C +12 +12 +3C +D0 +3E +3E +ENDCHAR +STARTCHAR 231 +ENCODING 231 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 9 0 -2 +BITMAP +3C +C2 +C2 +C0 +C2 +3C +3C +0C +30 +ENDCHAR +STARTCHAR 232 +ENCODING 232 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +20 +10 +10 +00 +3C +C2 +C2 +FC +C0 +3C +3C +ENDCHAR +STARTCHAR 233 +ENCODING 233 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +0C +10 +10 +00 +3C +C2 +C2 +FC +C0 +3C +3C +ENDCHAR +STARTCHAR 234 +ENCODING 234 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +10 +2C +2C +00 +3C +C2 +C2 +FC +C0 +3C +3C +ENDCHAR +STARTCHAR 235 +ENCODING 235 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +2C +2C +00 +3C +C2 +C2 +FC +C0 +3C +3C +ENDCHAR +STARTCHAR 236 +ENCODING 236 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 11 2 0 +BITMAP +80 +40 +40 +00 +C0 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 237 +ENCODING 237 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 11 2 0 +BITMAP +30 +40 +40 +00 +C0 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 238 +ENCODING 238 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 11 2 0 +BITMAP +40 +B0 +B0 +00 +C0 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 239 +ENCODING 239 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 4 10 2 0 +BITMAP +B0 +B0 +00 +C0 +40 +40 +40 +40 +F0 +F0 +ENDCHAR +STARTCHAR 240 +ENCODING 240 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 0 +BITMAP +2C +10 +2C +2C +02 +3E +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 241 +ENCODING 241 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +32 +DC +DC +00 +DC +E2 +E2 +C2 +C2 +C2 +C2 +ENDCHAR +STARTCHAR 242 +ENCODING 242 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +20 +10 +10 +00 +3C +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 243 +ENCODING 243 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +0C +10 +10 +00 +3C +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 244 +ENCODING 244 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +10 +2C +2C +00 +3C +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 245 +ENCODING 245 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +32 +DC +DC +00 +3C +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 246 +ENCODING 246 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +2C +2C +00 +3C +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 247 +ENCODING 247 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 6 0 2 +BITMAP +10 +00 +FE +FE +00 +10 +ENDCHAR +STARTCHAR 248 +ENCODING 248 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 7 0 0 +BITMAP +3E +CE +CE +D2 +E2 +FC +FC +ENDCHAR +STARTCHAR 249 +ENCODING 249 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +20 +10 +10 +00 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 250 +ENCODING 250 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +0C +10 +10 +00 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 251 +ENCODING 251 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 11 0 0 +BITMAP +10 +2C +2C +00 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 252 +ENCODING 252 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 10 0 0 +BITMAP +2C +2C +00 +C2 +C2 +C2 +C2 +C2 +3C +3C +ENDCHAR +STARTCHAR 253 +ENCODING 253 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 13 0 -2 +BITMAP +0C +10 +10 +00 +C2 +C2 +C2 +C2 +2C +10 +10 +20 +C0 +ENDCHAR +STARTCHAR 254 +ENCODING 254 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 -2 +BITMAP +C0 +C0 +C0 +FC +C2 +C2 +C2 +C2 +FC +FC +C0 +C0 +ENDCHAR +STARTCHAR 255 +ENCODING 255 +SWIDTH 576 0 +DWIDTH 8 0 +BBX 7 12 0 -2 +BITMAP +2C +2C +00 +C2 +C2 +C2 +C2 +2C +10 +10 +20 +C0 +ENDCHAR +ENDFONT diff --git a/buildroot/tests/STM32F103RET6_creality b/buildroot/tests/STM32F103RET6_creality index 8348b6347df0..a941eb906af2 100755 --- a/buildroot/tests/STM32F103RET6_creality +++ b/buildroot/tests/STM32F103RET6_creality @@ -9,15 +9,13 @@ set -e # # Build with configs included in the PR # -use_example_configs "Creality/Ender-3 V2" +use_example_configs "Creality/Ender-3 V2/CrealityUI" opt_enable MARLIN_DEV_MODE BUFFER_MONITORING -exec_test $1 $2 "Ender 3 v2" "$3" +exec_test $1 $2 "Ender 3 v2 with CrealityUI" "$3" -use_example_configs "Creality/Ender-3 V2" -opt_disable CLASSIC_JERK +use_example_configs "Creality/Ender-3 V2/MarlinUI" opt_add SDCARD_EEPROM_EMULATION -opt_set TEMP_SENSOR_BED 0 -exec_test $1 $2 "Ender 3 v2, SD EEPROM, no CLASSIC_JERK, no Bed" "$3" +exec_test $1 $2 "Ender 3 v2 with MarlinUI" "$3" restore_configs opt_set MOTHERBOARD BOARD_CREALITY_V452 SERIAL_PORT 1 diff --git a/ini/features.ini b/ini/features.ini index e5b0fb3f66ec..fa7d1519389e 100644 --- a/ini/features.ini +++ b/ini/features.ini @@ -17,7 +17,7 @@ HAS_TFT_LVGL_UI = lvgl=https://github.com/makerbase-mks/L POSTMORTEM_DEBUGGING = src_filter=+ + build_flags=-funwind-tables MKS_WIFI_MODULE = QRCode=https://github.com/makerbase-mks/QRCode/archive/master.zip -HAS_TRINAMIC_CONFIG = TMCStepper@~0.7.1 +HAS_TRINAMIC_CONFIG = TMCStepper@~0.7.3 src_filter=+ + + + + HAS_STEALTHCHOP = src_filter=+ SR_LCD_3W_NL = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip @@ -45,6 +45,7 @@ I2C_EEPROM = src_filter=+ DWIN_CREALITY_LCD = src_filter=+ +DWIN_MARLINUI_.+ = src_filter=+ HAS_GRAPHICAL_TFT = src_filter=+ IS_TFTGLCD_PANEL = src_filter=+ HAS_TOUCH_BUTTONS = src_filter=+ diff --git a/ini/stm32f1.ini b/ini/stm32f1.ini index f1cb078fd81c..dc9607ef844b 100644 --- a/ini/stm32f1.ini +++ b/ini/stm32f1.ini @@ -338,7 +338,7 @@ board_build.variant = MARLIN_F103VE_LONGER board_build.rename = project.bin board_build.offset = 0x10000 board_upload.offset_address = 0x08010000 -build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103VE -DU20 -DTS_V12 +build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103VE -DSTEP_TIMER=5 -DU20 -DTS_V12 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED extra_scripts = ${stm32_variant.extra_scripts} monitor_speed = 250000 diff --git a/platformio.ini b/platformio.ini index 565bdbc3f776..02eebc23fdfb 100644 --- a/platformio.ini +++ b/platformio.ini @@ -48,7 +48,8 @@ extra_scripts = post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py lib_deps = default_src_filter = + - - + - - - - - - - + - - - - - + - - - - - - - -