# HG changeset patch # User heinrichsweikamp # Date 1583417174 -3600 # Node ID 690c48db7b5ba3065ebb601ddc2c15ae55832dce # Parent 0347acdf6d8e99c3e728f1e0ef7b39376775ca66 3.09 beta 2 release diff -r 0347acdf6d8e -r 690c48db7b5b src/Docu/Performance-Measurement.txt --- a/src/Docu/Performance-Measurement.txt Sat Feb 29 16:57:45 2020 +0100 +++ b/src/Docu/Performance-Measurement.txt Thu Mar 05 15:06:14 2020 +0100 @@ -1,4 +1,3 @@ - Performance Measurement ----------------------- @@ -7,7 +6,7 @@ AAAA.BBB.CC.DD.EE AAAA: Relative runtime of the last deco engine invocation, in ms, - signed value: positive numbers: longer than target + signed value: positive numbers: overrun on target runtime negative numbers: unused time budget BBB: longest runtime found, in ms @@ -16,25 +15,23 @@ DD: Number of deco engine invocations required to complete the last normal plan -EE: as above, but for alternative plan +EE: as above, but for alternative plan (cave return or CCR bailout or OC fTTS plan) Calculation Phases ------------------------------------------------------------------------------------------------------ -PHASE_00_DONE 00 calculation cycle finished -PHASE_10_DIVE_INIT 10 once-per-dive initialization of the deco engine -PHASE_11_CYCLIC_INIT 11 once-every-cycle initialization of the deco engine -PHASE_20_EXTENDED_BOTTOM_TIME 20 calculate extended bottom time -PHASE_30_NDL_TIME 30 calculate NDL time -PHASE_40_CAVE_ASCENT 40 calculate cave mode return/ascent -PHASE_50_INITIAL_ASCENT 50 calculate initial ascent -PHASE_60_DECO_STOPS 60 calculate deco stops -PHASE_70_RESULTS 70 results - initialization -PHASE_71_RESULTS_STOPS_TABLE 71 results - publish stops table -PHASE_72_RESULTS_NDL 72 results - publish data / within NDL -PHASE_73_RESULTS_DECO 73 results - publish data / in deco -PHASE_80_GAS_NEEDS_SWITCHES 80 calculate gas needs - find gas switches in NDL bailout mode -PHASE_81_GAS_NEEDS_ASCENT 81 calculate gas needs - needs of bottom segment and ascent -PHASE_82_GAS_NEEDS_PRESSURES 82 calculate gas needs - conversion from volumes to pressures -PHASE_90_FINISH 90 finish calculation cycle \ No newline at end of file +PHASE_00_DONE 0x00 // calculation cycle finished +PHASE_10_DIVE_INIT 0x10 // once-per-dive initialization of the deco engine +PHASE_20_CYCLIC_INIT 0x20 // once-every-cycle initialization of the deco engine +PHASE_30_EXTENDED_BOTTOM_TIME 0x30 // calculate extended bottom time +PHASE_40_BOTTOM_GAS_NEED 0x40 // calculate gas needs for bottom segment +PHASE_50_NDL_TIME 0x50 // calculate NDL time +PHASE_70_ASCENT 0x70 // calculate ascent +PHASE_80_RESULTS 0x80 // results - initialization +PHASE_81_RESULTS_STOPS_TABLE 0x81 // results - publish stops table +PHASE_82_RESULTS_NDL 0x82 // results - publish data / within NDL +PHASE_83_RESULTS_DECO 0x83 // results - publish data / in deco +PHASE_84_GAS_NEEDS_PRESSURES 0x84 // results - convert gas needs from volumes to pressures +PHASE_85_GAS_NEEDS_CAVE 0x85 // results - tag gas needs as calculated in cave or open water mode +PHASE_90_FINISH 0x90 // finish calculation cycle diff -r 0347acdf6d8e -r 690c48db7b5b src/Fonts/aa_font48.inc --- a/src/Fonts/aa_font48.inc Sat Feb 29 16:57:45 2020 +0100 +++ b/src/Fonts/aa_font48.inc Thu Mar 05 15:06:14 2020 +0100 @@ -1,266 +1,263 @@ ;========================================================================== -; Font data exported ven. janv. 13 2012 by FontIO.cpp 110 2011-06-07 11:26:40Z gascuel $ +; Font data exported So Nov 24 2019 by FontIO.cpp, +; v 43ff8ad28dae 2018/04/17 16:52:12 jDG combined next generation V3.08.3 ;========================================================================== -aa_font48_height EQU .32 -aa_font48_width EQU .24 -aa_font48_nbbits EQU .3 +aa_font48_height EQU .32 +aa_font48_width EQU .24 +aa_font48_nbbits EQU .3 ; aa_font48_bits: -; . dot - DB 0xD9, 0x40, 0x21, 0x40, 0x9A, 0x40, 0x03, 0x40 - DB 0x98, 0x60, 0x05, 0x60, 0x97, 0x40, 0x05, 0x40 - DB 0x97, 0x40, 0x05, 0x40, 0x98, 0x05, 0x99, 0x60 - DB 0x20, 0x01, 0x20, 0x60, 0x9B, 0x61, 0xC2 -; / slash - DB 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF -; 0 0 - DB 0xEB, 0x60, 0x40, 0x21, 0x03, 0x22, 0x40, 0x60 - DB 0x8F, 0x60, 0x40, 0x0E, 0x40, 0x8C, 0x40, 0x12 - DB 0x60, 0x89, 0x40, 0x14, 0x60, 0x87, 0x40, 0x03 - DB 0x20, 0x40, 0x61, 0x85, 0x61, 0x40, 0x20, 0x04 - DB 0x86, 0x60, 0x02, 0x20, 0x60, 0x8D, 0x60, 0x20 - DB 0x02, 0x40, 0x85, 0x40, 0x01, 0x20, 0x91, 0x20 - DB 0x01, 0x20, 0x85, 0x20, 0x01, 0x60, 0x91, 0x60 - DB 0x01, 0x20, 0x85, 0x02, 0x93, 0x02, 0x85, 0x02 - DB 0x93, 0x02, 0x85, 0x20, 0x01, 0x60, 0x91, 0x60 - DB 0x01, 0x20, 0x85, 0x20, 0x01, 0x20, 0x91, 0x20 - DB 0x01, 0x40, 0x85, 0x40, 0x02, 0x20, 0x60, 0x8D - DB 0x60, 0x20, 0x02, 0x87, 0x20, 0x03, 0x20, 0x40 - DB 0x61, 0x85, 0x61, 0x40, 0x20, 0x03, 0x40, 0x87 - DB 0x60, 0x14, 0x40, 0x89, 0x60, 0x12, 0x40, 0x8C - DB 0x40, 0x0E, 0x40, 0x60, 0x8F, 0x60, 0x40, 0x22 - DB 0x03, 0x21, 0x40, 0x60, 0xE7 -; 1 1 - DB 0xFF, 0x86, 0x40, 0x21, 0x40, 0x8F, 0x60, 0x02 - DB 0x87, 0x20, 0x01, 0x20, 0x8F, 0x60, 0x02, 0x87 - DB 0x02, 0x40, 0x8F, 0x60, 0x02, 0x86, 0x40, 0x02 - DB 0x90, 0x60, 0x02, 0x86, 0x20, 0x01, 0x40, 0x90 - DB 0x60, 0x02, 0x85, 0x60, 0x02, 0x60, 0x90, 0x60 - DB 0x02, 0x85, 0x40, 0x01, 0x20, 0x91, 0x60, 0x02 - DB 0x85, 0x20, 0x18, 0x85, 0x19, 0x85, 0x19, 0x85 - DB 0x36, 0x02, 0x9B, 0x60, 0x02, 0x9B, 0x60, 0x02 - DB 0x9B, 0x60, 0x02, 0x9B, 0x60, 0x02, 0x9B, 0x60 - DB 0x02, 0x9B, 0x60, 0x02, 0xE0 -; 2 2 - DB 0xDB, 0x62, 0x86, 0x60, 0x20, 0x40, 0x60, 0x90 - DB 0x40, 0x02, 0x86, 0x40, 0x01, 0x20, 0x8F, 0x40 - DB 0x03, 0x86, 0x02, 0x60, 0x8E, 0x40, 0x04, 0x85 - DB 0x40, 0x01, 0x20, 0x8E, 0x40, 0x05, 0x85, 0x40 - DB 0x01, 0x40, 0x8D, 0x40, 0x06, 0x85, 0x20, 0x01 - DB 0x60, 0x8C, 0x40, 0x02, 0x20, 0x40, 0x02, 0x85 - DB 0x02, 0x60, 0x8B, 0x40, 0x02, 0x20, 0x80, 0x40 - DB 0x02, 0x85, 0x02, 0x60, 0x8A, 0x40, 0x02, 0x20 - DB 0x81, 0x40, 0x02, 0x85, 0x02, 0x40, 0x89, 0x40 - DB 0x03, 0x82, 0x40, 0x02, 0x85, 0x20, 0x01, 0x20 - DB 0x88, 0x40, 0x03, 0x60, 0x82, 0x40, 0x02, 0x85 - DB 0x40, 0x02, 0x40, 0x86, 0x20, 0x03, 0x60, 0x83 - DB 0x40, 0x02, 0x85, 0x60, 0x03, 0x20, 0x60, 0x81 - DB 0x60, 0x40, 0x04, 0x60, 0x84, 0x40, 0x02, 0x86 - DB 0x20, 0x0C, 0x60, 0x85, 0x40, 0x02, 0x87, 0x0A - DB 0x20, 0x87, 0x40, 0x02, 0x88, 0x20, 0x07, 0x40 - DB 0x88, 0x40, 0x02, 0x89, 0x40, 0x21, 0x01, 0x20 - DB 0x40, 0x8A, 0x40, 0x02, 0x9B, 0x40, 0x02, 0xFF - DB 0x80 -; 3 3 - DB 0xFA, 0x61, 0x40, 0x60, 0x86, 0x63, 0x90, 0x20 - DB 0x01, 0x40, 0x86, 0x02, 0x60, 0x85, 0x42, 0x60 - DB 0x86, 0x40, 0x01, 0x20, 0x85, 0x60, 0x01, 0x20 - DB 0x86, 0x20, 0x01, 0x87, 0x60, 0x01, 0x20, 0x85 - DB 0x40, 0x01, 0x40, 0x86, 0x20, 0x01, 0x88, 0x02 - DB 0x85, 0x20, 0x01, 0x60, 0x86, 0x20, 0x01, 0x88 - DB 0x02, 0x85, 0x20, 0x01, 0x87, 0x20, 0x01, 0x88 - DB 0x02, 0x85, 0x02, 0x87, 0x02, 0x88, 0x01, 0x20 - DB 0x85, 0x02, 0x86, 0x60, 0x02, 0x60, 0x86, 0x60 - DB 0x01, 0x20, 0x85, 0x02, 0x60, 0x85, 0x40, 0x02 - DB 0x60, 0x86, 0x40, 0x01, 0x40, 0x85, 0x20, 0x01 - DB 0x40, 0x85, 0x20, 0x02, 0x20, 0x86, 0x20, 0x01 - DB 0x40, 0x85, 0x40, 0x01, 0x20, 0x84, 0x40, 0x04 - DB 0x40, 0x84, 0x40, 0x02, 0x86, 0x60, 0x02, 0x20 - DB 0x60, 0x81, 0x40, 0x01, 0x40, 0x20, 0x02, 0x40 - DB 0x81, 0x60, 0x40, 0x02, 0x40, 0x87, 0x20, 0x08 - DB 0x60, 0x40, 0x0A, 0x88, 0x60, 0x07, 0x40, 0x81 - DB 0x20, 0x08, 0x60, 0x89, 0x40, 0x05, 0x40, 0x83 - DB 0x20, 0x06, 0x60, 0x8C, 0x40, 0x21, 0x40, 0x60 - DB 0x85, 0x40, 0x20, 0x01, 0x20, 0x40, 0xFF, 0x85 -; 4 4 - DB 0xB5, 0x61, 0x9B, 0x60, 0x20, 0x02, 0x99, 0x40 - DB 0x04, 0x97, 0x60, 0x20, 0x05, 0x96, 0x40, 0x03 - DB 0x20, 0x02, 0x94, 0x60, 0x20, 0x03, 0x40, 0x60 - DB 0x02, 0x93, 0x40, 0x03, 0x20, 0x60, 0x80, 0x60 - DB 0x02, 0x91, 0x60, 0x20, 0x03, 0x40, 0x82, 0x60 - DB 0x02, 0x90, 0x40, 0x03, 0x20, 0x60, 0x83, 0x60 - DB 0x02, 0x8E, 0x60, 0x20, 0x03, 0x40, 0x85, 0x60 - DB 0x02, 0x8D, 0x40, 0x03, 0x20, 0x60, 0x86, 0x60 - DB 0x02, 0x8B, 0x60, 0x20, 0x03, 0x40, 0x88, 0x60 - DB 0x02, 0x8B, 0x03, 0x20, 0x60, 0x89, 0x60, 0x02 - DB 0x8B, 0x03, 0x4C, 0x02, 0x45, 0x85, 0x19, 0x85 - DB 0x19, 0x85, 0x19, 0x95, 0x60, 0x02, 0x9B, 0x60 - DB 0x02, 0x9B, 0x60, 0x02, 0x9B, 0x60, 0x02, 0x9B - DB 0x60, 0x22, 0xA6 -; 5 5 - DB 0xFF, 0x84, 0x6C, 0x88, 0x40, 0x21, 0x40, 0x85 - DB 0x0C, 0x60, 0x87, 0x40, 0x01, 0x20, 0x85, 0x0C - DB 0x88, 0x60, 0x01, 0x20, 0x85, 0x0C, 0x88, 0x60 - DB 0x02, 0x85, 0x02, 0x40, 0x85, 0x20, 0x01, 0x89 - DB 0x02, 0x85, 0x02, 0x40, 0x85, 0x20, 0x01, 0x89 - DB 0x02, 0x85, 0x02, 0x40, 0x85, 0x20, 0x01, 0x89 - DB 0x02, 0x85, 0x02, 0x40, 0x85, 0x20, 0x01, 0x60 - DB 0x87, 0x60, 0x01, 0x20, 0x85, 0x02, 0x40, 0x85 - DB 0x40, 0x01, 0x40, 0x87, 0x40, 0x01, 0x40, 0x85 - DB 0x02, 0x40, 0x85, 0x40, 0x01, 0x20, 0x87, 0x20 - DB 0x01, 0x40, 0x85, 0x02, 0x40, 0x85, 0x60, 0x02 - DB 0x40, 0x85, 0x40, 0x02, 0x86, 0x02, 0x40, 0x86 - DB 0x20, 0x02, 0x40, 0x60, 0x81, 0x60, 0x20, 0x02 - DB 0x40, 0x86, 0x02, 0x40, 0x86, 0x40, 0x0A, 0x20 - DB 0x87, 0x02, 0x40, 0x87, 0x20, 0x09, 0x60, 0x87 - DB 0x02, 0x40, 0x88, 0x20, 0x06, 0x20, 0x60, 0x96 - DB 0x40, 0x20, 0x01, 0x21, 0x40, 0xFF, 0x85 -; 6 6 - DB 0xED, 0x41, 0x21, 0x03, 0x20, 0x40, 0x60, 0x91 - DB 0x60, 0x20, 0x0C, 0x40, 0x8E, 0x20, 0x0F, 0x20 - DB 0x60, 0x8A, 0x60, 0x20, 0x04, 0x22, 0x09, 0x20 - DB 0x8A, 0x20, 0x03, 0x40, 0x60, 0x80, 0x40, 0x01 - DB 0x20, 0x40, 0x81, 0x60, 0x40, 0x20, 0x02, 0x20 - DB 0x88, 0x20, 0x02, 0x40, 0x82, 0x60, 0x01, 0x20 - DB 0x86, 0x40, 0x02, 0x60, 0x86, 0x40, 0x02, 0x40 - DB 0x83, 0x20, 0x01, 0x88, 0x20, 0x01, 0x40, 0x86 - DB 0x20, 0x01, 0x40, 0x83, 0x60, 0x01, 0x40, 0x88 - DB 0x60, 0x01, 0x20, 0x85, 0x60, 0x02, 0x84, 0x40 - DB 0x01, 0x60, 0x89, 0x20, 0x01, 0x85, 0x40, 0x01 - DB 0x40, 0x84, 0x20, 0x01, 0x8A, 0x20, 0x01, 0x85 - DB 0x20, 0x01, 0x60, 0x84, 0x20, 0x01, 0x8A, 0x20 - DB 0x01, 0x85, 0x20, 0x01, 0x60, 0x84, 0x20, 0x01 - DB 0x60, 0x88, 0x60, 0x01, 0x20, 0x85, 0x02, 0x85 - DB 0x40, 0x01, 0x20, 0x88, 0x40, 0x01, 0x40, 0x85 - DB 0x02, 0x85, 0x60, 0x02, 0x40, 0x86, 0x40, 0x02 - DB 0x60, 0x85, 0x02, 0x86, 0x20, 0x02, 0x20, 0x60 - DB 0x82, 0x60, 0x20, 0x02, 0x40, 0x86, 0x20, 0x01 - DB 0x60, 0x85, 0x60, 0x0B, 0x20, 0x87, 0x62, 0x87 - DB 0x40, 0x09, 0x20, 0x60, 0x93, 0x40, 0x07, 0x40 - DB 0x97, 0x41, 0x21, 0x41, 0xC6 -; 7 7 - DB 0xE4, 0x02, 0x40, 0x9B, 0x02, 0x40, 0x9B, 0x02 - DB 0x40, 0x9B, 0x02, 0x40, 0x9B, 0x02, 0x40, 0x92 - DB 0x60, 0x40, 0x00, 0x85, 0x02, 0x40, 0x90, 0x40 - DB 0x20, 0x02, 0x85, 0x02, 0x40, 0x8D, 0x60, 0x40 - DB 0x05, 0x85, 0x02, 0x40, 0x8B, 0x60, 0x40, 0x07 - DB 0x85, 0x02, 0x40, 0x89, 0x60, 0x20, 0x07, 0x40 - DB 0x60, 0x85, 0x02, 0x40, 0x87, 0x60, 0x20, 0x06 - DB 0x20, 0x40, 0x88, 0x02, 0x40, 0x85, 0x60, 0x20 - DB 0x06, 0x40, 0x60, 0x8A, 0x02, 0x40, 0x83, 0x60 - DB 0x40, 0x06, 0x40, 0x8D, 0x02, 0x40, 0x81, 0x60 - DB 0x40, 0x05, 0x20, 0x40, 0x8F, 0x02, 0x40, 0x80 - DB 0x40, 0x05, 0x20, 0x40, 0x91, 0x02, 0x20, 0x05 - DB 0x20, 0x40, 0x93, 0x07, 0x20, 0x40, 0x95, 0x05 - DB 0x20, 0x40, 0x97, 0x04, 0x40, 0x99, 0x22, 0x40 - DB 0xD6 -; 8 8 - DB 0xE8, 0x60, 0x40, 0x21, 0x40, 0x86, 0x60, 0x40 - DB 0x20, 0x01, 0x40, 0x60, 0x8B, 0x20, 0x05, 0x40 - DB 0x83, 0x40, 0x06, 0x40, 0x89, 0x20, 0x07, 0x60 - DB 0x81, 0x60, 0x08, 0x60, 0x87, 0x40, 0x09, 0x81 - DB 0x03, 0x21, 0x04, 0x86, 0x60, 0x02, 0x40, 0x60 - DB 0x80, 0x60, 0x20, 0x02, 0x41, 0x01, 0x20, 0x60 - DB 0x82, 0x40, 0x02, 0x40, 0x85, 0x40, 0x01, 0x20 - DB 0x84, 0x20, 0x05, 0x60, 0x84, 0x40, 0x01, 0x40 - DB 0x85, 0x20, 0x01, 0x60, 0x84, 0x60, 0x04, 0x40 - DB 0x85, 0x60, 0x01, 0x20, 0x85, 0x20, 0x01, 0x86 - DB 0x40, 0x02, 0x20, 0x87, 0x02, 0x85, 0x01, 0x20 - DB 0x86, 0x60, 0x02, 0x40, 0x87, 0x20, 0x01, 0x85 - DB 0x01, 0x20, 0x87, 0x02, 0x40, 0x87, 0x20, 0x01 - DB 0x85, 0x02, 0x86, 0x40, 0x02, 0x20, 0x87, 0x20 - DB 0x00, 0x20, 0x85, 0x20, 0x01, 0x60, 0x85, 0x04 - DB 0x40, 0x85, 0x60, 0x01, 0x20, 0x85, 0x40, 0x01 - DB 0x20, 0x84, 0x40, 0x01, 0x20, 0x02, 0x85, 0x40 - DB 0x01, 0x40, 0x85, 0x60, 0x02, 0x40, 0x60, 0x80 - DB 0x60, 0x40, 0x01, 0x20, 0x60, 0x02, 0x20, 0x60 - DB 0x82, 0x40, 0x02, 0x60, 0x86, 0x20, 0x08, 0x60 - DB 0x80, 0x40, 0x03, 0x22, 0x02, 0x40, 0x87, 0x60 - DB 0x07, 0x40, 0x82, 0x09, 0x89, 0x40, 0x05, 0x40 - DB 0x83, 0x60, 0x07, 0x60, 0x8A, 0x60, 0x40, 0x21 - DB 0x40, 0x60, 0x86, 0x40, 0x20, 0x01, 0x20, 0x40 - DB 0xE4 -; 9 9 - DB 0xC9, 0x60, 0x40, 0x21, 0x41, 0x60, 0x96, 0x60 - DB 0x20, 0x06, 0x40, 0x88, 0x63, 0x87, 0x60, 0x09 - DB 0x20, 0x87, 0x60, 0x01, 0x20, 0x86, 0x60, 0x0B - DB 0x40, 0x86, 0x60, 0x02, 0x86, 0x20, 0x02, 0x40 - DB 0x60, 0x81, 0x60, 0x40, 0x03, 0x60, 0x86, 0x02 - DB 0x85, 0x60, 0x02, 0x60, 0x85, 0x40, 0x02, 0x40 - DB 0x86, 0x02, 0x85, 0x40, 0x01, 0x40, 0x87, 0x40 - DB 0x01, 0x20, 0x86, 0x02, 0x85, 0x20, 0x01, 0x88 - DB 0x60, 0x02, 0x85, 0x60, 0x01, 0x20, 0x85, 0x01 - DB 0x20, 0x89, 0x02, 0x85, 0x60, 0x01, 0x20, 0x85 - DB 0x01, 0x20, 0x89, 0x02, 0x85, 0x40, 0x01, 0x40 - DB 0x85, 0x01, 0x20, 0x89, 0x01, 0x20, 0x84, 0x60 - DB 0x02, 0x60, 0x85, 0x20, 0x01, 0x60, 0x87, 0x60 - DB 0x01, 0x40, 0x84, 0x20, 0x01, 0x20, 0x86, 0x40 - DB 0x01, 0x40, 0x87, 0x20, 0x01, 0x60, 0x83, 0x40 - DB 0x02, 0x60, 0x86, 0x40, 0x02, 0x40, 0x85, 0x40 - DB 0x01, 0x40, 0x82, 0x60, 0x20, 0x02, 0x20, 0x88 - DB 0x20, 0x02, 0x40, 0x60, 0x81, 0x60, 0x40, 0x01 - DB 0x20, 0x80, 0x60, 0x40, 0x20, 0x03, 0x20, 0x89 - DB 0x60, 0x0A, 0x20, 0x06, 0x20, 0x8B, 0x40, 0x10 - DB 0x40, 0x8D, 0x60, 0x20, 0x0C, 0x40, 0x60, 0x90 - DB 0x60, 0x40, 0x21, 0x03, 0x21, 0x40, 0x60, 0xE9 -; : colon - DB 0xCC, 0x61, 0x8A, 0x61, 0x8F, 0x20, 0x01, 0x20 - DB 0x60, 0x86, 0x40, 0x02, 0x40, 0x8D, 0x40, 0x03 - DB 0x20, 0x85, 0x60, 0x04, 0x40, 0x8C, 0x05, 0x60 - DB 0x84, 0x40, 0x04, 0x20, 0x8C, 0x05, 0x60, 0x84 - DB 0x40, 0x04, 0x20, 0x8C, 0x40, 0x03, 0x20, 0x86 - DB 0x04, 0x60, 0x8D, 0x40, 0x01, 0x40, 0x87, 0x60 - DB 0x20, 0x00, 0x20, 0x60, 0xE2 -; ; semicolon - DB 0x8C, 0x61, 0x9D, 0x20, 0x00, 0x40, 0x9B, 0x60 - DB 0x01, 0x40, 0x93, 0x60, 0x86, 0x20, 0x01, 0x92 - DB 0x40, 0x01, 0x20, 0x60, 0x83, 0x40, 0x01, 0x40 - DB 0x91, 0x60, 0x04, 0x40, 0x61, 0x40, 0x02, 0x60 - DB 0x91, 0x40, 0x0A, 0x40, 0x92, 0x40, 0x09, 0x20 - DB 0x94, 0x08, 0x20, 0x95, 0x60, 0x20, 0x05, 0x40 - DB 0x98, 0x60, 0x42, 0x60, 0xB6 -; < less - DB 0xAB, 0x60, 0x40, 0x9D, 0x40, 0x00, 0x20, 0x9B - DB 0x60, 0x01, 0x40, 0x92, 0x40, 0x20, 0x40, 0x60 - DB 0x83, 0x60, 0x01, 0x20, 0x92, 0x40, 0x03, 0x40 - DB 0x60, 0x80, 0x40, 0x02, 0x60, 0x92, 0x0A, 0x40 - DB 0x93, 0x09, 0x40, 0x94, 0x40, 0x07, 0x40, 0x96 - DB 0x40, 0x20, 0x03, 0x40, 0x60, 0x99, 0x62, 0xA4 - DB 0x60, 0x20, 0x60, 0x9C, 0x20, 0x00, 0x20, 0x9B - DB 0x40, 0x01, 0x40, 0x92, 0x40, 0x00, 0x20, 0x40 - DB 0x83, 0x40, 0x01, 0x20, 0x92, 0x40, 0x03, 0x20 - DB 0x40, 0x60, 0x40, 0x02, 0x60, 0x92, 0x0A, 0x40 - DB 0x93, 0x20, 0x08, 0x40, 0x94, 0x40, 0x07, 0x60 - DB 0x96, 0x60, 0x21, 0x00, 0x21, 0x40, 0xFF, 0x96 -; = equal - DB 0xCA, 0x13, 0x8B, 0x13, 0x8B, 0x24, 0x0E, 0x8D - DB 0x40, 0x01, 0x20, 0x40, 0x60, 0x98, 0x20, 0x01 - DB 0x60, 0x9A, 0x40, 0x01, 0x60, 0x9B, 0x01, 0x20 - DB 0x9C, 0x02, 0x40, 0x60, 0x9A, 0x20, 0x12, 0x8C - DB 0x20, 0x11, 0x8D, 0x60, 0x40, 0x20, 0x0E, 0x8D - DB 0x40, 0x02, 0x40, 0x61, 0x97, 0x40, 0x01, 0x20 - DB 0x60, 0x99, 0x60, 0x01, 0x40, 0x9B, 0x20, 0x00 - DB 0x20, 0x9C, 0x01, 0x20, 0x9C, 0x02, 0x40, 0x60 - DB 0x9A, 0x40, 0x12, 0x8B, 0x60, 0x20, 0x11, 0x8D - DB 0x40, 0x21, 0x0E, 0xC0 -; > greater - DB 0x8B, 0x01, 0x20, 0x9C, 0x01, 0x20, 0x9C, 0x01 - DB 0x20, 0x97, 0x64, 0x01, 0x20, 0x6E, 0x85, 0x40 - DB 0x20, 0x17, 0x83, 0x60, 0x20, 0x19, 0x83, 0x20 - DB 0x1A, 0x82, 0x40, 0x03, 0x20, 0x44, 0x02, 0x4E - DB 0x82, 0x02, 0x20, 0x86, 0x02, 0x90, 0x60, 0x01 - DB 0x20, 0x87, 0x02, 0x90, 0x60, 0x01, 0x40, 0x87 - DB 0x02, 0x90, 0x40, 0x01, 0x60, 0x87, 0x02, 0x90 - DB 0x40, 0x01, 0x60, 0x87, 0x02, 0x90, 0x40, 0x01 - DB 0x60, 0x80, 0x40, 0x14, 0x20, 0x40, 0x82, 0x60 - DB 0x01, 0x40, 0x80, 0x40, 0x17, 0x60, 0x80, 0x60 - DB 0x01, 0x40, 0x80, 0x19, 0x60, 0x80, 0x20, 0x41 - DB 0x60, 0x26, 0x02, 0x2A, 0x04, 0x40, 0x8B, 0x01 - DB 0x20, 0x8B, 0x40, 0x03, 0x8B, 0x01, 0x20, 0x8C - DB 0x40, 0x02, 0x8B, 0x01, 0x20, 0x8D, 0x02, 0x8B - DB 0x01, 0x20, 0x8D, 0x20, 0x01, 0x8B, 0x01, 0x20 - DB 0x8D, 0x20, 0x01, 0x8B, 0x01, 0x20, 0x8D, 0x20 - DB 0x01, 0x8B, 0x01, 0x20, 0x8D, 0x02 -; ? question - DB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF -; TOTAL COMPRESSED SIZE = 1859 +; 2C space, half-width + DB 0xFF, 0xFF, 0xFF +; 2D - minus, half-width + DB 0x8C, 0x02, 0x9C, 0x02, 0x9C, 0x02, 0x9C, 0x02 + DB 0x9C, 0x02, 0x9C, 0x02, 0x9C, 0x02, 0x9C, 0x02 + DB 0x9C, 0x02, 0x9C, 0x02, 0x9C, 0x02, 0x9C, 0x02 + DB 0x8F +; 2E . dot, half-width + DB 0xF8, 0x20, 0x04, 0x99, 0x20, 0x04, 0x99, 0x20 + DB 0x04, 0x99, 0x20, 0x04, 0x99, 0x20, 0x04, 0x99 + DB 0x40, 0x24, 0xE0 +; 2F | vertical line, half-width + DB 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF +; 30 0 + DB 0xC9, 0x60, 0x41, 0x25, 0x41, 0x60, 0x90, 0x40 + DB 0x20, 0x0D, 0x20, 0x40, 0x8B, 0x40, 0x13, 0x40 + DB 0x88, 0x20, 0x15, 0x20, 0x86, 0x20, 0x05, 0x20 + DB 0x42, 0x63, 0x42, 0x21, 0x04, 0x20, 0x84, 0x20 + DB 0x03, 0x40, 0x60, 0x8D, 0x60, 0x40, 0x03, 0x20 + DB 0x82, 0x60, 0x02, 0x20, 0x93, 0x20, 0x02, 0x60 + DB 0x81, 0x40, 0x01, 0x20, 0x95, 0x20, 0x01, 0x40 + DB 0x81, 0x02, 0x60, 0x95, 0x60, 0x02, 0x81, 0x02 + DB 0x97, 0x02, 0x81, 0x02, 0x97, 0x02, 0x81, 0x02 + DB 0x60, 0x95, 0x60, 0x02, 0x81, 0x40, 0x01, 0x20 + DB 0x95, 0x20, 0x01, 0x40, 0x81, 0x60, 0x02, 0x40 + DB 0x93, 0x20, 0x02, 0x60, 0x82, 0x20, 0x02, 0x20 + DB 0x40, 0x8F, 0x40, 0x20, 0x02, 0x20, 0x84, 0x20 + DB 0x04, 0x20, 0x41, 0x66, 0x42, 0x20, 0x04, 0x20 + DB 0x85, 0x60, 0x20, 0x15, 0x20, 0x60, 0x87, 0x40 + DB 0x13, 0x40, 0x8A, 0x60, 0x40, 0x20, 0x0D, 0x20 + DB 0x40, 0x60, 0x8E, 0x60, 0x41, 0x27, 0x41, 0x60 + DB 0xC8 +; 31 1 + DB 0xE4, 0x42, 0x93, 0x42, 0x84, 0x60, 0x02, 0x93 + DB 0x02, 0x84, 0x40, 0x01, 0x40, 0x93, 0x02, 0x84 + DB 0x02, 0x60, 0x93, 0x02, 0x83, 0x60, 0x01, 0x20 + DB 0x94, 0x02, 0x83, 0x40, 0x01, 0x40, 0x94, 0x02 + DB 0x83, 0x02, 0x60, 0x94, 0x02, 0x82, 0x60, 0x01 + DB 0x20, 0x95, 0x02, 0x82, 0x40, 0x01, 0x36, 0x02 + DB 0x82, 0x1C, 0x81, 0x60, 0x1C, 0x81, 0x40, 0x1C + DB 0x81, 0x7A, 0x02, 0x9C, 0x02, 0x9C, 0x02, 0x9C + DB 0x02, 0x9C, 0x02, 0x9C, 0x02, 0x9C, 0x02, 0x9C + DB 0x22, 0xA0 +; 32 2 + DB 0xFA, 0x40, 0x22, 0x82, 0x60, 0x01, 0x20, 0x92 + DB 0x60, 0x20, 0x03, 0x82, 0x20, 0x01, 0x60, 0x91 + DB 0x20, 0x05, 0x81, 0x60, 0x02, 0x90, 0x60, 0x20 + DB 0x06, 0x81, 0x40, 0x01, 0x40, 0x8F, 0x40, 0x04 + DB 0x20, 0x02, 0x81, 0x20, 0x01, 0x60, 0x8E, 0x40 + DB 0x03, 0x20, 0x60, 0x80, 0x02, 0x81, 0x02, 0x8E + DB 0x40, 0x02, 0x20, 0x60, 0x82, 0x02, 0x81, 0x02 + DB 0x8D, 0x40, 0x02, 0x20, 0x84, 0x02, 0x81, 0x02 + DB 0x8C, 0x20, 0x02, 0x40, 0x85, 0x02, 0x81, 0x02 + DB 0x60, 0x8A, 0x20, 0x02, 0x40, 0x86, 0x02, 0x81 + DB 0x20, 0x01, 0x20, 0x88, 0x60, 0x20, 0x02, 0x40 + DB 0x87, 0x02, 0x81, 0x40, 0x02, 0x40, 0x86, 0x40 + DB 0x03, 0x40, 0x88, 0x02, 0x82, 0x03, 0x20, 0x43 + DB 0x20, 0x04, 0x40, 0x89, 0x02, 0x82, 0x40, 0x0C + DB 0x40, 0x8A, 0x02, 0x83, 0x20, 0x09, 0x20, 0x60 + DB 0x8B, 0x02, 0x84, 0x40, 0x07, 0x40, 0x8D, 0x02 + DB 0x85, 0x60, 0x40, 0x23, 0x40, 0x8F, 0x42, 0xFF + DB 0x80 +; 33 3 + DB 0xFF, 0x9A, 0x42, 0x83, 0x02, 0x95, 0x20, 0x01 + DB 0x60, 0x81, 0x40, 0x01, 0x40, 0x95, 0x40, 0x01 + DB 0x40, 0x81, 0x40, 0x01, 0x40, 0x88, 0x22, 0x89 + DB 0x40, 0x01, 0x20, 0x81, 0x02, 0x89, 0x02, 0x8A + DB 0x02, 0x81, 0x02, 0x89, 0x02, 0x8A, 0x02, 0x81 + DB 0x02, 0x89, 0x02, 0x8A, 0x02, 0x81, 0x02, 0x88 + DB 0x40, 0x02, 0x8A, 0x02, 0x81, 0x02, 0x88, 0x40 + DB 0x02, 0x40, 0x88, 0x60, 0x02, 0x81, 0x02, 0x40 + DB 0x87, 0x03, 0x20, 0x88, 0x40, 0x01, 0x20, 0x81 + DB 0x40, 0x02, 0x60, 0x85, 0x20, 0x01, 0x20, 0x01 + DB 0x60, 0x86, 0x60, 0x02, 0x40, 0x81, 0x40, 0x03 + DB 0x40, 0x62, 0x40, 0x20, 0x01, 0x41, 0x02, 0x40 + DB 0x84, 0x40, 0x03, 0x83, 0x20, 0x09, 0x20, 0x81 + DB 0x04, 0x20, 0x40, 0x21, 0x03, 0x20, 0x83, 0x60 + DB 0x09, 0x60, 0x81, 0x60, 0x0B, 0x85, 0x60, 0x20 + DB 0x05, 0x20, 0x60, 0x83, 0x40, 0x09, 0x60, 0x87 + DB 0x60, 0x43, 0x60, 0x86, 0x60, 0x20, 0x05, 0x40 + DB 0x60, 0x97, 0x60, 0x42, 0x60, 0xE6 +; 34 4 + DB 0xD1, 0x60, 0x23, 0x99, 0x40, 0x04, 0x97, 0x60 + DB 0x20, 0x05, 0x96, 0x40, 0x03, 0x20, 0x02, 0x94 + DB 0x60, 0x20, 0x03, 0x60, 0x80, 0x02, 0x93, 0x40 + DB 0x03, 0x40, 0x82, 0x02, 0x91, 0x60, 0x20, 0x02 + DB 0x20, 0x60, 0x83, 0x02, 0x90, 0x40, 0x03, 0x40 + DB 0x85, 0x02, 0x8E, 0x60, 0x03, 0x20, 0x60, 0x86 + DB 0x02, 0x8C, 0x60, 0x20, 0x03, 0x40, 0x88, 0x02 + DB 0x8B, 0x40, 0x03, 0x20, 0x60, 0x89, 0x02, 0x89 + DB 0x60, 0x20, 0x03, 0x40, 0x8B, 0x02, 0x89, 0x04 + DB 0x2D, 0x02, 0x27, 0x81, 0x1D, 0x81, 0x1D, 0x81 + DB 0x32, 0x02, 0x27, 0x94, 0x02, 0x9C, 0x02, 0x9C + DB 0x02, 0x9C, 0x22, 0xC8 +; 35 5 + DB 0xFF, 0xA0, 0x6D, 0x8B, 0x22, 0x82, 0x0D, 0x8B + DB 0x40, 0x01, 0x40, 0x81, 0x0D, 0x8B, 0x40, 0x01 + DB 0x40, 0x81, 0x0D, 0x8B, 0x60, 0x02, 0x81, 0x02 + DB 0x67, 0x02, 0x8C, 0x02, 0x81, 0x02, 0x87, 0x02 + DB 0x60, 0x8B, 0x02, 0x81, 0x02, 0x87, 0x02, 0x40 + DB 0x8B, 0x02, 0x81, 0x02, 0x87, 0x40, 0x01, 0x20 + DB 0x8A, 0x40, 0x02, 0x81, 0x02, 0x87, 0x40, 0x02 + DB 0x60, 0x89, 0x20, 0x01, 0x40, 0x81, 0x02, 0x88 + DB 0x03, 0x60, 0x86, 0x60, 0x20, 0x02, 0x60, 0x81 + DB 0x02, 0x88, 0x40, 0x03, 0x40, 0x60, 0x82, 0x60 + DB 0x40, 0x03, 0x20, 0x82, 0x02, 0x89, 0x20, 0x0D + DB 0x60, 0x82, 0x02, 0x89, 0x60, 0x0C, 0x60, 0x83 + DB 0x02, 0x8A, 0x60, 0x20, 0x08, 0x20, 0x60, 0x84 + DB 0x42, 0x8C, 0x60, 0x20, 0x04, 0x20, 0x40, 0x9A + DB 0x61, 0xE8 +; 36 6 + DB 0xE9, 0x60, 0x41, 0x26, 0x41, 0x60, 0x8F, 0x60 + DB 0x40, 0x20, 0x0D, 0x20, 0x40, 0x8B, 0x40, 0x12 + DB 0x20, 0x60, 0x87, 0x60, 0x20, 0x15, 0x40, 0x85 + DB 0x60, 0x05, 0x20, 0x41, 0x61, 0x20, 0x03, 0x22 + DB 0x05, 0x60, 0x83, 0x60, 0x03, 0x20, 0x40, 0x84 + DB 0x20, 0x01, 0x20, 0x60, 0x84, 0x60, 0x20, 0x03 + DB 0x83, 0x20, 0x02, 0x40, 0x85, 0x20, 0x01, 0x40 + DB 0x88, 0x40, 0x02, 0x40, 0x81, 0x60, 0x02, 0x40 + DB 0x85, 0x60, 0x01, 0x40, 0x8A, 0x20, 0x01, 0x20 + DB 0x81, 0x40, 0x01, 0x20, 0x86, 0x40, 0x01, 0x60 + DB 0x8A, 0x60, 0x02, 0x81, 0x02, 0x40, 0x86, 0x02 + DB 0x8C, 0x02, 0x81, 0x02, 0x87, 0x02, 0x8C, 0x02 + DB 0x81, 0x02, 0x87, 0x02, 0x60, 0x8A, 0x60, 0x02 + DB 0x81, 0x02, 0x87, 0x02, 0x20, 0x8A, 0x40, 0x01 + DB 0x40, 0x81, 0x02, 0x87, 0x40, 0x02, 0x20, 0x88 + DB 0x40, 0x02, 0x60, 0x81, 0x40, 0x01, 0x40, 0x86 + DB 0x60, 0x03, 0x20, 0x40, 0x60, 0x83, 0x60, 0x20 + DB 0x02, 0x20, 0x82, 0x40, 0x01, 0x40, 0x87, 0x40 + DB 0x06, 0x20, 0x05, 0x20, 0x60, 0x82, 0x60, 0x01 + DB 0x20, 0x88, 0x40, 0x0B, 0x20, 0x60, 0x84, 0x42 + DB 0x89, 0x60, 0x20, 0x08, 0x40, 0x95, 0x40, 0x21 + DB 0x01, 0x21, 0x40, 0x60, 0xC5 +; 37 7 + DB 0xE0, 0x62, 0x9C, 0x02, 0x9C, 0x02, 0x97, 0x61 + DB 0x40, 0x81, 0x02, 0x94, 0x60, 0x20, 0x03, 0x81 + DB 0x02, 0x92, 0x40, 0x20, 0x05, 0x81, 0x02, 0x90 + DB 0x40, 0x08, 0x81, 0x02, 0x8E, 0x40, 0x0A, 0x81 + DB 0x02, 0x8C, 0x40, 0x08, 0x20, 0x40, 0x61, 0x81 + DB 0x02, 0x8A, 0x40, 0x07, 0x40, 0x60, 0x86, 0x02 + DB 0x88, 0x40, 0x20, 0x05, 0x40, 0x60, 0x89, 0x02 + DB 0x86, 0x60, 0x20, 0x04, 0x20, 0x40, 0x8C, 0x02 + DB 0x84, 0x60, 0x20, 0x04, 0x20, 0x60, 0x8E, 0x02 + DB 0x82, 0x60, 0x20, 0x04, 0x40, 0x60, 0x90, 0x02 + DB 0x80, 0x60, 0x40, 0x04, 0x40, 0x60, 0x92, 0x02 + DB 0x40, 0x04, 0x40, 0x60, 0x94, 0x06, 0x40, 0x60 + DB 0x96, 0x04, 0x20, 0x60, 0x98, 0x02, 0x20, 0x60 + DB 0x9A, 0x41, 0x60, 0xDB +; 38 8 + DB 0xF2, 0x60, 0x40, 0x23, 0x40, 0x60, 0x8A, 0x60 + DB 0x41, 0x60, 0x87, 0x40, 0x07, 0x40, 0x87, 0x40 + DB 0x05, 0x40, 0x83, 0x60, 0x20, 0x09, 0x20, 0x85 + DB 0x20, 0x07, 0x20, 0x82, 0x20, 0x0B, 0x40, 0x83 + DB 0x40, 0x09, 0x20, 0x80, 0x20, 0x02, 0x20, 0x60 + DB 0x82, 0x60, 0x20, 0x03, 0x82, 0x60, 0x02, 0x20 + DB 0x40, 0x61, 0x20, 0x03, 0x20, 0x02, 0x60, 0x86 + DB 0x40, 0x02, 0x40, 0x81, 0x40, 0x01, 0x20, 0x84 + DB 0x40, 0x05, 0x60, 0x88, 0x20, 0x01, 0x20, 0x81 + DB 0x20, 0x01, 0x40, 0x85, 0x40, 0x03, 0x40, 0x89 + DB 0x60, 0x02, 0x81, 0x02, 0x87, 0x20, 0x02, 0x20 + DB 0x8A, 0x02, 0x81, 0x02, 0x87, 0x60, 0x03, 0x40 + DB 0x89, 0x02, 0x81, 0x02, 0x88, 0x20, 0x03, 0x89 + DB 0x02, 0x81, 0x02, 0x40, 0x86, 0x20, 0x04, 0x20 + DB 0x87, 0x40, 0x01, 0x20, 0x81, 0x20, 0x01, 0x20 + DB 0x85, 0x40, 0x01, 0x20, 0x03, 0x40, 0x86, 0x20 + DB 0x01, 0x40, 0x81, 0x40, 0x02, 0x20, 0x40, 0x61 + DB 0x40, 0x20, 0x01, 0x20, 0x80, 0x20, 0x03, 0x40 + DB 0x84, 0x40, 0x02, 0x60, 0x82, 0x0A, 0x60, 0x81 + DB 0x20, 0x03, 0x20, 0x42, 0x20, 0x02, 0x20, 0x83 + DB 0x60, 0x07, 0x20, 0x60, 0x82, 0x60, 0x0A, 0x20 + DB 0x85, 0x60, 0x20, 0x04, 0x40, 0x85, 0x60, 0x08 + DB 0x20, 0x60, 0x87, 0x61, 0x40, 0x60, 0x88, 0x60 + DB 0x20, 0x05, 0x40, 0x98, 0x60, 0x42, 0x60, 0xC6 +; 39 9 + DB 0xC9, 0x61, 0x99, 0x60, 0x20, 0x04, 0x20, 0x40 + DB 0x60, 0x93, 0x60, 0x20, 0x09, 0x40, 0x89, 0x42 + DB 0x84, 0x60, 0x0C, 0x20, 0x88, 0x20, 0x01, 0x60 + DB 0x82, 0x60, 0x05, 0x22, 0x05, 0x40, 0x87, 0x40 + DB 0x01, 0x40, 0x82, 0x20, 0x02, 0x40, 0x60, 0x84 + DB 0x60, 0x20, 0x03, 0x60, 0x86, 0x60, 0x01, 0x40 + DB 0x81, 0x40, 0x02, 0x60, 0x88, 0x40, 0x02, 0x40 + DB 0x87, 0x02, 0x81, 0x40, 0x01, 0x40, 0x8A, 0x20 + DB 0x02, 0x87, 0x02, 0x81, 0x02, 0x8B, 0x60, 0x02 + DB 0x87, 0x02, 0x81, 0x02, 0x8C, 0x02, 0x87, 0x02 + DB 0x81, 0x02, 0x8C, 0x02, 0x86, 0x40, 0x01, 0x20 + DB 0x81, 0x02, 0x60, 0x8A, 0x60, 0x01, 0x40, 0x86 + DB 0x20, 0x01, 0x40, 0x81, 0x40, 0x01, 0x20, 0x8A + DB 0x20, 0x01, 0x60, 0x85, 0x20, 0x02, 0x60, 0x81 + DB 0x40, 0x02, 0x20, 0x88, 0x40, 0x01, 0x40, 0x84 + DB 0x60, 0x20, 0x02, 0x40, 0x83, 0x20, 0x02, 0x20 + DB 0x40, 0x84, 0x40, 0x20, 0x01, 0x20, 0x83, 0x60 + DB 0x40, 0x03, 0x20, 0x84, 0x60, 0x06, 0x21, 0x03 + DB 0x20, 0x42, 0x20, 0x05, 0x20, 0x60, 0x85, 0x60 + DB 0x15, 0x20, 0x88, 0x60, 0x40, 0x11, 0x20, 0x40 + DB 0x8B, 0x60, 0x40, 0x20, 0x0C, 0x20, 0x60, 0x91 + DB 0x60, 0x47, 0x61, 0xCA +; 3A : colon, half-width + DB 0xE8, 0x60, 0x04, 0x40, 0x88, 0x20, 0x04, 0x89 + DB 0x60, 0x04, 0x40, 0x88, 0x20, 0x04, 0x89, 0x60 + DB 0x04, 0x40, 0x88, 0x20, 0x04, 0x89, 0x60, 0x04 + DB 0x40, 0x88, 0x20, 0x04, 0x89, 0x60, 0x04, 0x40 + DB 0x88, 0x20, 0x04, 0x89, 0x60, 0x24, 0x40, 0x88 + DB 0x40, 0x24, 0xE0 +; 3B ' inverted comma, half-width + DB 0xC9, 0x61, 0x93, 0x20, 0x04, 0x83, 0x01, 0x60 + DB 0x92, 0x20, 0x04, 0x81, 0x60, 0x20, 0x01, 0x93 + DB 0x20, 0x04, 0x20, 0x03, 0x40, 0x93, 0x20, 0x08 + DB 0x20, 0x94, 0x20, 0x07, 0x40, 0x95, 0x40, 0x24 + DB 0x40, 0x60, 0xF7 +; 3C " + DB 0xFF, 0x64, 0x83, 0x61, 0x94, 0x04, 0x82, 0x60 + DB 0x01, 0x94, 0x04, 0x62, 0x20, 0x00, 0x40, 0x94 + DB 0x09, 0x60, 0x94, 0x07, 0x20, 0x60, 0x95, 0x46 + DB 0x60, 0xFF, 0x97, 0x44, 0x83, 0x41, 0x94, 0x04 + DB 0x82, 0x40, 0x00, 0x20, 0x94, 0x04, 0x41, 0x20 + DB 0x01, 0x40, 0x94, 0x08, 0x20, 0x95, 0x07, 0x40 + DB 0x96, 0x66, 0xFF, 0x98 +; 3D m + DB 0xA8, 0x75, 0x89, 0x15, 0x89, 0x15, 0x89, 0x15 + DB 0x89, 0x61, 0x80, 0x60, 0x20, 0x00, 0x20, 0x40 + DB 0x6D, 0x8B, 0x40, 0x01, 0x40, 0x9A, 0x20, 0x00 + DB 0x20, 0x60, 0x9A, 0x40, 0x01, 0x60, 0x9B, 0x02 + DB 0x60, 0x9B, 0x03, 0x21, 0x4F, 0x89, 0x40, 0x14 + DB 0x8A, 0x40, 0x13, 0x8C, 0x60, 0x20, 0x01, 0x2E + DB 0x8B, 0x60, 0x20, 0x00, 0x20, 0x40, 0x99, 0x40 + DB 0x01, 0x40, 0x9A, 0x60, 0x01, 0x40, 0x9B, 0x20 + DB 0x01, 0x9C, 0x02, 0x40, 0x71, 0x89, 0x15, 0x89 + DB 0x60, 0x14, 0x8A, 0x60, 0x20, 0x12, 0x8D, 0x71 + DB 0xA0 +; 3E ft-ligature + DB 0x8A, 0x20, 0x01, 0x60, 0x9B, 0x20, 0x01, 0x60 + DB 0x97, 0x63, 0x20, 0x01, 0x40, 0x70, 0x83, 0x40 + DB 0x20, 0x19, 0x81, 0x60, 0x20, 0x1B, 0x81, 0x20 + DB 0x1C, 0x80, 0x40, 0x03, 0x20, 0x43, 0x20, 0x01 + DB 0x51, 0x80, 0x20, 0x02, 0x60, 0x84, 0x02, 0x40 + DB 0x91, 0x02, 0x60, 0x85, 0x20, 0x01, 0x60, 0x90 + DB 0x60, 0x02, 0x86, 0x20, 0x01, 0x60, 0x90, 0x60 + DB 0x01, 0x20, 0x86, 0x20, 0x01, 0x60, 0x90, 0x60 + DB 0x01, 0x20, 0x86, 0x20, 0x01, 0x60, 0x90, 0x60 + DB 0x01, 0x20, 0x82, 0x63, 0x02, 0x40, 0x6B, 0x84 + DB 0x60, 0x01, 0x20, 0x81, 0x60, 0x14, 0x20, 0x40 + DB 0x82, 0x02, 0x81, 0x60, 0x16, 0x20, 0x81, 0x20 + DB 0x01, 0x60, 0x80, 0x60, 0x17, 0x40, 0x80, 0x20 + DB 0x01, 0x60, 0x80, 0x60, 0x43, 0x02, 0x20, 0x4B + DB 0x20, 0x03, 0x80, 0x63, 0x85, 0x20, 0x01, 0x60 + DB 0x8C, 0x40, 0x02, 0x8A, 0x20, 0x01, 0x60, 0x8D + DB 0x02, 0x8A, 0x20, 0x01, 0x60, 0x8D, 0x20, 0x01 + DB 0x8A, 0x20, 0x01, 0x60, 0x8D, 0x40, 0x01, 0x8A + DB 0x20, 0x01, 0x60, 0x8D, 0x40, 0x01, 0x8A, 0x20 + DB 0x01, 0x60, 0x8D, 0x40, 0x01, 0x8A, 0x20, 0x01 + DB 0x60, 0x8D, 0x40, 0x01 +; 3F space + DB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF +; TOTAL COMPRESSED SIZE = 1775 diff -r 0347acdf6d8e -r 690c48db7b5b src/Fonts/aa_font48_idx.inc --- a/src/Fonts/aa_font48_idx.inc Sat Feb 29 16:57:45 2020 +0100 +++ b/src/Fonts/aa_font48_idx.inc Thu Mar 05 15:06:14 2020 +0100 @@ -1,27 +1,30 @@ ;========================================================================== -; Font index exported ven. janv. 13 2012 by FontIO.cpp 110 2011-06-07 11:26:40Z gascuel $ +; Font index exported So Nov 24 2019 by FontIO.cpp, +; v 43ff8ad28dae 2018/04/17 16:52:12 jDG combined next generation V3.08.3 ;========================================================================== -aa_font48_chars EQU .18 -aa_font48_firstChar EQU '.' -aa_font48_lastChar EQU '?' +aa_font48_chars EQU .20 +aa_font48_firstChar EQU .44 +aa_font48_lastChar EQU .63 ; aa_font48_idx: - DW aa_font48_bits + 0x0000 ; . dot - DW aa_font48_bits + 0x001F ; / slash - DW aa_font48_bits + 0x0025 ; 0 0 - DW aa_font48_bits + 0x00A2 ; 1 1 - DW aa_font48_bits + 0x00EF ; 2 2 - DW aa_font48_bits + 0x0180 ; 3 3 - DW aa_font48_bits + 0x0220 ; 4 4 - DW aa_font48_bits + 0x028B ; 5 5 - DW aa_font48_bits + 0x0312 ; 6 6 - DW aa_font48_bits + 0x03BF ; 7 7 - DW aa_font48_bits + 0x0430 ; 8 8 - DW aa_font48_bits + 0x04F1 ; 9 9 - DW aa_font48_bits + 0x05A1 ; : colon - DW aa_font48_bits + 0x05D6 ; ; semicolon - DW aa_font48_bits + 0x060B ; < less - DW aa_font48_bits + 0x066B ; = equal - DW aa_font48_bits + 0x06B7 ; > greater - DW aa_font48_bits + 0x073D ; ? question - DW aa_font48_bits + 0x0743 ; END OF INDEX + DW aa_font48_bits + 0x0000 ; 2C space, half-width, access by , + DW aa_font48_bits + 0x0003 ; 2D - minus, half-width + DW aa_font48_bits + 0x001C ; 2E . dot, half-width + DW aa_font48_bits + 0x002F ; 2F | vertical line, half-width, access by | + DW aa_font48_bits + 0x0035 ; 30 0 + DW aa_font48_bits + 0x00BE ; 31 1 + DW aa_font48_bits + 0x0108 ; 32 2 + DW aa_font48_bits + 0x0191 ; 33 3 + DW aa_font48_bits + 0x021F ; 34 4 + DW aa_font48_bits + 0x027B ; 35 5 + DW aa_font48_bits + 0x02ED ; 36 6 + DW aa_font48_bits + 0x039A ; 37 7 + DW aa_font48_bits + 0x0406 ; 38 8 + DW aa_font48_bits + 0x04C6 ; 39 9 + DW aa_font48_bits + 0x0572 ; 3A : colon, half-width + DW aa_font48_bits + 0x059D ; 3B ' inverted comma, half-width + DW aa_font48_bits + 0x05C0 ; 3C " + DW aa_font48_bits + 0x05F4 ; 3D m + DW aa_font48_bits + 0x0645 ; 3E ft-ligature + DW aa_font48_bits + 0x06E9 ; 3F space, full-width + DW aa_font48_bits + 0x06EF ; END OF INDEX diff -r 0347acdf6d8e -r 690c48db7b5b src/Fonts/c48_aa.png Binary file src/Fonts/c48_aa.png has changed diff -r 0347acdf6d8e -r 690c48db7b5b src/configuration.inc --- a/src/configuration.inc Sat Feb 29 16:57:45 2020 +0100 +++ b/src/configuration.inc Thu Mar 05 15:06:14 2020 +0100 @@ -25,7 +25,7 @@ #define fw_version_major 0x03 #define fw_version_minor 0x09 -#define fw_version_beta 0x01 +#define fw_version_beta 0x02 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx @@ -43,8 +43,8 @@ #endif #define firmware_creation_year 0x14 -#define firmware_creation_month 0x02 -#define firmware_creation_day 0x1C +#define firmware_creation_month 0x03 +#define firmware_creation_day 0x05 #define firmware_expire_year 0x15 #define firmware_expire_month 0x01 @@ -77,7 +77,7 @@ ; #endif -#define _language_1 de +#define _language_1 en #define _language_2 none diff -r 0347acdf6d8e -r 690c48db7b5b src/external_flash.asm --- a/src/external_flash.asm Sat Feb 29 16:57:45 2020 +0100 +++ b/src/external_flash.asm Thu Mar 05 15:06:14 2020 +0100 @@ -174,19 +174,34 @@ global ext_flash_write_range ext_flash_write_range: movwf eeprom_loop ; load loop counter (eeprom variable used here) + +; btfsc flash_block_write ; does the FLASH support block-write? +; bra ext_flash_write_range_block ; YES - write date via block operation +; ;bra ext_flash_write_range_seq ; NO - write data via sequential single writes + +ext_flash_write_range_seq: ; sequential write +ext_flash_write_range_loop_s: + movff POSTINC1,ext_flash_rw ; read byte from memory to ext_flash_rw + rcall ext_flash_byte_write ; write byte from ext_flash_rw to FLASH + rcall incf_ext_flash_address_p1_0x40 ; increase address with wrap-around at 0x400000 + decfsz eeprom_loop,F ; decrement loop counter, all done? + bra ext_flash_write_range_loop_s ; NO - continue loop + return ; YES - done + +ext_flash_write_range_block: ; block write movff POSTINC1,ext_flash_rw ; read first byte from memory rcall ext_flash_write_block_start ; write first byte to FLASH bra ext_flash_write_range_loop_start; jump into loop -ext_flash_write_range_loop: +ext_flash_write_range_loop_b: movff POSTINC1,ext_flash_rw ; read next byte from memory rcall ext_flash_write_block ; write next byte to FLASH ext_flash_write_range_loop_start: decfsz eeprom_loop,F ; decrement loop counter, all done? - bra ext_flash_write_range_loop ; NO - continue loop + bra ext_flash_write_range_loop_b ; NO - continue loop bra ext_flash_write_block_stop ; YES - end writing to flash (and return) ; ---------------------------------------------------------------------------- - + ; global write_byte_ext_flash_plus_header ; write_byte_ext_flash_plus_header: ; movwf ext_flash_rw ; store byte to write diff -r 0347acdf6d8e -r 690c48db7b5b src/start.asm --- a/src/start.asm Sat Feb 29 16:57:45 2020 +0100 +++ b/src/start.asm Thu Mar 05 15:06:14 2020 +0100 @@ -1,6 +1,6 @@ ;============================================================================= ; -; File start.asm combined next generation V3.08.8 +; File start.asm combined next generation V3.09.1 fix ; ; Startup subroutines ; @@ -282,11 +282,6 @@ clrf CVT_flags1 ; convert and display functions clrf CVT_flags2 ; convert and display functions - ; check if option values have changed and thus if the EEPROM needs to be updated - btfsc options_changed ; do the options need to be stored to EEPROM ? - call option_check_and_store_all ; YES - check and store all option values in EEPROM - bcf options_changed ; clear flag - ; configure the OSTC model descriptor (stored in HW_descriptor) bcf tft_power ; inverted, here needed for I2C_probe_OSTC_rx, to wake-up RX circuity bsf ambient_sensor ; set ambient light sensor as available by default @@ -433,6 +428,11 @@ btfsc use_old_batt_flag ; shall reload last battery data? call get_battery_data ; YES - get last battery data + ; check if option values have changed and thus if the EEPROM needs to be updated + btfsc options_changed ; do the options need to be stored to EEPROM ? + call option_check_and_store_all ; YES - check and store all option values in EEPROM + bcf options_changed ; clear flag + ; set screen orientation bcf flip_screen ; set default screen orientation TSTOSC opt_flip_screen ; shall show screen outputs upside down? (=1: flip the screen) diff -r 0347acdf6d8e -r 690c48db7b5b src/tft_outputs.asm --- a/src/tft_outputs.asm Sat Feb 29 16:57:45 2020 +0100 +++ b/src/tft_outputs.asm Thu Mar 05 15:06:14 2020 +0100 @@ -1,6 +1,6 @@ ;============================================================================= ; -; File tft_outputs.asm next combined generation V3.08.7 +; File tft_outputs.asm next combined generation V3.09.1 fix ; ; high-level Display Outputs ; @@ -1043,11 +1043,7 @@ TFT_show_ndl: btfsc dive_main_menu ; is the dive mode menu shown? return ; YES - abort - call TFT_memo_color ; NO - set color - movff int_O_NDL_norm+1,lo ; - get high byte of NDL time in normal plan - btfsc lo,int_invalid_flag ; - is the invalid flag set? - call TFT_disabled_color ; YES - switch to disabled color - movff int_O_NDL_norm+0,lo ; - get low byte of NDL time in normal plan + movff int_O_NDL_norm+0,lo ; NO - get low byte of NDL time in normal plan btfsc deco_locked ; - was the dive in deco? bra TFT_show_ndl_norm ; YES - use normal layout btfsc alt_layout_active ; NO - alternative layout active? @@ -1056,6 +1052,7 @@ TFT_show_ndl_norm: ; set position WIN_MEDIUM dm_ndl_value_col_norm,dm_ndl_value_row_norm + rcall TFT_show_ndl_set_color ; set color output_8 ; display 0...240 TFT_show_ndl_exit_1: STRCAT_PRINT "'" ; print minutes symbol @@ -1068,16 +1065,24 @@ ; clear potential remains from NDL normal and set position WIN_BOX_BLACK dm_ndl_value_row_norm, dm_3rdrow_bot, dm_ndl_value_col_norm, dm_ndl_value_col_alt ; top, bottom, left, right WIN_LARGE dm_ndl_value_col_alt, dm_ndl_value_row_alt + rcall TFT_show_ndl_set_color ; set color output_99 ; display 0...99 STRCAT_PRINT "" ; finalize output bra TFT_show_ndl_exit_2 ; done TFT_show_ndl_alt_safety: WIN_MEDIUM dm_ndl_value_col_norm,dm_ndl_value_row_norm + rcall TFT_show_ndl_set_color ; set color PUTC " " ; fill first digit position output_99 ; display 0...99 bra TFT_show_ndl_exit_1 ; print minutes symbol and done +TFT_show_ndl_set_color: + movff int_O_NDL_norm+1,lo ; get high byte of NDL time in normal plan + btfss lo,int_invalid_flag ; is the invalid flag set? + goto TFT_memo_color ; NO - select memo color and return + goto TFT_disabled_color ; YES - select disabled color and return + global TFT_divemode_sign_show TFT_divemode_sign_show: